# ------------ rake task options ------------

# JS files to check by default, if no parameters are passed to rake jslint
# (you may want to limit this only to your own scripts and exclude any external scripts and frameworks)

# this can be overridden by adding 'paths' and 'exclude_paths' parameter to rake command:
#   rake jslint paths=path1,path2,... exclude_paths=library1,library2,...

paths:
  - app/assets/javascripts/active_admin/**/*.js

exclude_paths:
  - app/assets/javascripts/active_admin/vendor.js

# ------------ jslint options ------------
# see http://www.jslint.com/lint.html#options for more detailed explanations

# "enforce" type options (true means potentially more warnings)

adsafe:   false     # true if ADsafe rules should be enforced. See http://www.ADsafe.org/
bitwise:  true      # true if bitwise operators should not be allowed
newcap:   true      # true if Initial Caps must be used with constructor functions
eqeqeq:   false     # true if === should be required (for ALL equality comparisons)
immed:    false     # true if immediate function invocations must be wrapped in parens
nomen:    false     # true if initial or trailing underscore in identifiers should be forbidden
onevar:   false     # true if only one var statement per function should be allowed
plusplus: false     # true if ++ and -- should not be allowed
regexp:   false     # true if . and [^...] should not be allowed in RegExp literals
safe:     false     # true if the safe subset rules are enforced (used by ADsafe)
strict:   false     # true if the ES5 "use strict"; pragma is required
undef:    false     # true if variables must be declared before used
white:    false     # true if strict whitespace rules apply (see also 'indent' option)

# "allow" type options (false means potentially more warnings)

cap:      false     # true if upper case HTML should be allowed
css:      true      # true if CSS workarounds should be tolerated
debug:    false     # true if debugger statements should be allowed (set to false before going into production)
es5:      false     # true if ECMAScript 5 syntax should be allowed
evil:     false     # true if eval should be allowed
forin:    true      # true if unfiltered 'for in' statements should be allowed
fragment: true      # true if HTML fragments should be allowed
laxbreak: false     # true if statement breaks should not be checked
on:       false     # true if HTML event handlers (e.g. onclick="...") should be allowed
sub:      false     # true if subscript notation may be used for expressions better expressed in dot notation

# other options

maxlen:   300       # Maximum line length
indent:   2         # Number of spaces that should be used for indentation - used only if 'white' option is set
maxerr:   50        # The maximum number of warnings reported (per file)
passfail: false     # true if the scan should stop on first error (per file)
# following are relevant only if undef = true
predef:   ''        # Names of predefined global variables - comma-separated string or a YAML array
browser:  true      # true if the standard browser globals should be predefined
rhino:    false     # true if the Rhino environment globals should be predefined
windows:  false     # true if Windows-specific globals should be predefined
widget:   false     # true if the Yahoo Widgets globals should be predefined
devel:    true      # true if functions like alert, confirm, console, prompt etc. are predefined


# ------------ jslint_on_rails custom lint options (switch to true to disable some annoying warnings) ------------

# ignores "missing semicolon" warning at the end of a function; this lets you write one-liners
# like: x.map(function(i) { return i + 1 }); without having to put a second semicolon inside the function
lastsemic: false

# allows you to use the 'new' expression as a statement (without assignment)
# so you can call e.g. new Ajax.Request(...), new Effect.Highlight(...) without assigning to a dummy variable
newstat: false

# ignores the "Expected an assignment or function call and instead saw an expression" warning,
# if the expression contains a proper statement and makes sense; this lets you write things like:
#    element && element.show();
#    valid || other || lastChance || alert('OMG!');
#    selected ? show() : hide();
# although these will still cause a warning:
#    element && link;
#    selected ? 5 : 10;
statinexp: false