Sha256: 53697956090e61463de289cfc62f2402e78258db158bb5a9ddd80355b3477bd5

Contents?: true

Size: 1.07 KB

Versions: 10

Compression:

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

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

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

10 entries across 10 versions & 1 rubygems

Version Path
avo-2.9.2.pre1 lib/avo/grid_collector.rb
avo-2.9.1.pre7 lib/avo/grid_collector.rb
avo-2.9.1.pre6 lib/avo/grid_collector.rb
avo-2.9.1.pre5 lib/avo/grid_collector.rb
avo-2.9.1.pre4 lib/avo/grid_collector.rb
avo-2.9.1.pre3 lib/avo/grid_collector.rb
avo-2.9.1.pre2 lib/avo/grid_collector.rb
avo-2.9.1.pre1 lib/avo/grid_collector.rb
avo-2.9.0 lib/avo/grid_collector.rb
avo-2.8.0 lib/avo/grid_collector.rb