Sha256: d4feb65d732e5a8aaea9645edb07a8f474f0e03b0f73eb57486f73b4f99ce4d5

Contents?: true

Size: 956 Bytes

Versions: 5

Compression:

Stored size: 956 Bytes

Contents

class Anchormodel::ActiveModelTypeValueMulti < Anchormodel::ActiveModelTypeValueSingle
  # This converts DB or input to an Anchormodel instance
  def cast(values)
    return values.split(',').map { |value| super(value) }.compact.to_set
  end

  # This converts an Anchormodel instance to string for DB
  def serialize(values)
    return case values
           when Enumerable
             values.map { |value| super(value) }.compact.join(',')
           when String
             values
           when nil
             ''
           else
             fail "Attempt to set #{@attribute.attribute_name} to unsupported type #{values.class}"
           end
  end

  def serializable?(values)
    return case values
           when Enumerable
             values.map { |value| super(value) }.compact.join(',')
           when String
             values.split(',').map { |value| super(value) }.compact
           else
             false
           end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
anchormodel-0.2.5 lib/anchormodel/active_model_type_value_multi.rb
anchormodel-0.2.4 lib/anchormodel/active_model_type_value_multi.rb
anchormodel-0.2.3 lib/anchormodel/active_model_type_value_multi.rb
anchormodel-0.2.2 lib/anchormodel/active_model_type_value_multi.rb
anchormodel-0.2.0 lib/anchormodel/active_model_type_value_multi.rb