1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
# frozen_string_literal: true
module ActiveModel
class Serializer
class Fieldset
def initialize(fields)
@raw_fields = fields || {}
end
def fields
@fields ||= parsed_fields
end
def fields_for(type)
fields[type.to_s.singularize.to_sym] || fields[type.to_s.pluralize.to_sym]
end
protected
attr_reader :raw_fields
private
def parsed_fields
if raw_fields.is_a?(Hash)
raw_fields.each_with_object({}) { |(k, v), h| h[k.to_sym] = v.map(&:to_sym) }
else
{}
end
end
end
end
end
|