Class: Ecoportal::API::V2::Page::Component::FilesField
- Inherits:
-
Ecoportal::API::V2::Page::Component
- Object
- Common::BaseModel
- Common::Content::DoubleModel
- Ecoportal::API::V2::Page::Component
- Ecoportal::API::V2::Page::Component::FilesField
- Defined in:
- lib/ecoportal/api/v2/page/component/files_field.rb
Constant Summary
Constants included from Common::Content::StringDigest
Common::Content::StringDigest::MAX_HASH_LABEL
Constants included from Common::Content::DoubleModel::Diffable
Common::Content::DoubleModel::Diffable::DIFF_CLASS
Constants included from Common::Content::DoubleModel::Base
Common::Content::DoubleModel::Base::NOT_USED
Instance Attribute Summary
Attributes included from Common::Content::DoubleModel::Parented
Instance Method Summary collapse
- #add_file(container_id, pos: NOT_USED, before: NOT_USED, after: NOT_USED) ⇒ Object
- #empty? ⇒ Boolean
- #ordered_files ⇒ Object
- #to_s(delimiter: "\n") ⇒ Object
Methods inherited from Ecoportal::API::V2::Page::Component
#attached?, #bindings, #bindings?, #configure, #delete!, #forces, get_class, #indexable_label, #move, #multi_section?, new_doc, #ooze, #ref, #ref_backend, #replace, #replace_bindings, #section, #unattach!
Methods included from Common::Content::StringDigest
Methods inherited from Common::Content::DoubleModel
Methods included from Common::Content::DoubleModel::Diffable
Methods included from Common::Content::Includer
Constructor Details
This class inherits a constructor from Ecoportal::API::Common::Content::DoubleModel
Instance Method Details
#add_file(container_id, pos: NOT_USED, before: NOT_USED, after: NOT_USED) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/ecoportal/api/v2/page/component/files_field.rb', line 13 def add_file(container_id, pos: NOT_USED, before: NOT_USED, after: NOT_USED) file_doc = items.items_class.new_doc items.upsert!(file_doc, pos: pos, before: before, after: after) do |file| file.file_container_id = container_id if (prev = previous_file(file)) file.position = prev.position end yield(file) if block_given? fix_file_positions! end end |
#empty? ⇒ Boolean
9 10 11 |
# File 'lib/ecoportal/api/v2/page/component/files_field.rb', line 9 def empty? items.empty? end |
#ordered_files ⇒ Object
28 29 30 31 32 |
# File 'lib/ecoportal/api/v2/page/component/files_field.rb', line 28 def ordered_files items.sort_by.with_index do |file, index| [file.position, index] end end |
#to_s(delimiter: "\n") ⇒ Object
34 35 36 |
# File 'lib/ecoportal/api/v2/page/component/files_field.rb', line 34 def to_s(delimiter: "\n") ordered_files.map(&:to_s).join(delimiter) end |