app/services/cclf/mapping_bill_adapter.rb
module CCLF
class MappingBillAdapter < SimpleDelegator
KEYS = %i[bill_type bill_subtype].freeze
attr_reader :object, :mappings
delegate :bill_type, :bill_subtype, to: :@bill_types
def self.zip(bill_types = [])
KEYS.zip(bill_types).to_h
end
def initialize(object)
@object = object
@mappings = bill_mappings
@bill_types = OpenStruct.new(mappings[bill_key])
end
def maps?
bill_type.present?
end
private
def bill_mappings
raise 'Implement in sub-class'
end
def bill_key
raise 'Implement in sub-class'
end
end
end