Class: WorkflowRb::Mongo::MongoPersistenceProvider
- Inherits:
-
Object
- Object
- WorkflowRb::Mongo::MongoPersistenceProvider
- Defined in:
- lib/workflow_rb/mongo/mongo_persistence_provider.rb
Instance Method Summary collapse
- #create_new_workflow(workflow) ⇒ Object
- #create_subscription(subscription) ⇒ Object
- #create_unpublished_event(pub) ⇒ Object
- #get_runnable_instances ⇒ Object
- #get_subscriptions(event_name, event_key) ⇒ Object
- #get_unpublished_events ⇒ Object
- #get_workflow_instance(id) ⇒ Object
-
#initialize ⇒ MongoPersistenceProvider
constructor
A new instance of MongoPersistenceProvider.
- #persist_workflow(workflow) ⇒ Object
- #remove_unpublished_event(id) ⇒ Object
- #terminate_subscription(id) ⇒ Object
Constructor Details
#initialize ⇒ MongoPersistenceProvider
Returns a new instance of MongoPersistenceProvider.
12 13 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 12 def initialize end |
Instance Method Details
#create_new_workflow(workflow) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 15 def create_new_workflow(workflow) p = PersistedWorkflow.new workflow.fill_persisted(p) p.save workflow.id = p._id p._id end |
#create_subscription(subscription) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 40 def create_subscription(subscription) p = PersistedEventSubscription.new subscription.fill_persisted(p) p.save subscription.id = p._id p._id end |
#create_unpublished_event(pub) ⇒ Object
59 60 61 62 63 64 65 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 59 def create_unpublished_event(pub) p = PersistedEventPublication.new pub.fill_persisted(p) p.save pub.id = p._id p._id end |
#get_runnable_instances ⇒ Object
34 35 36 37 38 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 34 def get_runnable_instances PersistedWorkflow .where(status: WorkflowRb::WorkflowStatus::RUNNABLE) .and(:next_execution.lte => Time.new) end |
#get_subscriptions(event_name, event_key) ⇒ Object
48 49 50 51 52 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 48 def get_subscriptions(event_name, event_key) PersistedEventSubscription .where(event_name: event_name) .and(event_key: event_key) end |
#get_unpublished_events ⇒ Object
72 73 74 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 72 def get_unpublished_events PersistedEventPublication.all end |
#get_workflow_instance(id) ⇒ Object
29 30 31 32 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 29 def get_workflow_instance(id) existing = PersistedWorkflow.find(id) existing.to_object end |
#persist_workflow(workflow) ⇒ Object
23 24 25 26 27 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 23 def persist_workflow(workflow) existing = PersistedWorkflow.find(workflow.id) workflow.fill_persisted(existing) existing.save end |
#remove_unpublished_event(id) ⇒ Object
67 68 69 70 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 67 def remove_unpublished_event(id) existing = PersistedEventPublication.find(id) existing.delete end |
#terminate_subscription(id) ⇒ Object
54 55 56 57 |
# File 'lib/workflow_rb/mongo/mongo_persistence_provider.rb', line 54 def terminate_subscription(id) existing = PersistedEventSubscription.find(id) existing.delete end |