class WorkflowRb::Mongo::MongoPersistenceProvider

Public Class Methods

new() click to toggle source
# File lib/workflow_rb/mongo/mongo_persistence_provider.rb, line 12
def initialize
end

Public Instance Methods

create_new_workflow(workflow) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# File lib/workflow_rb/mongo/mongo_persistence_provider.rb, line 72
def get_unpublished_events
  PersistedEventPublication.all
end
get_workflow_instance(id) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/workflow_rb/mongo/mongo_persistence_provider.rb, line 54
def terminate_subscription(id)
  existing = PersistedEventSubscription.find(id)
  existing.delete
end