class Rspec::Generators::ScaffoldGenerator
@private
def banner
def banner self.class.banner end
def copy_view(view)
def copy_view(view) template "#{view}_spec.rb", File.join("spec/views", controller_file_path, "#{view}.html.#{options[:template_engine]}_spec.rb") end
def generate_controller_spec
def generate_controller_spec return unless options[:controller_specs] template_file = File.join( 'spec/controllers', controller_class_path, "#{controller_file_name}_controller_spec.rb" ) if options[:api] template 'api_controller_spec.rb', template_file else template 'controller_spec.rb', template_file end end
def generate_routing_spec
def generate_routing_spec return unless options[:routing_specs] template_file = File.join( 'spec/routing', controller_class_path, "#{controller_file_name}_routing_spec.rb" ) template 'routing_spec.rb', template_file end
def generate_view_specs
def generate_view_specs return if options[:api] return unless options[:view_specs] && options[:template_engine] copy_view :edit copy_view :index unless options[:singleton] copy_view :new copy_view :show end
def initialize(*args, &blk)
def initialize(*args, &blk) @generator_args = args.first super(*args, &blk) end
def ns_file_name
def ns_file_name ns_parts.empty? ? file_name : "#{ns_parts[0].underscore}_#{ns_parts[1].singularize.underscore}" end
def ns_parts
def ns_parts @ns_parts ||= begin matches = generator_args[0].to_s.match(/\A(\w+)(?:\/|::)(\w+)/) matches ? [matches[1], matches[2]] : [] end end
def ns_table_name
def ns_table_name ns_parts.empty? ? table_name : "#{ns_parts[0].underscore}/#{ns_parts[1].tableize}" end
def raw_value_for(attribute)
def raw_value_for(attribute) case attribute.type when :string attribute.name.titleize when :integer, :float @attribute_id_map ||= {} @attribute_id_map[attribute] ||= @attribute_id_map.keys.size.next + attribute.default else attribute.default end end
def value_for(attribute)
def value_for(attribute) raw_value_for(attribute).inspect end