Sha256: 64e55e67493b835c9e1faacbd1b197fd06b0ae5e024295714efe52f675eac329

Contents?: true

Size: 1.03 KB

Versions: 15

Compression:

Stored size: 1.03 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 title_field.present?

      self
    end

    def blank?
      title_field.blank?
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
avo-1.1.0 lib/avo/grid_collector.rb
avo-1.1.0.pre.1 lib/avo/grid_collector.rb
avo-1.0.5 lib/avo/grid_collector.rb
avo-1.0.4 lib/avo/grid_collector.rb
avo-1.0.2 lib/avo/grid_collector.rb
avo-1.0.1 lib/avo/grid_collector.rb
avo-1.0.0 lib/avo/grid_collector.rb
avo-0.5.0.beta15 lib/avo/grid_collector.rb
avo-0.5.0.beta14 lib/avo/grid_collector.rb
avo-0.5.0.beta13 lib/avo/grid_collector.rb
avo-0.5.0.beta12 lib/avo/grid_collector.rb
avo-0.5.0.beta11 lib/avo/grid_collector.rb
avo-0.5.0.beta10 lib/avo/grid_collector.rb
avo-0.5.0.beta9 lib/avo/grid_collector.rb
avo-0.5.0.beta8 lib/avo/grid_collector.rb