Sha256: 24244e808f0f45d7d93cefb3d0f52e35bcc470ccfcd3e9a6d79512ad8a59a6a0

Contents?: true

Size: 1.14 KB

Versions: 18

Compression:

Stored size: 1.14 KB

Contents

class Avo::Resources::Items::Row
  include Avo::Concerns::IsResourceItem
  include Avo::Concerns::HasItems
  include Avo::Concerns::HasItemType
  include Avo::Concerns::VisibleItems

  class_attribute :item_type, default: :row

  attr_reader :view
  attr_accessor :items_holder

  delegate :items, :add_item, to: :items_holder

  def initialize(view: nil)
    @view = Avo::ViewInquirer.new view
    @items_holder = Avo::Resources::Items::Holder.new
  end

  def hydrate(view: nil, resource: nil, **args)
    @view = Avo::ViewInquirer.new view
    @resource = resource

    self
  end

  def has_items?
    @items.present?
  end

  class Builder
    class << self
      def parse_block(**args, &block)
        Docile.dsl_eval(new(**args), &block).build
      end
    end

    attr_reader :items_holder

    delegate :field, to: :items_holder
    delegate :tool, to: :items_holder
    delegate :items, to: :items_holder

    def initialize(**args)
      @row = Avo::Resources::Items::Row.new(**args)
      @items_holder = Avo::Resources::Items::Holder.new
    end

    # Fetch the tab
    def build
      @row.items_holder = @items_holder
      @row
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
avo-3.0.1.beta23 lib/avo/resources/items/row.rb
avo-3.0.1.beta20 lib/avo/resources/items/row.rb
avo-3.0.1.beta21 lib/avo/resources/items/row.rb
avo-3.0.1.beta17 lib/avo/resources/items/row.rb
avo-3.0.1.beta22 lib/avo/resources/items/row.rb
avo-3.0.1.beta18 lib/avo/resources/items/row.rb
avo-3.0.1.beta19 lib/avo/resources/items/row.rb
avo-3.0.1.beta24 lib/avo/resources/items/row.rb
avo-3.0.1.beta15 lib/avo/resources/items/row.rb
avo-3.0.1.beta16 lib/avo/resources/items/row.rb
avo-3.0.1.beta14 lib/avo/resources/items/row.rb
avo-3.0.1.beta12 lib/avo/resources/items/row.rb
avo-3.0.1.beta13 lib/avo/resources/items/row.rb
avo-3.0.1.beta10 lib/avo/resources/items/row.rb
avo-3.0.1.beta11 lib/avo/resources/items/row.rb
avo-3.0.0.pre19 lib/avo/resources/items/row.rb
avo-3.0.1.beta8 lib/avo/resources/items/row.rb
avo-3.0.1.beta9 lib/avo/resources/items/row.rb