module ParamsReady::Marshaller::HashSetMarshallers::SetMarshaller

Public Class Methods

canonicalize(definition, set, context, validator, freeze: false) click to toggle source
# File lib/params_ready/marshaller/hash_set_marshallers.rb, line 45
def self.canonicalize(definition, set, context, validator, freeze: false)
  canonicalize_collection(definition, context, validator, freeze: freeze) do |child|
    value = definition.values[child.name]
    set.member?(value) || set.member?(value.to_s)
  end
end
marshal(parameter, intent) click to toggle source
# File lib/params_ready/marshaller/hash_set_marshallers.rb, line 52
def self.marshal(parameter, intent)
  intent = parameter.class.intent_for_set(intent)

  members = parameter.send(:bare_value).select do |_, m|
    m.unwrap_or(false) == true && m.eligible_for_output?(intent)
  end.map do |key, _|
    parameter.definition.values[key]
  end

  members.to_set
end