Class: Ecoportal::API::V2::Page::Component::FilesField

Inherits:
Ecoportal::API::V2::Page::Component show all
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

#_parent, #_parent_key

Instance Method Summary collapse

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

#hash_label, #indexable_label

Methods inherited from Common::Content::DoubleModel

#initialize, new_uuid

Methods included from Common::Content::DoubleModel::Diffable

#as_update, #dirty?

Methods included from Common::Content::Includer

#include_missing

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

Returns:

  • (Boolean)


9
10
11
# File 'lib/ecoportal/api/v2/page/component/files_field.rb', line 9

def empty?
  items.empty?
end

#ordered_filesObject



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