class Disco::Generators::ScaffoldGenerator
Constants
- ACTIONS
Public Instance Methods
add_routes()
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 24 def add_routes routing_code = '' class_path.each_with_index do |namespace, index| add_line_with_indent routing_code, (index + 1), "namespace :#{namespace} do" end add_line_with_indent routing_code, (class_path.length + 1), "resources :#{plural_name}" class_path.each_with_index do |_, index| add_line_with_indent routing_code, (class_path.length - index), 'end' end route routing_code[2..-1] end
Protected Instance Methods
add_event_source_to_views()
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 60 def add_event_source_to_views return if behavior == :revoke include_text = "<%= event_source('#{class_name}Projection') %>\n" prepend_to_file File.join('app/views', class_path, plural_file_name, 'index.html.erb'), include_text prepend_to_file File.join('app/views', class_path, plural_file_name, 'show.html.erb'), include_text end
add_line_with_indent(target, indent, str)
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 103 def add_line_with_indent(target, indent, str) target << "#{' ' * indent}#{str}\n" end
add_to_projections(action)
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 67 def add_to_projections(action) return if behavior == :revoke content = "\n def #{projection_name_for_action(action)}(event) #{projection_body_for_action(action)} end" indent(content) if namespaced? inject_into_file File.join('app/projections', class_path, "#{file_name}_projection.rb"), content, after: /(\s)*include(\s)*ActiveProjection::ProjectionType/ end
args_for_command_action(action)
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 43 def args_for_command_action(action) args = [command_name_for_action(action)] args << 'id' unless action == 'create' args += attributes_names unless action == 'delete' args end
command_name_for_action(action)
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 78 def command_name_for_action(action) (class_path + ["#{action}_#{file_name}"]) * '/' end
event_name_for_action(action)
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 82 def event_name_for_action(action) (class_path + ["#{action}d_#{file_name}"]) * '/' end
opts_for_command_action(action)
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 50 def opts_for_command_action(action) opts = ["--event=#{event_name_for_action(action)}"] opts << "--processor=#{processor_name}" unless skip_processor? opts << "--model_name=#{class_name}" opts << '--unique_id' if action == 'create' opts << '--persisted' if action == 'update' opts << '--skip_model' if action == 'delete' opts end
projection_body_for_action(action)
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 90 def projection_body_for_action(action) case action when 'create' "#{class_name}.create! event.to_hash" when 'update' "#{class_name}.find(event.id).update! event.values" when 'delete' "#{class_name}.find(event.id).destroy!" else fail 'unknown action' end end
projection_name_for_action(action)
click to toggle source
# File lib/generators/disco/scaffold/scaffold_generator.rb, line 86 def projection_name_for_action(action) (event_name_for_action(action) + '_event').gsub('/', '__') end