class HecksDomain::Commands::Generate
Generate
a Domainfile
Constants
- HECKS_FILE_NAME
Public Class Methods
source_root()
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 12 def self.source_root File.dirname(__FILE__) + '/../templates' end
Public Instance Methods
domain_from_domain_file()
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 19 def domain_from_domain_file generate_domain_objects(domain_get) generate_domain_files(domain_get) generate_roots(domain_get) generate_operations(domain_get, options) generate_specs(domain_get, options) end
Private Instance Methods
domain_file()
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 55 def domain_file return unless File.exist?(HECKS_FILE_NAME) File.open(HECKS_FILE_NAME).read end
domain_get()
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 51 def domain_get instance_eval(domain_file).domain end
generate_domain_files(domain)
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 61 def generate_domain_files(domain) Generators::DomainFiles.new([domain]).invoke_all end
generate_domain_objects(domain)
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 74 def generate_domain_objects(domain) domain.for_each_domain_object do |aggregate, domain_object| generate_entity(domain, aggregate, domain_object) generate_value_object(domain, aggregate, domain_object) end end
generate_entity(domain, aggregate, domain_object)
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 89 def generate_entity(domain, aggregate, domain_object) return unless domain_object.is_a?(HecksDomain::Parser::Entity) Generators::Entity.new( [domain, aggregate, domain_object] ).invoke_all end
generate_operations(domain, options)
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 65 def generate_operations(domain, options) domain.for_each_operation do |aggregate, domain_object, operation| Generators::Operation.new( [domain, aggregate, domain_object, operation], skip: options[:skip_operations] ).invoke_all end end
generate_roots(domain)
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 29 def generate_roots(domain) domain.aggregates.each do |aggregate| aggregate.domain_objects.each do |domain_object| next unless domain_object.is_a?(HecksDomain::Parser::Root) Generators::Root.new( [domain, aggregate, domain_object] ).invoke_all end end end
generate_specs(domain, options)
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 41 def generate_specs(domain, options) domain.for_each_domain_object do |aggregate, domain_object| next unless domain_object.is_a?(HecksDomain::Parser::Root) Generators::Spec.new( [domain, aggregate, domain_object], options ).invoke_all end end
generate_value_object(domain, aggregate, domain_object)
click to toggle source
# File lib/hecks/domain/commands/generate.rb, line 81 def generate_value_object(domain, aggregate, domain_object) return unless domain_object.is_a?(HecksDomain::Parser::ValueObject) Generators::ValueObject.new( [domain, aggregate, domain_object] ).invoke_all end