columns()
click to toggle source
def columns
retrieve_columns.reject {|c| excluded?(c.name) }.map do |c|
new_attribute(c.name, c.type.to_s)
end
end
controller_routing_path()
click to toggle source
def controller_routing_path
@controller_routing_path
end
excluded?(name)
click to toggle source
def excluded?(name)
excluded_columns_names.include?(name) ||
excluded_columns_pattern.any? {|p| name =~ p } ||
excluded_columns.include?(name)
end
excluded_columns()
click to toggle source
def excluded_columns
options['excluded_columns']||[]
end
excluded_columns_names()
click to toggle source
def excluded_columns_names
%w[id created_at updated_at]
end
excluded_columns_pattern()
click to toggle source
def excluded_columns_pattern
[
%r.*_checksum/,
%r.*_count/,
]
end
ext()
click to toggle source
def ext
::Rails.application.config.generators.options[:rails][:template_engine] || :erb
end
generate_erb(views)
click to toggle source
def generate_erb(views)
views.each do |template_name, output_path|
template template_name, output_path
end
end
generate_views()
click to toggle source
def generate_views
options.engine == generate_erb(selected_views)
end
initialize_views_variables()
click to toggle source
def initialize_views_variables
@base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(controller_path)
@controller_routing_path = @controller_file_path.gsub(%r\//, '_')
@model_name = @controller_class_nesting + "::#{@base_name.singularize.camelize}" unless @model_name
@model_name = @model_name.camelize
end
model_name()
click to toggle source
def model_name
@model_name
end
new_attribute(name, type)
click to toggle source
def new_attribute(name, type)
::Rails::Generators::GeneratedAttribute.new(name, type)
end
plural_model_name()
click to toggle source
def plural_model_name
@model_name.pluralize
end
plural_resource_name()
click to toggle source
def plural_resource_name
resource_name.pluralize
end
rescue_block(exception=Exception) { || ... }
click to toggle source
def rescue_block(exception=Exception)
yield if block_given?
rescue exception => e
say e.message, :red
exit
end
resource_name()
click to toggle source
def resource_name
@model_name.demodulize.underscore
end
retrieve_columns()
click to toggle source
def retrieve_columns
if defined?(ActiveRecord) == "constant" && ActiveRecord.class == Module
rescue_block ActiveRecord::StatementInvalid do
@model_name.constantize.columns
end
else
rescue_block do
@model_name.constantize.fields.map {|c| c[1] }
end
end
end
selected_views()
click to toggle source
def selected_views
{
"index.html.#{ext}" => File.join('app/views', @controller_file_path, "index.html.#{ext}"),
"new.html.#{ext}" => File.join('app/views', @controller_file_path, "new.html.#{ext}"),
"edit.html.#{ext}" => File.join('app/views', @controller_file_path, "edit.html.#{ext}"),
"#{form_builder}_form.html.#{ext}" => File.join('app/views', @controller_file_path, "_form.html.#{ext}"),
"show.html.#{ext}" => File.join('app/views', @controller_file_path, "show.html.#{ext}")
}
end
singular_controller_routing_path()
click to toggle source
def singular_controller_routing_path
@controller_routing_path.singularize
end