Sha256: 1e1356cef74fe173be951a03d05b4f8f12ad701023202164862034bb906d753c

Contents?: true

Size: 787 Bytes

Versions: 11

Compression:

Stored size: 787 Bytes

Contents

module Flexite
  class ArrEntry < Entry
    has_many :entries, as: :parent, dependent: :destroy

    def value
      entries.select([:id, :value, :type]).map(&:value)
    end

    def entry=(entry)
      entries << entry
    end

    def form_attributes
      attributes.merge(entries: form_entries)
    end

    def self.form(attributes = {})
      Entry::ArrayForm.new(attributes)
    end

    def self.service(type)
      "arr_entry_#{type}".to_sym
    end

    def t_node
      node = super.except('value')

      if entries.any?
        node.merge!('entries' => entries.map(&:t_node))
      end

      node
    end

    private

    def form_entries
      entries.select([:id, :value, :type, :updated_at])
    end

    def cast_value
      # value should be blank
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
flexite-0.0.18 app/models/flexite/arr_entry.rb
flexite-0.0.17 app/models/flexite/arr_entry.rb
flexite-0.0.16 app/models/flexite/arr_entry.rb
flexite-0.0.15 app/models/flexite/arr_entry.rb
flexite-0.0.14 app/models/flexite/arr_entry.rb
flexite-0.0.13 app/models/flexite/arr_entry.rb
flexite-0.0.12 app/models/flexite/arr_entry.rb
flexite-0.0.11 app/models/flexite/arr_entry.rb
flexite-0.0.10 app/models/flexite/arr_entry.rb
flexite-0.0.9 app/models/flexite/arr_entry.rb
flexite-0.0.8 app/models/flexite/arr_entry.rb