Files
nairobi/app/models/sdg/process_enabled.rb
Javi Martín 584176adfa Add and apply Style/ArrayIntersect rubocop rule
The `intersect?` method has been added in Ruby 3.1, and it's more
readable than `(a & b).any?`.
2023-09-12 15:19:04 +02:00

49 lines
965 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