Class: Libis::Workflow::ActiveRecord::WorkItem
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Libis::Workflow::ActiveRecord::WorkItem
show all
- Includes:
- Base, Helpers::PropertyHelper, Base::WorkItem
- Defined in:
- lib/libis/workflow/activerecord/work_item.rb
Direct Known Subclasses
Run
Instance Method Summary
collapse
included
Methods included from Base
included, #to_hash, #to_s
Instance Method Details
#add_item(item) ⇒ Object
37
38
39
40
|
# File 'lib/libis/workflow/activerecord/work_item.rb', line 37
def add_item(item)
raise Libis::WorkflowError, 'Trying to add item already linked to another item' unless item.parent.nil?
super(item)
end
|
#copy_item(item, &block) ⇒ Object
53
54
55
56
57
58
59
|
# File 'lib/libis/workflow/activerecord/work_item.rb', line 53
def copy_item(item, &block)
new_item = item.duplicate &block
new_item.parent = nil
add_item new_item
item.items.each {|i| new_item.copy_item(i)}
new_item
end
|
#duplicate {|new_item| ... } ⇒ Object
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/libis/workflow/activerecord/work_item.rb', line 42
def duplicate
new_item = self.class.new
new_item.properties = {}.with_indifferent_access
self.properties.each {|k, v| new_item.properties[k.to_sym] = v.dup}
new_item.options = {}.with_indifferent_access
self.options.each {|k, v| new_item.options[k.to_sym] = v.dup}
new_item.status_log = []
yield new_item if block_given?
new_item
end
|
#get_item_list ⇒ Object
74
75
76
|
# File 'lib/libis/workflow/activerecord/work_item.rb', line 74
def get_item_list
self.items.to_a
end
|
#get_items ⇒ Object
70
71
72
|
# File 'lib/libis/workflow/activerecord/work_item.rb', line 70
def get_items
self.items
end
|
#move_item(item) ⇒ Object
61
62
63
64
65
66
67
68
|
# File 'lib/libis/workflow/activerecord/work_item.rb', line 61
def move_item(item)
old_parent = item.parent
item.parent = self
item.save
old_parent.items.reset
self.items.reset
item
end
|