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

Included in:
Job, WorkItem, 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



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

def self.included(klass)
  klass.extend(ClassMethods)

  klass.class_eval do

    include ::Mongoid::Document
    include ::Mongoid::Timestamps::Created::Short
    # include ::Libis::Workflow::Mongoid::Sequence
    #
    # field :_id, type: Integer, overwrite: true
    # sequence :_id
    index({c_at: 1}, {name: 'by_created'})

  end
end

Instance Method Details

#to_hashObject



56
57
58
59
60
61
62
# File 'lib/libis/workflow/mongoid/base.rb', line 56

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_sObject



64
65
66
# File 'lib/libis/workflow/mongoid/base.rb', line 64

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