class Disco::Generators::CommandGenerator
Public Instance Methods
create_command_file()
click to toggle source
# File lib/generators/disco/command/command_generator.rb, line 18 def create_command_file template 'command.rb.erb', File.join('app/commands', class_path, "#{file_name}_command.rb") end
Protected Instance Methods
event_attributes_names()
click to toggle source
# File lib/generators/disco/command/command_generator.rb, line 73 def event_attributes_names @event_attribute_names ||= if unique_id? attributes_names.dup.unshift 'id' else attributes_names end end
model_name()
click to toggle source
# File lib/generators/disco/command/command_generator.rb, line 65 def model_name options[:model_name] end
persisted?()
click to toggle source
# File lib/generators/disco/command/command_generator.rb, line 69 def persisted? options[:persisted] end
skip_model?()
click to toggle source
# File lib/generators/disco/command/command_generator.rb, line 61 def skip_model? options[:skip_model] end
unique_id?()
click to toggle source
# File lib/generators/disco/command/command_generator.rb, line 57 def unique_id? options[:unique_id] end
Private Instance Methods
add_to_command_processor()
click to toggle source
# File lib/generators/disco/command/command_generator.rb, line 36 def add_to_command_processor return if skip_processor? || (behavior == :revoke) extra, merge = '', '' if unique_id? extra = "\n id = ActiveDomain::UniqueCommandIdRepository.new_for command.class.name" merge = '.merge(id: id)' end content = <<-EOF process #{class_name}Command do |command| if command.valid?#{extra} event #{event_class_name}Event.new command.to_hash#{merge} end end EOF file = File.join('domain/command_processors', processor_domain_class_path, "#{processor_file_name}_processor.rb") inject_into_file file, content, after: /\s*include\s+ActiveDomain::CommandProcessor/ end