lib/ecoportal/api/common/content/double_model.rb in ecoportal-api-oozes-0.5.7 vs lib/ecoportal/api/common/content/double_model.rb in ecoportal-api-oozes-0.5.8

- old
+ new

@@ -1,5 +1,7 @@ +require 'securerandom' + module Ecoportal module API module Common module Content # Basic model class, to **build _get_ / _set_ `methods`** for a given property @@ -26,10 +28,14 @@ def key=(value) @key = value.to_s.freeze end + def new_uuid(length: 12) + SecureRandom.hex(length) + end + # Same as `attr_reader` but links to a subjacent `Hash` model property # @note it does **not** create an _instance variable_ def pass_reader(*methods) methods.each do |method| method = method.to_s.freeze @@ -152,17 +158,10 @@ end embeds_one(method, key: key, multiple: true, klass: dim_class) end - # Creates a new object with `doc` where `original_doc` is `{}` - def create(doc) - self.new({}).tap do |page| - page.replace_doc(doc) - end - end - end attr_reader :_parent, :_key def initialize(doc = {}, parent: self, key: nil) @@ -304,10 +303,10 @@ end end # Removes all the persistent variables def variables_remove! - @_dim_vars.map {|k| variable_remove!(k)} + @_dim_vars.dup.map {|k| variable_remove!(k)} end private def instance_variable_name(key)