class HecksApp::ApplicationPort
Attributes
adapters[RW]
event[RW]
Public Class Methods
[](value)
click to toggle source
# File lib/hecks-app.rb, line 51 def self.[](value) CommandRunner.new(value) end
config(&block)
click to toggle source
# File lib/hecks-app.rb, line 34 def self.config(&block) instance.instance_eval(&block) instance.event.emit(:AppConfigured) end
domain()
click to toggle source
# File lib/hecks-app.rb, line 43 def self.domain instance.domain_get end
domain_object_from_repository(repository)
click to toggle source
# File lib/hecks-app.rb, line 26 def self.domain_object_from_repository(repository) const_get(repository.to_s.gsub('::Repository', '')) end
find_aggregate(name)
click to toggle source
# File lib/hecks-app.rb, line 30 def self.find_aggregate(name) domain::Domain.const_get(name) end
in_repository(aggregate) { || ... }
click to toggle source
# File lib/hecks-app.rb, line 20 def self.in_repository(aggregate) aggregate::Root::Repository.class_eval do yield end end
new()
click to toggle source
# File lib/hecks-app.rb, line 14 def initialize @adapters = [] @domain = nil @event = Event end
subscribe(subscriber, event)
click to toggle source
# File lib/hecks-app.rb, line 39 def self.subscribe(subscriber, event) instance.event.subscribe(subscriber, event) end
Public Instance Methods
adapter(name)
click to toggle source
# File lib/hecks-app.rb, line 60 def adapter(name) Adapters.const_get(name).new.tap do |adapter| adapter.load @adapters << adapter end end
domain(domain)
click to toggle source
# File lib/hecks-app.rb, line 55 def domain(domain) @domain = domain require_relative 'application_port/domain_schema' end
domain_get()
click to toggle source
# File lib/hecks-app.rb, line 47 def domain_get @domain end