Class: Ecoportal::API::V2::Page::Components

Inherits:
Common::Content::CollectionModel show all
Defined in:
lib/ecoportal/api/v2/page/components.rb

Constant Summary

Constants inherited from Common::Content::DoubleModel

Common::Content::DoubleModel::NOT_USED

Constants included from Common::Content::ClassHelpers

Common::Content::ClassHelpers::NOT_USED

Instance Attribute Summary

Attributes inherited from Common::Content::DoubleModel

#_key, #_parent

Instance Method Summary collapse

Methods inherited from Common::Content::CollectionModel

#[], #_doc_key, #_items, #delete!, doc_class, #each, #empty?, #initialize, items_key, items_key=, klass?, #length, new_item, #present?, #upsert!, #values_at

Methods inherited from Common::Content::DoubleModel

#_doc_key, #as_json, #as_update, #consolidate!, #dirty?, #doc, embeds_multiple, embeds_one, #initialize, #key, #key=, key?, new_uuid, #original_doc, pass_reader, pass_writer, passarray, passdate, passkey, passthrough, #pretty_print, #replace_doc, #reset!, #root, #to_json

Methods included from Common::Content::ClassHelpers

#instance_variable_name, #new_class, #resolve_class, #to_constant, #to_time, #used_param?

Constructor Details

This class inherits a constructor from Ecoportal::API::Common::Content::CollectionModel

Instance Method Details

#add(label:, type:) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/ecoportal/api/v2/page/components.rb', line 30

def add(label:, type:)
  fld_doc = Ecoportal::API::V2::Page::Component.new_doc(type: type)
  upsert!(fld_doc) do |fld|
    fld.label  = label
    yield(fld) if block_given?
  end
end

#get_by_name(name, type: nil) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/ecoportal/api/v2/page/components.rb', line 22

def get_by_name(name, type: nil)
  pool = type ? get_by_type(type) : self
  
  pool.select do |comp|
    comp.label.to_s.strip.downcase == name.to_s.strip.downcase
  end.first
end

#get_by_type(type) ⇒ Object



16
17
18
19
20
# File 'lib/ecoportal/api/v2/page/components.rb', line 16

def get_by_type(type)
  self.select do |comp|
    comp.type.downcase == type.to_s.strip.downcase
  end
end