Module: ArDocStore::EmbeddableModel

Defined in:
lib/ar_doc_store/embeddable_model.rb

Defined Under Namespace

Modules: ClassMethods, InstanceMethods

Class Method Summary collapse

Class Method Details

.included(mod) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ar_doc_store/embeddable_model.rb', line 5

def self.included(mod)
  mod.send :include, ActiveModel::AttributeMethods
  mod.send :include, ActiveModel::Validations
  mod.send :include, ActiveModel::Conversion
  mod.send :extend,  ActiveModel::Naming
  mod.send :include, ActiveModel::Dirty
  mod.send :include, ActiveModel::Serialization
  mod.send :include, ArDocStore::Storage
  mod.send :include, ArDocStore::Embedding
  mod.send :include, InstanceMethods
  mod.send :extend,  ClassMethods

  mod.class_eval do
    attr_accessor :_destroy
    attr_accessor :parent
    attr_reader :attributes

    class_attribute :virtual_attributes
    self.virtual_attributes ||= HashWithIndifferentAccess.new

    delegate :as_json, to: :attributes

    attribute :id, :uuid

  end

end