Sha256: 0167fb2d71cfff5e0bc902bfc451c4b8111482c194763721d2634459429ee226
Contents?: true
Size: 1.27 KB
Versions: 12
Compression:
Stored size: 1.27 KB
Contents
module Avo class GridCollector 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, **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, **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, **args, &block).parse self.body_field = field_parser.instance if field_parser.valid? end def hydrate(record:, view:, resource:) cover_field.hydrate(record: record, view: view, resource: resource) if cover_field.present? title_field.hydrate(record: record, view: view, resource: resource) if title_field.present? body_field.hydrate(record: record, view: view, resource: resource) if body_field.present? self end def blank? title_field.blank? end end end
Version data entries
12 entries across 12 versions & 1 rubygems