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)