Class: Ecoportal::API::V2::Page::Sections
- Inherits:
-
Common::Content::CollectionModel
- Object
- Common::BaseModel
- Common::Content::DoubleModel
- Common::Content::CollectionModel
- Ecoportal::API::V2::Page::Sections
- Defined in:
- lib/ecoportal/api/v2/page/sections.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
Instance Method Summary collapse
- #add(name: nil, split: false, pos: NOT_USED, before: NOT_USED, after: NOT_USED) ⇒ Object
- #ordered ⇒ Object
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(name: nil, split: false, pos: NOT_USED, before: NOT_USED, after: NOT_USED) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/ecoportal/api/v2/page/sections.rb', line 10 def add(name: nil, split: false, pos: NOT_USED, before: NOT_USED, after: NOT_USED) sec_doc = Ecoportal::API::V2::Page::Section.new_doc(split: split) upsert!(sec_doc, pos: pos, before: before, after: after) do |section| section.heading = name if prev = previous_section(section) section.weight = prev.weight end yield(section) if block_given? #fix_weights! # a server bug prevents to set the weight of existing sections end end |
#ordered ⇒ Object
22 23 24 25 26 |
# File 'lib/ecoportal/api/v2/page/sections.rb', line 22 def ordered each_with_index.sort_by do |section, index| (section.weight >= 9999) ? [index, index] : [section.weight, index] end.map(&:first) end |