Sha256: e24ce80e1bdad8bb71f09a10d54e634450e96cc340f8bc7642c901a87152d0b6

Contents?: true

Size: 1.37 KB

Versions: 144

Compression:

Stored size: 1.37 KB

Contents

module Avo
  class GridCollector
    include Avo::Concerns::HasFields

    attr_accessor :cover_field
    attr_accessor :title_field
    attr_accessor :body_field

    def initialize
      @cover_field = nil
      @title_field = nil
      @body_field = nil
    end

    def cover(field_name, as:, **args, &block)
      field_parser = Avo::Dsl::FieldParser.new(id: field_name, as: as, order_index: items_index, **args, &block).parse
      self.cover_field = field_parser.instance if field_parser.valid?
    end

    def title(field_name, as:, **args, &block)
      field_parser = Avo::Dsl::FieldParser.new(id: field_name, as: as, order_index: items_index, **args, &block).parse
      self.title_field = field_parser.instance if field_parser.valid?
    end

    def body(field_name, as:, **args, &block)
      field_parser = Avo::Dsl::FieldParser.new(id: field_name, as: as, order_index: items_index, **args, &block).parse
      self.body_field = field_parser.instance if field_parser.valid?
    end

    def hydrate(model:, view:, resource:)
      cover_field.hydrate(model: model, view: view, resource: resource) if cover_field.present?
      title_field.hydrate(model: model, view: view, resource: resource) if title_field.present?
      body_field.hydrate(model: model, view: view, resource: resource) if body_field.present?

      self
    end

    def blank?
      title_field.blank?
    end
  end
end

Version data entries

144 entries across 144 versions & 1 rubygems

Version Path
avo-2.53.0 lib/avo/grid_collector.rb
avo-2.52.0 lib/avo/grid_collector.rb
avo-2.49.0 lib/avo/grid_collector.rb
avo-2.48.0 lib/avo/grid_collector.rb
avo-2.47.0 lib/avo/grid_collector.rb
avo-2.46.0 lib/avo/grid_collector.rb
avo-2.45.0 lib/avo/grid_collector.rb
avo-2.44.0 lib/avo/grid_collector.rb
avo-2.43.0 lib/avo/grid_collector.rb
avo-2.42.2 lib/avo/grid_collector.rb
avo-2.42.1 lib/avo/grid_collector.rb
avo-2.42.0 lib/avo/grid_collector.rb
avo-2.41.0 lib/avo/grid_collector.rb
avo-2.40.0 lib/avo/grid_collector.rb
avo-2.39.0 lib/avo/grid_collector.rb
avo-2.38.0 lib/avo/grid_collector.rb
avo-2.37.2 lib/avo/grid_collector.rb
avo-2.37.1 lib/avo/grid_collector.rb
avo-2.37.0 lib/avo/grid_collector.rb
avo-2.36.3 lib/avo/grid_collector.rb