This rule was added in rubocop 1.79. We were inconsistent about it, so we're adding it to get more consistency.
50 lines
966 B
Ruby
50 lines
966 B
Ruby
class SDG::ProcessEnabled
|
|
include SettingsHelper
|
|
|
|
attr_reader :record_or_name
|
|
|
|
def initialize(record_or_name)
|
|
@record_or_name = record_or_name
|
|
end
|
|
|
|
def enabled?
|
|
feature?("sdg") && feature?(process_name) && setting["sdg.process.#{process_name}"] && relatable?
|
|
end
|
|
|
|
def name
|
|
if record_or_name.respond_to?(:downcase)
|
|
record_or_name
|
|
else
|
|
record_or_name.class.name
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def process_name
|
|
if controller_path_name?
|
|
name.split("/").first
|
|
else
|
|
if module_name == "Legislation"
|
|
"legislation"
|
|
else
|
|
module_name.constantize.table_name
|
|
end
|
|
end
|
|
end
|
|
|
|
def controller_path_name?
|
|
name == name.downcase
|
|
end
|
|
|
|
def module_name
|
|
name.split("::").first
|
|
end
|
|
|
|
def relatable?
|
|
return true if controller_path_name?
|
|
|
|
SDG::Related::RELATABLE_TYPES.intersect?([record_or_name.class.name, record_or_name])
|
|
end
|
|
end
|