Class: RelateIq::Utils::FieldValueEncoder

Inherits:
Object
  • Object
show all
Defined in:
lib/relateiq/utils/field_value_encoder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attrs = {}) ⇒ FieldValueEncoder

Returns a new instance of FieldValueEncoder.



6
7
8
# File 'lib/relateiq/utils/field_value_encoder.rb', line 6

def initialize(attrs = {})
  @list = attrs.fetch(:list)
end

Instance Attribute Details

#listObject

Returns the value of attribute list.



4
5
6
# File 'lib/relateiq/utils/field_value_encoder.rb', line 4

def list
  @list
end

Instance Method Details

#decode(encoded_value) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/relateiq/utils/field_value_encoder.rb', line 20

def decode(encoded_value)
  return {} if encoded_value.nil?
  id = encoded_value.keys[0]
  values = encoded_value.values[0]
  field = find_field(id)
  { "#{field[:name]}" => decode_values(field, values) }
end

#encode(decoded_value) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/relateiq/utils/field_value_encoder.rb', line 10

def encode(decoded_value)
  return {} if decoded_value.nil?
  name = decoded_value.keys[0]
  values = decoded_value.values[0]
  field = find_field_by_name(name)
  encoded_value = encode_values(field, values)
  return {} if encoded_value == []
  { "#{field[:id]}" =>  encoded_value }
end