AgileVentures/LocalSupport

View on GitHub

Showing 792 of 792 total issues

Move the invocation into the parens that contain the function.
Open

(function ($) {

Require IIFEs to be Wrapped (wrap-iife)

You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

// function expression could be unwrapped
var x = function () { return { y: 1 };}();

// function declaration must be wrapped
function () { /* side effects */ }(); // SyntaxError

Rule Details

This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

Options

This rule has two options, a string option and an object option.

String option:

  • "outside" enforces always wrapping the call expression. The default is "outside".
  • "inside" enforces always wrapping the function expression.
  • "any" enforces always wrapping, but allows either style.

Object option:

  • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

outside

Examples of incorrect code for the default "outside" option:

/*eslint wrap-iife: ["error", "outside"]*/

var x = function () { return { y: 1 };}(); // unwrapped
var x = (function () { return { y: 1 };})(); // wrapped function expression

Examples of correct code for the default "outside" option:

/*eslint wrap-iife: ["error", "outside"]*/

var x = (function () { return { y: 1 };}()); // wrapped call expression

inside

Examples of incorrect code for the "inside" option:

/*eslint wrap-iife: ["error", "inside"]*/

var x = function () { return { y: 1 };}(); // unwrapped
var x = (function () { return { y: 1 };}()); // wrapped call expression

Examples of correct code for the "inside" option:

/*eslint wrap-iife: ["error", "inside"]*/

var x = (function () { return { y: 1 };})(); // wrapped function expression

any

Examples of incorrect code for the "any" option:

/*eslint wrap-iife: ["error", "any"]*/

var x = function () { return { y: 1 };}(); // unwrapped

Examples of correct code for the "any" option:

/*eslint wrap-iife: ["error", "any"]*/

var x = (function () { return { y: 1 };}()); // wrapped call expression
var x = (function () { return { y: 1 };})(); // wrapped function expression

functionPrototypeMethods

Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

/* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */

var x = function(){ foo(); }()
var x = (function(){ foo(); }())
var x = function(){ foo(); }.call(bar)
var x = (function(){ foo(); }.call(bar))

Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

/* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */

var x = (function(){ foo(); })()
var x = (function(){ foo(); }).call(bar)

Source: http://eslint.org/docs/rules/

Expected '!==' and instead saw '!='.
Open

    if (toolbar.length != 0) {

Require === and !== (eqeqeq)

It is considered good practice to use the type-safe equality operators === and !== instead of their regular counterparts == and !=.

The reason for this is that == and != do type coercion which follows the rather obscure Abstract Equality Comparison Algorithm. For instance, the following statements are all considered true:

  • [] == false
  • [] == ![]
  • 3 == "03"

If one of those occurs in an innocent-looking statement such as a == b the actual problem is very difficult to spot.

Rule Details

This rule is aimed at eliminating the type-unsafe equality operators.

Examples of incorrect code for this rule:

/*eslint eqeqeq: "error"*/

if (x == 42) { }

if ("" == text) { }

if (obj.getStuff() != undefined) { }

The --fix option on the command line automatically fixes some problems reported by this rule. A problem is only fixed if one of the operands is a typeof expression, or if both operands are literals with the same type.

Options

always

The "always" option (default) enforces the use of === and !== in every situation (except when you opt-in to more specific handling of null [see below]).

Examples of incorrect code for the "always" option:

/*eslint eqeqeq: ["error", "always"]*/

a == b
foo == true
bananas != 1
value == undefined
typeof foo == 'undefined'
'hello' != 'world'
0 == 0
true == true
foo == null

Examples of correct code for the "always" option:

/*eslint eqeqeq: ["error", "always"]*/

a === b
foo === true
bananas !== 1
value === undefined
typeof foo === 'undefined'
'hello' !== 'world'
0 === 0
true === true
foo === null

This rule optionally takes a second argument, which should be an object with the following supported properties:

  • "null": Customize how this rule treats null literals. Possible values:
    • always (default) - Always use === or !==.
    • never - Never use === or !== with null.
    • ignore - Do not apply this rule to null.

smart

The "smart" option enforces the use of === and !== except for these cases:

  • Comparing two literal values
  • Evaluating the value of typeof
  • Comparing against null

Examples of incorrect code for the "smart" option:

/*eslint eqeqeq: ["error", "smart"]*/

// comparing two variables requires ===
a == b

// only one side is a literal
foo == true
bananas != 1

// comparing to undefined requires ===
value == undefined

Examples of correct code for the "smart" option:

/*eslint eqeqeq: ["error", "smart"]*/

typeof foo == 'undefined'
'hello' != 'world'
0 == 0
true == true
foo == null

allow-null

Deprecated: Instead of using this option use "always" and pass a "null" option property with value "ignore". This will tell eslint to always enforce strict equality except when comparing with the null literal.

["error", "always", {"null": "ignore"}]

When Not To Use It

If you don't want to enforce a style for using equality operators, then it's safe to disable this rule. Source: http://eslint.org/docs/rules/

Prefer single-quoted strings when you don't need string interpolation or special symbols. (https://github.com/bbatsov/ruby-style-guide#consistent-string-literals)
Open

Autotest.add_discovery { "rspec2" }
Severity: Minor
Found in autotest/discover.rb by rubocop

Checks if uses of quotes match the configured preference.

Example: EnforcedStyle: single_quotes (default)

# bad
"No special symbols"
"No string interpolation"
"Just text"

# good
'No special symbols'
'No string interpolation'
'Just text'
"Wait! What's #{this}!"

Example: EnforcedStyle: double_quotes

# bad
'Just some text'
'No special chars or interpolation'

# good
"Just some text"
"No special chars or interpolation"
"Every string in #{project} uses double_quotes"

Line is too long. [150/90] (https://github.com/bbatsov/ruby-style-guide#80-character-limits)
Open

  scope :invited_not_accepted,-> {includes(:organisation).where('users.invitation_sent_at IS NOT NULL').where('users.invitation_accepted_at IS NULL')}
Severity: Minor
Found in app/models/user.rb by rubocop

Line is too long. [112/90] (https://github.com/bbatsov/ruby-style-guide#80-character-limits)
Open

    return CategoryType.who_they_help if (self.charity_commission_id < 300) & (self.charity_commission_id > 199)
Severity: Minor
Found in app/models/category.rb by rubocop

Adjoining classes: .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active
Open

.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active,

Adjoining classes: .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger[disabled]
Open

.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger[disabled] {

Adjoining classes: .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default
Open

.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default {

Adjoining classes: .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:hover
Open

.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default:hover,

Adjoining classes: .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.disabled
Open

.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default.disabled,

Adjoining classes: .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default[disabled]
Open

.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default[disabled],

Expected (<filter-function-list> | none) but found 'progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff' endColorstr='#ffe6e6e6' GradientType=0)'.</filter-function-list>
Open

  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);

Duplicate property '*background-color' found.
Open

  *background-color: #e6e6e6;

Property with star prefix found.
Open

  *background-color: #d9d9d9;

Use of !important
Open

    border-top: none !important;

Don't use IDs in selectors.
Open

#preview_email {

Line is too long. [100/90] (https://github.com/bbatsov/ruby-style-guide#80-character-limits)
Open

  #attr_accessible :email, :password, :password_confirmation, :remember_me, :pending_organisation_id
Severity: Minor
Found in app/models/user.rb by rubocop

Adjoining classes: .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active
Open

.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger:active,

Expected end of value but found ' '.
Open

  background-color: #e9322d \9;

Adjoining classes: .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active
Open

.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default:active,
Severity
Category
Status
Source
Language