class HecksApplication
The Applicaiton port. Adapters usually talk to the domain through HecksApplication
Attributes
database[R]
domain_spec[R]
events_port[R]
validator[R]
Public Class Methods
new(database: nil, listeners: [], domain:, validator: HecksApplication::Validator)
click to toggle source
# File lib/hecks-application.rb, line 18 def initialize(database: nil, listeners: [], domain:, validator: HecksApplication::Validator) load(domain.spec_path) @domain = domain @database = database @events_port = HecksEvents.new(listeners: listeners) @domain_spec = DOMAIN @validator = validator end
Public Instance Methods
[](module_name)
click to toggle source
# File lib/hecks-application.rb, line 36 def [](module_name) Commands::CRUDHandler.new( module_name: module_name, application: self, validator: validator ) end
call(command_name:, module_name:, args: {})
click to toggle source
# File lib/hecks-application.rb, line 27 def call(command_name:, module_name:, args: {}) CommandRunner.new( command_name: command_name, module_name: module_name, args: args, application: self ).call end
query(query_name:, module_name:, args: {})
click to toggle source
# File lib/hecks-application.rb, line 44 def query(query_name:, module_name:, args: {}) QueryRunner.new( module_name: module_name, query_name: query_name, args: args, application: self ).call end