Class: Qyu::Workflow
- Inherits:
-
Object
- Object
- Qyu::Workflow
- Defined in:
- lib/qyu/models/workflow.rb
Instance Attribute Summary collapse
-
#created_at ⇒ Object
readonly
Returns the value of attribute created_at.
-
#descriptor ⇒ Object
readonly
Returns the value of attribute descriptor.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#updated_at ⇒ Object
readonly
Returns the value of attribute updated_at.
Class Method Summary collapse
- .count ⇒ Object
- .create(name:, descriptor:) ⇒ Object
- .delete(id) ⇒ Object
- .delete_by(name: nil, id: nil) ⇒ Object
- .find(id, raise_error: true) ⇒ Object
- .find_by(name: nil, id: nil) ⇒ Object
- .find_by!(name: nil, id: nil) ⇒ Object
- .select(limit: 30, offset: 0, order: :asc) ⇒ Object
Instance Method Summary collapse
Instance Attribute Details
#created_at ⇒ Object (readonly)
Returns the value of attribute created_at.
5 6 7 |
# File 'lib/qyu/models/workflow.rb', line 5 def created_at @created_at end |
#descriptor ⇒ Object (readonly)
Returns the value of attribute descriptor.
5 6 7 |
# File 'lib/qyu/models/workflow.rb', line 5 def descriptor @descriptor end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
5 6 7 |
# File 'lib/qyu/models/workflow.rb', line 5 def id @id end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
5 6 7 |
# File 'lib/qyu/models/workflow.rb', line 5 def name @name end |
#updated_at ⇒ Object (readonly)
Returns the value of attribute updated_at.
5 6 7 |
# File 'lib/qyu/models/workflow.rb', line 5 def updated_at @updated_at end |
Class Method Details
.count ⇒ Object
52 53 54 |
# File 'lib/qyu/models/workflow.rb', line 52 def count Qyu.store.count_workflows end |
.create(name:, descriptor:) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/qyu/models/workflow.rb', line 8 def create(name:, descriptor:) validator = Qyu::Concerns::WorkflowDescriptorValidator.new(descriptor) fail Qyu::Errors::WorkflowDescriptorValidatorationError, validator.errors unless validator.valid? id = persist(name, descriptor) time = Time.now new(id, name, descriptor, time, time) end |
.delete(id) ⇒ Object
42 43 44 |
# File 'lib/qyu/models/workflow.rb', line 42 def delete(id) Qyu.store.delete_workflow(id) end |
.delete_by(name: nil, id: nil) ⇒ Object
46 47 48 49 50 |
# File 'lib/qyu/models/workflow.rb', line 46 def delete_by(name: nil, id: nil) raise ArgumentError, 'specify either name or id' if (name && id) || (name.nil? && id.nil?) Qyu.store.delete_workflow_by_name(name) if name delete(id) if id end |
.find(id, raise_error: true) ⇒ Object
16 17 18 19 20 21 |
# File 'lib/qyu/models/workflow.rb', line 16 def find(id, raise_error: true) workflow_attrs = Qyu.store.find_workflow(id) raise Qyu::Errors::WorkflowNotFound.new(:id, id) if workflow_attrs.nil? && raise_error return nil if workflow_attrs.nil? new(id, workflow_attrs['name'], workflow_attrs['descriptor']) end |
.find_by(name: nil, id: nil) ⇒ Object
23 24 25 26 |
# File 'lib/qyu/models/workflow.rb', line 23 def find_by(name: nil, id: nil) return find_by_name(name) if name return find(id, raise_error: false) if id end |
.find_by!(name: nil, id: nil) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/qyu/models/workflow.rb', line 28 def find_by!(name: nil, id: nil) workflow = find_by(name: name, id: id) raise Qyu::Errors::WorkflowNotFound.new(:id, id) if workflow.nil? && id raise Qyu::Errors::WorkflowNotFound.new(:id, id) if workflow.nil? && id workflow end |
.select(limit: 30, offset: 0, order: :asc) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/qyu/models/workflow.rb', line 35 def select(limit: 30, offset: 0, order: :asc) workflow_records = Qyu.store.select_workflows(limit, offset, order) workflow_records.map do |record| new(record['id'], record['name'], record['descriptor']) end end |
Instance Method Details
#[](attribute) ⇒ Object
69 70 71 |
# File 'lib/qyu/models/workflow.rb', line 69 def [](attribute) public_send(attribute) end |