Module: Libis::Workflow::Mongoid::Base

Included in:
Job, LogEntry, Workflow
Defined in:
lib/libis/workflow/mongoid/base.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/libis/workflow/mongoid/base.rb', line 18

def self.included(klass)
  klass.extend(ClassMethods)
  klass.class_eval do
    include ::Mongoid::Document
    include ::Mongoid::Timestamps::Created::Short
    # include ::Mongoid::Extensions::Hash::IndifferentAccess
    include ::Libis::Workflow::Mongoid::Sequence
    field :_id, type: Integer, overwrite: true
    sequence :_id
    index c_at: 1
  end
end

Instance Method Details

#dup ⇒ Object



67
68
69
70
# File 'lib/libis/workflow/mongoid/base.rb', line 67

def dup
  new_obj = self.class.new
  new_obj.copy_attributes(self)
end

#to_hash ⇒ Object



72
73
74
75
76
77
78
# File 'lib/libis/workflow/mongoid/base.rb', line 72

def to_hash
  result = self.attributes.reject { |k, v| v.blank? || volatile_attributes.include?(k) }
  result = result.to_yaml.gsub(/!ruby\/hash:BSON::Document/, '')
  # noinspection RubyResolve
  result = YAML.load(result)
  result.key_strings_to_symbols!(recursive: true)
end

#to_s ⇒ Object



80
81
82
# File 'lib/libis/workflow/mongoid/base.rb', line 80

def to_s
  self.name || "#{self.class.name}_#{self.id}"
end