class Eco::API::Common::People::DefaultParsers::SelectParser

Public Instance Methods

process() click to toggle source
# File lib/eco/api/common/people/default_parsers/select_parser.rb, line 8
def process
  @parsers.define_attribute(:select, dependencies: @options) do |parser|
    parser.def_parser  do |value, deps|
      options_hash = deps[:select_hashes][deps["attr"]]
      next value if !options_hash
      if value.is_a?(Array)
        value.map { |v| options_hash[v&.downcase.strip] || v }
      elsif value
        options_hash[value&.downcase.strip] || value
      end
    end.def_serializer do |value|
      value
    end
  end
end