Sha256: f3a5e2f241c040c516a9f962ebd33acb47d65ecc99755697fc17ee87f9783240

Contents?: true

Size: 1.69 KB

Versions: 9

Compression:

Stored size: 1.69 KB

Contents

module Ecoportal
  module API
    class V2
      class Page
        class Force < Ecoportal::API::Common::Content::DoubleModel
          INITIAL_WEIGHT = 9999

          class << self
            def new_doc
              {
                "id"     => new_uuid,
                "weight" => INITIAL_WEIGHT
              }
            end
          end

          class_resolver :bindings_class, "Ecoportal::API::V2::Page::Force::Bindings"
          class_resolver :helper_class, "Ecoportal::API::V2::Page::Force::Helper"

          passkey     :id
          passforced  :patch_ver, default: 1
          passthrough :name, :weight
          passdate    :last_synced_at
          passthrough :custom_script
          passthrough :script, read_only: true
          embeds_many :bindings, enum_class: :bindings_class
          embeds_many :helpers, klass: :helper_class

          def ooze
            _parent.ooze
          end

          # @see Ecoportal::API::V2::Page::Force::Bindings#add
          def bind(reference, **kargs, &block)
            bindings.add(reference, **kargs, &block)
          end

          # It updates `script` by using `helpers`
          def custom_script=(value)
            doc["custom_script"] = value
            update_script
          end

          # It sets the `script` value by using `custom_script` and `helpers[N..1].script`
          def update_script
            doc["script"] = helpers.to_a.reverse.map(&:script).push(custom_script).join("\n")
          end
        end
      end
    end
  end
end

require 'ecoportal/api/v2/page/force/helper'
require 'ecoportal/api/v2/page/force/binding'
require 'ecoportal/api/v2/page/force/bindings'

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ecoportal-api-v2-2.0.16 lib/ecoportal/api/v2/page/force.rb
ecoportal-api-v2-2.0.15 lib/ecoportal/api/v2/page/force.rb
ecoportal-api-v2-2.0.14 lib/ecoportal/api/v2/page/force.rb
ecoportal-api-v2-2.0.12 lib/ecoportal/api/v2/page/force.rb
ecoportal-api-v2-2.0.11 lib/ecoportal/api/v2/page/force.rb
ecoportal-api-v2-2.0.10 lib/ecoportal/api/v2/page/force.rb
ecoportal-api-v2-2.0.9 lib/ecoportal/api/v2/page/force.rb
ecoportal-api-v2-2.0.8 lib/ecoportal/api/v2/page/force.rb
ecoportal-api-v2-2.0.7 lib/ecoportal/api/v2/page/force.rb