Sha256: 465a26e833a8e933747b9038d79fc05215b86751aea41f467cd3fc92267f51d2
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
module Rohbau module Application class RuntimeWrapper def self.wrap(&constructor) wrapper = Class.new do def self.set_constructor(constructor) @constructor = constructor self end def self.new(*ignored_args) @constructor.call end end wrapper.set_constructor(constructor) end end def set_application_runtime(runtime_class) @runtime_class = runtime_class end def register_domain(name, namespace) dummy = RuntimeWrapper.wrap do |cls| namespace::Runtime.start end @runtime_class.register name, dummy domains << namespace end def domains @domains ||= [] end def domain_requests domains.map{|d| d.const_get :Request } end def use_case_domains domains.select do |domain| domain.const_defined?('UseCases') end end def use_cases(use_case_domain = :all) if use_case_domain == :all domains = use_case_domains else domains = [use_case_domain] end domains.inject([]) do |use_cases, domain| if domain.const_defined?('UseCases') use_case_namespace = domain.const_get('UseCases') use_case_namespace.constants.each do |use_case_class_name| use_cases << use_case_namespace::const_get(use_case_class_name) end end use_cases end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rohbau-0.1.0 | lib/rohbau/application.rb |