class SimplerWorkflow::ActivityRegistry
Protected Class Methods
sdb()
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 87 def self.sdb @sdb ||= AWS::SimpleDB.new end
Public Instance Methods
get(*activity_tuple)
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 13 def get(*activity_tuple) domain = activity_tuple.shift if AWS::SimpleWorkflow::ActivityType === domain name = domain.name.to_sym version = domain.version domain = domain.domain else name = activity_tuple.first case name when Hash version = name[:version] name = name[:name].to_sym when String, Symbol name = name.to_sym version = activity_tuple.last end end registry_for_domain(domain)[[name, version]] end
Also aliased as: []
persist_attributes(activity)
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 38 def persist_attributes(activity) domain = Domain.for(activity.domain) sdb_domain(domain).items.create(activity.simple_db_name, activity.simple_db_attributes) end
register(*activity_tuple)
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 3 def register(*activity_tuple) domain = activity_tuple.shift activity = activity_tuple.pop if activity_tuple.last.is_a?(Activity) raise "Activity missing from registration" unless activity registry_for_domain(domain)[activity_tuple] = activity end
Also aliased as: []=
Protected Instance Methods
registries()
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 45 def registries @registries ||= {} end
registry_for_domain(domain)
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 49 def registry_for_domain(domain) domain = Domain.for(domain) unless sdb_domain(domain).exists? sdb.domains.create(sdb_domain_name(domain)) end registries[domain.name.to_sym] ||= Hash.new do |registry, (name, version)| activity = Activity.new(domain, name, version) attributes = sdb_attributes(domain, activity.simple_db_name) unless attributes.empty? activity.on_fail(attributes[:failure_policy]) if attributes.has_key?(:failure_policy) activity.on_fail(attributes['failure_policy']) if attributes.has_key?('failure_policy') activity.on_success(name: attributes[:next_activity_name], version: attributes[:next_activity_version]) if attributes.has_key?(:next_activity_name) activity.on_success(name: attributes['next_activity_name'], version: attributes['next_activity_version']) if attributes.has_key?('next_activity_name') end registry[[name, version]] = activity end end
sdb()
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 91 def sdb self.class.sdb end
sdb_attributes(domain, sdb_name)
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 78 def sdb_attributes(domain, sdb_name) if item = sdb_domain(domain).items[sdb_name] h = item.attributes.to_h h.each { |k, v| h[k] = v.first } else {} end end
sdb_domain(domain)
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 74 def sdb_domain(domain) sdb.domains[sdb_domain_name(domain)] end
sdb_domain_name(domain)
click to toggle source
# File lib/simpler_workflow/activity_registry.rb, line 70 def sdb_domain_name(domain) "swf-#{domain.name}-activities" end