Class: Nucop::ReleaseTogglesUseSymbols

Inherits:
RuboCop::Cop::Cop
  • Object
show all
Defined in:
lib/nucop/cops/release_toggles_use_symbols.rb

Overview

This cop checks that a symbol is used when using a Release Toggle name

Examples:


# bad

release_toggle_enabled?("move_out_of_wip_autocomplete")
release_toggle_enabled_for_any_site?("versioned_production_specification_ui")
ReleaseToggles.enabled?("test_toggle", site_id: current_user.site_id)
ReleaseToggles.disabled?("test_toggl"e, site_id: current_user.site_id)
ReleaseToggles.enable("test_toggle", site_id: current_user.site_id)
ReleaseToggles.disable!("test_toggle", site_id: current_user.site_id)

# good

release_toggle_enabled?(:move_out_of_wip_autocomplete)

Constant Summary collapse

MSG =
"Use a symbol when refering to a Release Toggle's by name".freeze

Instance Method Summary collapse

Instance Method Details

#autocorrect(node) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/nucop/cops/release_toggles_use_symbols.rb', line 35

def autocorrect(node)
  ->(corrector) do
    toggle_name = node.children[2].value

    corrector.replace(node.children[2].source_range, ":#{toggle_name}")
  end
end

#on_send(node) ⇒ Object



30
31
32
33
# File 'lib/nucop/cops/release_toggles_use_symbols.rb', line 30

def on_send(node)
  test_helper?(node) { add_offense(node, message: MSG, location: node.children[2].loc.expression) }
  release_toggles_public_api_method?(node) { add_offense(node, message: MSG, location: node.children[2].loc.expression) }
end