ReadyResponder/ReadyResponder

View on GitHub
app/helpers/events_helper.rb

Summary

Maintainability
A
1 hr
Test Coverage
D
67%

Assignment Branch Condition size for display_event_status_by_dept is too high. [32.39/15]
Open

  def display_event_status_by_dept(event, department)
    assignees           = event.people.active.of_dept(department).count.to_s
    available           = event.available_people.of_dept(department).count.to_s
    partially_available = event.partially_available_people.of_dept(department).count.to_s
    unavailable         = event.unavailable_people.of_dept(department).count.to_s
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks that the ABC size of methods is not higher than the configured maximum. The ABC size is based on assignments, branches (method calls), and conditions. See http://c2.com/cgi/wiki?AbcMetric

Method has too many lines. [12/10]
Open

  def display_event_status_by_dept(event, department)
    assignees           = event.people.active.of_dept(department).count.to_s
    available           = event.available_people.of_dept(department).count.to_s
    partially_available = event.partially_available_people.of_dept(department).count.to_s
    unavailable         = event.unavailable_people.of_dept(department).count.to_s
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks if the length of a method exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable.

Method has too many lines. [11/10]
Open

  def column_color_class(event)
    begin
      if event.is_template
        return 'template-highlight'
      elsif event.status == "In-session" || event.status == "Scheduled"
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks if the length of a method exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable.

Similar blocks of code found in 4 locations. Consider refactoring.
Open

  def worked_button(timecard)
    if can? :update, timecard and ["In-session", "Completed"].include? @event.status
      button = link_to("Worked", timecard_path(timecard, outcome: "Worked"), method: :Put, class: 'btn btn-xs btn-primary')
    end
    return raw button
Severity: Minor
Found in app/helpers/events_helper.rb and 3 other locations - About 25 mins to fix
app/helpers/events_helper.rb on lines 27..31
app/helpers/events_helper.rb on lines 34..38
app/helpers/events_helper.rb on lines 41..45

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 29.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Similar blocks of code found in 4 locations. Consider refactoring.
Open

  def unavailable_button(timecard)
    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
      button = link_to("Unavailable", timecard_path(timecard, intention: "Unavailable"), method: :Put, class: 'btn btn-xs btn-primary')
    end
    return raw button
Severity: Minor
Found in app/helpers/events_helper.rb and 3 other locations - About 25 mins to fix
app/helpers/events_helper.rb on lines 34..38
app/helpers/events_helper.rb on lines 41..45
app/helpers/events_helper.rb on lines 48..52

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 29.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Similar blocks of code found in 4 locations. Consider refactoring.
Open

  def scheduled_button(timecard)
    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
      button = link_to("Scheduled", timecard_path(timecard, intention: "Scheduled"), method: :Put, class: 'btn btn-xs btn-primary')
    end
    return raw button
Severity: Minor
Found in app/helpers/events_helper.rb and 3 other locations - About 25 mins to fix
app/helpers/events_helper.rb on lines 27..31
app/helpers/events_helper.rb on lines 34..38
app/helpers/events_helper.rb on lines 48..52

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 29.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Similar blocks of code found in 4 locations. Consider refactoring.
Open

  def available_button(timecard)
    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
      button = link_to("Available", timecard_path(timecard, intention: "Available"), method: :Put, class: 'btn btn-xs btn-primary')
    end
    return raw button
Severity: Minor
Found in app/helpers/events_helper.rb and 3 other locations - About 25 mins to fix
app/helpers/events_helper.rb on lines 27..31
app/helpers/events_helper.rb on lines 41..45
app/helpers/events_helper.rb on lines 48..52

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 29.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Inconsistent indentation detected.
Open

    def event_label_class(event_status)
      # The options are found in app/models/event.rb: STATUS_CHOICES
      return nil if event_status.blank?
      case event_status
      when 'Scheduled', 'In-session', 'Completed'
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cops checks for inconsistent indentation.

Example:

class A
  def test
    puts 'hello'
     puts 'world'
  end
end

Line is too long. [96/80]
Open

      concat make_label(no_response, 'label label-default event-labels', tooltip: 'No Response')
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Missing magic comment # frozen_string_literal: true.
Open

module EventsHelper
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop is designed to help upgrade to Ruby 3.0. It will add the comment # frozen_string_literal: true to the top of files to enable frozen string literals. Frozen string literals may be default in Ruby 3.0. The comment will be added below a shebang and encoding comment. The frozen string literal comment is only valid in Ruby 2.3+.

Example: EnforcedStyle: when_needed (default)

# The `when_needed` style will add the frozen string literal comment
# to files only when the `TargetRubyVersion` is set to 2.3+.
# bad
module Foo
  # ...
end

# good
# frozen_string_literal: true

module Foo
  # ...
end

Example: EnforcedStyle: always

# The `always` style will always add the frozen string literal comment
# to a file, regardless of the Ruby version or if `freeze` or `<<` are
# called on a string literal.
# bad
module Bar
  # ...
end

# good
# frozen_string_literal: true

module Bar
  # ...
end

Example: EnforcedStyle: never

# The `never` will enforce that the frozen string literal comment does
# not exist in a file.
# bad
# frozen_string_literal: true

module Baz
  # ...
end

# good
module Baz
  # ...
end

Space inside } missing.
Open

                    data: {toggle: 'tooltip', placement: 'bottom'})
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

Example: EnforcedStyle: space

# The `space` style enforces that hash literals have
# surrounding space.

# bad
h = {a: 1, b: 2}

# good
h = { a: 1, b: 2 }

Example: EnforcedStyle: no_space

# The `no_space` style enforces that hash literals have
# no surrounding space.

# bad
h = { a: 1, b: 2 }

# good
h = {a: 1, b: 2}

Example: EnforcedStyle: compact

# The `compact` style normally requires a space inside
# hash braces, with the exception that successive left
# braces or right braces are collapsed together in nested hashes.

# bad
h = { a: { b: 2 } }

# good
h = { a: { b: 2 }}

Line is too long. [93/80]
Open

      button = link_to('Edit', edit_timecard_path(timecard), class: "btn btn-xs btn-primary")
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Prefer Date or Time over DateTime.
Open

      elsif event.start_time > (DateTime.now - 13.months)
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for uses of DateTime that should be replaced by Date or Time.

Example:

# bad - uses `DateTime` for current time
DateTime.now

# good - uses `Time` for current time
Time.now

# bad - uses `DateTime` for modern date
DateTime.iso8601('2016-06-29')

# good - uses `Date` for modern date
Date.iso8601('2016-06-29')

# good - uses `DateTime` with start argument for historical date
DateTime.iso8601('1751-04-23', Date::ENGLAND)

Redundant return detected.
Open

    return raw button
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for redundant return expressions.

Example:

def test
  return something
end

def test
  one
  two
  three
  return something
end

It should be extended to handle methods whose body is if/else or a case expression with a default branch.

Line is too long. [84/80]
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Use def with parentheses when there are parameters.
Open

  def previous_event event
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cops checks for parentheses around the arguments in method definitions. Both instance and class/singleton methods are checked.

Example: EnforcedStyle: require_parentheses (default)

# The `require_parentheses` style requires method definitions
# to always use parentheses

# bad
def bar num1, num2
  num1 + num2
end

def foo descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name
  do_something
end

# good
def bar(num1, num2)
  num1 + num2
end

def foo(descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name)
  do_something
end

Example: EnforcedStyle: requirenoparentheses

# The `require_no_parentheses` style requires method definitions
# to never use parentheses

# bad
def bar(num1, num2)
  num1 + num2
end

def foo(descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name)
  do_something
end

# good
def bar num1, num2
  num1 + num2
end

def foo descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name
  do_something
end

Example: EnforcedStyle: requirenoparenthesesexceptmultiline

# The `require_no_parentheses_except_multiline` style prefers no
# parantheses when method definition arguments fit on single line,
# but prefers parantheses when arguments span multiple lines.

# bad
def bar(num1, num2)
  num1 + num2
end

def foo descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name
  do_something
end

# good
def bar num1, num2
  num1 + num2
end

def foo(descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name)
  do_something
end

Redundant return detected.
Open

    return raw button
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for redundant return expressions.

Example:

def test
  return something
end

def test
  one
  two
  three
  return something
end

It should be extended to handle methods whose body is if/else or a case expression with a default branch.

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.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"

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.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"

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

    if can? :update, timecard and ["In-session", "Completed"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.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"

Keep a blank line before and after private.
Open

  private
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Access modifiers should be surrounded by blank lines.

Example:

# bad
class Foo
  def bar; end
  private
  def baz; end
end

# good
class Foo
  def bar; end

  private

  def baz; end
end

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      button = link_to("Available", timecard_path(timecard, intention: "Available"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.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"

Extra empty line detected at module body beginning.
Open


  def event_status_label(event)
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cops checks if empty lines around the bodies of modules match the configuration.

Example: EnforcedStyle: empty_lines

# good

module Foo

  def bar
    # ...
  end

end

Example: EnforcedStyle: emptylinesexcept_namespace

# good

module Foo
  module Bar

    # ...

  end
end

Example: EnforcedStyle: emptylinesspecial

# good
module Foo

  def bar; end

end

Example: EnforcedStyle: noemptylines (default)

# good

module Foo
  def bar
    # ...
  end
end

Line is too long. [95/80]
Open

      concat make_label(unavailable, 'label label-danger event-labels', tooltip: 'Unavailable')
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Line is too long. [131/80]
Open

      button = link_to("Scheduled", timecard_path(timecard, intention: "Scheduled"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Line is too long. [123/80]
Open

      button = link_to("Worked", timecard_path(timecard, outcome: "Worked"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Line is too long. [89/80]
Open

    partially_available = event.partially_available_people.of_dept(department).count.to_s
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Line is too long. [112/80]
Open

      concat make_label(partially_available, 'label label-warning event-labels', tooltip: 'Partially Available')
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      button = link_to("Unavailable", timecard_path(timecard, intention: "Unavailable"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.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. [103/80]
Open

    distance_of_time_in_words((Time.current), timecard.actual_start_time) if timecard.actual_start_time
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Missing top-level module documentation comment.
Open

module EventsHelper
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for missing top-level documentation of classes and modules. Classes with no body are exempt from the check and so are namespace modules - modules that have nothing in their bodies except classes, other modules, or constant definitions.

The documentation requirement is annulled if the class or module has a "#:nodoc:" comment next to it. Likewise, "#:nodoc: all" does the same for all its children.

Example:

# bad
class Person
  # ...
end

# good
# Description/Explanation of Person class
class Person
  # ...
end

Redundant return detected.
Open

    return raw button
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for redundant return expressions.

Example:

def test
  return something
end

def test
  one
  two
  three
  return something
end

It should be extended to handle methods whose body is if/else or a case expression with a default branch.

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      button = link_to("Scheduled", timecard_path(timecard, intention: "Scheduled"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.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"

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      button = link_to("Scheduled", timecard_path(timecard, intention: "Scheduled"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.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"

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      button = link_to('Edit', edit_timecard_path(timecard), class: "btn btn-xs btn-primary")
Severity: Minor
Found in app/helpers/events_helper.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. [92/80]
Open

      concat make_label(available, 'label label-success event-labels', tooltip: 'Available')
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Line is too long. [131/80]
Open

      button = link_to("Available", timecard_path(timecard, intention: "Available"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Align the elements of a hash literal if they span more than one line.
Open

                    data: {toggle: 'tooltip', placement: 'bottom'})
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Check that the keys, separators, and values of a multi-line hash literal are aligned according to configuration. The configuration options are:

- key (left align keys)
- separator (align hash rockets and colons, right align keys)
- table (left align keys, hash rockets, and values)

The treatment of hashes passed as the last argument to a method call can also be configured. The options are:

- always_inspect
- always_ignore
- ignore_implicit (without curly braces)
- ignore_explicit (with curly braces)

Example:

# EnforcedHashRocketStyle: key (default)
# EnforcedColonStyle: key (default)

# good
{
  foo: bar,
  ba: baz
}
{
  :foo => bar,
  :ba => baz
}

# bad
{
  foo: bar,
   ba: baz
}
{
  :foo => bar,
   :ba => baz
}

Example:

# EnforcedHashRocketStyle: separator
# EnforcedColonStyle: separator

#good
{
  foo: bar,
   ba: baz
}
{
  :foo => bar,
   :ba => baz
}

#bad
{
  foo: bar,
  ba: baz
}
{
  :foo => bar,
  :ba => baz
}
{
  :foo => bar,
  :ba  => baz
}

Example:

# EnforcedHashRocketStyle: table
# EnforcedColonStyle: table

#good
{
  foo: bar,
  ba:  baz
}
{
  :foo => bar,
  :ba  => baz
}

#bad
{
  foo: bar,
  ba: baz
}
{
  :foo => bar,
   :ba => baz
}

Line is too long. [102/80]
Open

      concat make_label(assignees, 'label label-info event-labels', tooltip: 'Assigned to THIS Event')
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Line is too long. [84/80]
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Redundant return detected.
Open

    return raw button
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for redundant return expressions.

Example:

def test
  return something
end

def test
  one
  two
  three
  return something
end

It should be extended to handle methods whose body is if/else or a case expression with a default branch.

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.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"

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.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"

Use && instead of and.
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for uses of and and or, and suggests using && and || instead. It can be configured to check only in conditions, or in all contexts.

Example: EnforcedStyle: always (default)

# bad
foo.save and return

# bad
if foo and bar
end

# good
foo.save && return

# good
if foo && bar
end

Example: EnforcedStyle: conditionals

# bad
if foo and bar
end

# good
foo.save && return

# good
foo.save and return

# good
if foo && bar
end

Use && instead of and.
Open

    if can? :update, timecard and ["In-session", "Completed"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for uses of and and or, and suggests using && and || instead. It can be configured to check only in conditions, or in all contexts.

Example: EnforcedStyle: always (default)

# bad
foo.save and return

# bad
if foo and bar
end

# good
foo.save && return

# good
if foo && bar
end

Example: EnforcedStyle: conditionals

# bad
if foo and bar
end

# good
foo.save && return

# good
foo.save and return

# good
if foo && bar
end

Redundant begin block detected.
Open

    begin
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for redundant begin blocks.

Currently it checks for code like this:

Example:

def redundant
  begin
    ala
    bala
  rescue StandardError => e
    something
  end
end

def preferred
  ala
  bala
rescue StandardError => e
  something
end

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      button = link_to("Unavailable", timecard_path(timecard, intention: "Unavailable"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.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"

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      button = link_to("Worked", timecard_path(timecard, outcome: "Worked"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.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"

Redundant return detected.
Open

    return raw button
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for redundant return expressions.

Example:

def test
  return something
end

def test
  one
  two
  three
  return something
end

It should be extended to handle methods whose body is if/else or a case expression with a default branch.

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      elsif event.status == "In-session" || event.status == "Scheduled"
Severity: Minor
Found in app/helpers/events_helper.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"

Inconsistent indentation detected.
Open

    def make_label(text, class_str, tooltip: nil)
      if tooltip
        content_tag(:span, text, class: class_str,
                    title: tooltip,
                    data: {toggle: 'tooltip', placement: 'bottom'})
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cops checks for inconsistent indentation.

Example:

class A
  def test
    puts 'hello'
     puts 'world'
  end
end

Line is too long. [84/80]
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Use && instead of and.
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for uses of and and or, and suggests using && and || instead. It can be configured to check only in conditions, or in all contexts.

Example: EnforcedStyle: always (default)

# bad
foo.save and return

# bad
if foo and bar
end

# good
foo.save && return

# good
if foo && bar
end

Example: EnforcedStyle: conditionals

# bad
if foo and bar
end

# good
foo.save && return

# good
foo.save and return

# good
if foo && bar
end

Use && instead of and.
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for uses of and and or, and suggests using && and || instead. It can be configured to check only in conditions, or in all contexts.

Example: EnforcedStyle: always (default)

# bad
foo.save and return

# bad
if foo and bar
end

# good
foo.save && return

# good
if foo && bar
end

Example: EnforcedStyle: conditionals

# bad
if foo and bar
end

# good
foo.save && return

# good
foo.save and return

# good
if foo && bar
end

Don't use parentheses around a method call.
Open

    distance_of_time_in_words((Time.current), timecard.actual_start_time) if timecard.actual_start_time
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cop checks for redundant parentheses.

Example:

# bad
(x) if ((y.z).nil?)

# good
x if y.z.nil?

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      button = link_to("Available", timecard_path(timecard, intention: "Available"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.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"

Space inside { missing.
Open

                    data: {toggle: 'tooltip', placement: 'bottom'})
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Checks that braces used for hash literals have or don't have surrounding space depending on configuration.

Example: EnforcedStyle: space

# The `space` style enforces that hash literals have
# surrounding space.

# bad
h = {a: 1, b: 2}

# good
h = { a: 1, b: 2 }

Example: EnforcedStyle: no_space

# The `no_space` style enforces that hash literals have
# no surrounding space.

# bad
h = { a: 1, b: 2 }

# good
h = {a: 1, b: 2}

Example: EnforcedStyle: compact

# The `compact` style normally requires a space inside
# hash braces, with the exception that successive left
# braces or right braces are collapsed together in nested hashes.

# bad
h = { a: { b: 2 } }

# good
h = { a: { b: 2 }}

Use def with parentheses when there are parameters.
Open

  def next_event event
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

This cops checks for parentheses around the arguments in method definitions. Both instance and class/singleton methods are checked.

Example: EnforcedStyle: require_parentheses (default)

# The `require_parentheses` style requires method definitions
# to always use parentheses

# bad
def bar num1, num2
  num1 + num2
end

def foo descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name
  do_something
end

# good
def bar(num1, num2)
  num1 + num2
end

def foo(descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name)
  do_something
end

Example: EnforcedStyle: requirenoparentheses

# The `require_no_parentheses` style requires method definitions
# to never use parentheses

# bad
def bar(num1, num2)
  num1 + num2
end

def foo(descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name)
  do_something
end

# good
def bar num1, num2
  num1 + num2
end

def foo descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name
  do_something
end

Example: EnforcedStyle: requirenoparenthesesexceptmultiline

# The `require_no_parentheses_except_multiline` style prefers no
# parantheses when method definition arguments fit on single line,
# but prefers parantheses when arguments span multiple lines.

# bad
def bar(num1, num2)
  num1 + num2
end

def foo descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name
  do_something
end

# good
def bar num1, num2
  num1 + num2
end

def foo(descriptive_var_name,
        another_descriptive_var_name,
        last_descriptive_var_name)
  do_something
end

Align the elements of a hash literal if they span more than one line.
Open

                    title: tooltip,
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Check that the keys, separators, and values of a multi-line hash literal are aligned according to configuration. The configuration options are:

- key (left align keys)
- separator (align hash rockets and colons, right align keys)
- table (left align keys, hash rockets, and values)

The treatment of hashes passed as the last argument to a method call can also be configured. The options are:

- always_inspect
- always_ignore
- ignore_implicit (without curly braces)
- ignore_explicit (with curly braces)

Example:

# EnforcedHashRocketStyle: key (default)
# EnforcedColonStyle: key (default)

# good
{
  foo: bar,
  ba: baz
}
{
  :foo => bar,
  :ba => baz
}

# bad
{
  foo: bar,
   ba: baz
}
{
  :foo => bar,
   :ba => baz
}

Example:

# EnforcedHashRocketStyle: separator
# EnforcedColonStyle: separator

#good
{
  foo: bar,
   ba: baz
}
{
  :foo => bar,
   :ba => baz
}

#bad
{
  foo: bar,
  ba: baz
}
{
  :foo => bar,
  :ba => baz
}
{
  :foo => bar,
  :ba  => baz
}

Example:

# EnforcedHashRocketStyle: table
# EnforcedColonStyle: table

#good
{
  foo: bar,
  ba:  baz
}
{
  :foo => bar,
  :ba  => baz
}

#bad
{
  foo: bar,
  ba: baz
}
{
  :foo => bar,
   :ba => baz
}

Line is too long. [135/80]
Open

      button = link_to("Unavailable", timecard_path(timecard, intention: "Unavailable"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Line is too long. [84/80]
Open

    if can? :update, timecard and ["In-session", "Completed"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.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"

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

    if can? :update, timecard and ["Scheduled", "In-session"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.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. [81/80]
Open

    unavailable         = event.unavailable_people.of_dept(department).count.to_s
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

    if can? :update, timecard and ["In-session", "Completed"].include? @event.status
Severity: Minor
Found in app/helpers/events_helper.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. [82/80]
Open

    no_response         = event.unresponsive_people.of_dept(department).count.to_s
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Use a guard clause instead of wrapping the code inside a conditional expression.
Open

      if event.is_template
Severity: Minor
Found in app/helpers/events_helper.rb by rubocop

Use a guard clause instead of wrapping the code inside a conditional expression

Example:

# bad
def test
  if something
    work
  end
end

# good
def test
  return unless something
  work
end

# also good
def test
  work if something
end

# bad
if something
  raise 'exception'
else
  ok
end

# good
raise 'exception' if something
ok

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      button = link_to("Worked", timecard_path(timecard, outcome: "Worked"), method: :Put, class: 'btn btn-xs btn-primary')
Severity: Minor
Found in app/helpers/events_helper.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"

Prefer single-quoted strings when you don't need string interpolation or special symbols.
Open

      elsif event.status == "In-session" || event.status == "Scheduled"
Severity: Minor
Found in app/helpers/events_helper.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"

There are no issues that match your filters.

Category
Status