Class: Cardboard::PagePart
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Cardboard::PagePart
- Includes:
- RankedModel
- Defined in:
- app/models/cardboard/page_part.rb
Instance Method Summary collapse
Instance Method Details
#attr(field) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 |
# File 'app/models/cardboard/page_part.rb', line 54 def attr(field) field = field.to_s @attr ||= {} @attr[field] ||= begin f = self.fields.where(identifier: field).first return nil unless f out = f.value_uid.nil? ? nil : f.value out = f.default if f.required? && out.nil? out end end |
#new_subpart ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/models/cardboard/page_part.rb', line 38 def new_subpart return nil if !repeatable? || subpart? master = self.subparts.first master_hash = master.attributes.select do |key, value| ["parent_part_id"].include? key end subpart = Cardboard::PagePart.new(master_hash) for field in master.fields field_hash = field.attributes.select do |key, value| ["identifier", "label", "type", "required", "hint", "placeholder"].include? key end subpart.fields << Cardboard::Field.new(field_hash) end return subpart end |
#repeatable? ⇒ Boolean
34 35 36 |
# File 'app/models/cardboard/page_part.rb', line 34 def repeatable? @parent_repeatable ||= self.parent ? self.parent[:repeatable] : super end |
#subpart? ⇒ Boolean
30 31 32 |
# File 'app/models/cardboard/page_part.rb', line 30 def subpart? !self.parent_part_id.nil? end |