class Blueberry::Generators::FormGenerator

Public Class Methods

new(args, *options) click to toggle source
Calls superclass method
# File lib/generators/blueberry/form/form_generator.rb, line 27
def initialize(args, *options)
  super
end

Protected Class Methods

check_class_collision(options={}) click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 101
def self.check_class_collision(options={})
  define_method :check_class_collision do
    name = if self.respond_to?(:controller_class_name)
      controller_class_name
    elsif self.respond_to?(:controller_class_name)
      controller_class_name
    else
      class_name
    end

    class_collisions "#{name}#{options[:suffix]}"
  end
end

Public Instance Methods

copy_view_files() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 43
def copy_view_files
  available_views.each do |view|
    filename = filename_with_extensions(view)
    template_path = "views/#{handler}/#{filename}"
    template template_path, File.join("app/views", controller_file_path, filename)
  end

  template "views/#{handler}/create.js.erb", File.join("app/views", controller_file_path, "create.js.erb")

  render_info_banner
end
create_controller_files() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 35
def create_controller_files
  template "controllers/railties/controller.rb.erb", File.join('app/controllers', class_path, "#{controller_file_name}_controller.rb")
end
create_root_folder() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 39
def create_root_folder
  empty_directory File.join("app/views", controller_file_path)
end
generate_model() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 31
def generate_model
  invoke "active_record:model", [name, *attributes.map { |c| "#{c.name}:#{c.type}" }], migration: true
end

Protected Instance Methods

available_views() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 81
def available_views
  %w(_thanks _state _form)
end
filename_with_extensions(name) click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 97
def filename_with_extensions(name)
  [name, format, handler].compact.join(".")
end
format() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 85
def format
  :html
end
handler() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 89
def handler
  :slim
end
migration_attributes() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 93
def migration_attributes
  attributes.collect { |c| "'#{c.name}:#{c.type}'" }.join(',')
end
parent_controller_class_name() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 77
def parent_controller_class_name
  options[:parent_controller].capitalize
end
render_info_banner() click to toggle source
# File lib/generators/blueberry/form/form_generator.rb, line 65
def render_info_banner
  puts ' ' * 80
  puts '-' * 80
  puts "| Render form in your view | ".center(80)
  puts '-' * 80
  puts ' ' * 80
  puts ".#{singular_table_name}-box = render '#{controller_file_path}/form'"
  puts ".#{singular_table_name}-state"
  puts ' ' * 80
  puts '-' * 80
end