Sha256: cdcb441b57853f9c991501907b8ba0ddbbd69b00d6bd7054ab8ffb297d12a7f5

Contents?: true

Size: 1.02 KB

Versions: 156

Compression:

Stored size: 1.02 KB

Contents

module Avo
  class GridCollector
    include FieldsCollector

    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)
      self.cover_field = parse_field(field_name, as: as, **args, &block)
    end

    def title(field_name, as:, **args, &block)
      self.title_field = parse_field(field_name, as: as, **args, &block)
    end

    def body(field_name, as:, **args, &block)
      self.body_field = parse_field(field_name, as: as, **args, &block)
    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

156 entries across 156 versions & 1 rubygems

Version Path
avo-1.25.2 lib/avo/grid_collector.rb
avo-2.7.1.pre.1 lib/avo/grid_collector.rb
avo-2.7.0 lib/avo/grid_collector.rb
avo-2.6.1.pre.2 lib/avo/grid_collector.rb
avo-2.6.1.pre.1 lib/avo/grid_collector.rb
avo-2.6.0 lib/avo/grid_collector.rb
avo-2.5.2.pre.7 lib/avo/grid_collector.rb
avo-2.5.2.pre.6 lib/avo/grid_collector.rb
avo-2.5.2.pre.5 lib/avo/grid_collector.rb
avo-2.5.2.pre.4 lib/avo/grid_collector.rb
avo-2.5.2.pre.3 lib/avo/grid_collector.rb
avo-2.5.2.pre.2 lib/avo/grid_collector.rb
avo-2.5.2.pre.1 lib/avo/grid_collector.rb
avo-2.5.1 lib/avo/grid_collector.rb
avo-2.5.0 lib/avo/grid_collector.rb
avo-2.4.1 lib/avo/grid_collector.rb
avo-2.4.0 lib/avo/grid_collector.rb
avo-2.3.1.pre.6 lib/avo/grid_collector.rb
avo-2.3.1.pre.5 lib/avo/grid_collector.rb
avo-2.3.1.pre.4 lib/avo/grid_collector.rb