class Leafy::FieldValueCollection

Public Class Methods

new(leafy_fields, field_values: {}, ar_json: false) click to toggle source
# File lib/leafy/field_value_collection.rb, line 7
def initialize(leafy_fields, field_values: {}, ar_json: false)
  @leafy_fields = leafy_fields
  @coder = ar_json ? Leafy::Coder::Mock.new : Leafy.configuration.coder
  self.leafy_field_values = field_values
end

Public Instance Methods

[](index) click to toggle source
# File lib/leafy/field_value_collection.rb, line 32
def [](index)
  to_a[index]
end
dump() click to toggle source
# File lib/leafy/field_value_collection.rb, line 57
def dump
  data = {}
  each { |field_value| data[field_value.id] = field_value.raw }
  @coder.dump(data)
end
each() { |i| ... } click to toggle source
# File lib/leafy/field_value_collection.rb, line 24
def each
  if block_given?
    @leafy_field_values.each { |i| yield i }
  else
    @leafy_field_values.each
  end
end
leafy_field_values=(data) click to toggle source
# File lib/leafy/field_value_collection.rb, line 13
def leafy_field_values=(data)
  @leafy_field_values = @leafy_fields.map do |custom_field|
    Leafy::FieldValue.new(
      id: custom_field.id,
      name: custom_field.name,
      raw: data[custom_field.id],
      type: custom_field.type
    )
  end
end
load(data) click to toggle source
# File lib/leafy/field_value_collection.rb, line 63
def load(data)
  self.leafy_field_values = @coder.load(data)
end
size() click to toggle source
# File lib/leafy/field_value_collection.rb, line 36
def size
  count
end
values() click to toggle source
# File lib/leafy/field_value_collection.rb, line 40
def values
  inject({}) do |acc, field_value|
    acc[field_value.id] = field_value.value
    acc
  end
end
values=(attributes = {}) click to toggle source
# File lib/leafy/field_value_collection.rb, line 47
def values=(attributes = {})
  _attributes = {}

  attributes.each { |key, value| _attributes[key.to_s] = value }

  @leafy_field_values.each do |field_value|
    field_value.value = _attributes[field_value.id]
  end
end