class Adhoc::Generators::PortfolioGenerator
Attributes
attributes[RW]
name[RW]
Public Class Methods
new(*args, &block)
click to toggle source
Calls superclass method
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 13 def initialize(*args, &block) super print_usage unless name.underscore =~ /^[a-z][a-z0-9_\/]+$/ @attributes = [] ['title:string', 'summary:string', 'description:string', 'service_id:integer'].each do |arg| @attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':')) end end
Public Instance Methods
create_controller()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 33 def create_controller template 'controller.rb', "app/controllers/#{plural_name}_controller.rb" template 'helper.rb', "app/helpers/#{plural_name}_helper.rb" controller_views.each do |action| template "views/#{action}.html.erb", "app/views/#{plural_name}/#{action}.html.erb" end if form_partial? template "views/_form.html.erb", "app/views/#{plural_name}/_form.html.erb" end namespaces = plural_name.split('/') resource = namespaces.pop route namespaces.reverse.inject("resources :#{resource}") { |acc, namespace| "namespace(:#{namespace}){ #{acc} }" } end
create_migration()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 29 def create_migration migration_template 'migration.rb', "db/migrate/create_#{table_name}.rb" end
create_model()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 25 def create_model template 'model.rb', "app/models/#{file_name}.rb" end
Private Instance Methods
action?(name)
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 102 def action?(name) controller_actions.include? name.to_s end
actions?(*names)
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 106 def actions?(*names) names.all? { |name| action? name } end
controller_actions()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 88 def controller_actions %w[index show new edit create update destroy] end
controller_methods()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 92 def controller_methods controller_actions.map do |action| read_template("actions/#{action}.rb") end.join("\n").strip end
controller_views()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 84 def controller_views %w[index show new edit] end
file_name()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 54 def file_name # potfolio name.underscore end
form_partial?()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 159 def form_partial? actions? :new, :edit end
instance_name()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 76 def instance_name name.underscore.gsub('/','_') end
instances_name()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 80 def instances_name instance_name.pluralize end
item_path(options = {})
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 126 def item_path(options = {}) name = options[:instance_variable] ? "@#{instance_name}" : instance_name suffix = options[:full_url] ? "url" : "path" if options[:action].to_s == "new" "new_#{item_resource}_#{suffix}" elsif options[:action].to_s == "edit" "edit_#{item_resource}_#{suffix}(#{name})" else if name.include?('::') namespace = singular_name.split('/')[0..-2] "[:#{namespace.join(', :')}, #{name}]" else name end end end
item_resource()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 114 def item_resource name.underscore.gsub('/','_') end
item_url()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 143 def item_url if action? :show item_path(:full_url => true, :instance_variable => true) else items_url end end
items_path()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 118 def items_path if action? :index "#{item_resource.pluralize}_path" else "root_path" end end
items_url()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 151 def items_url if action? :index item_resource.pluralize + '_url' else "root_url" end end
model_name()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 62 def model_name # Portfolio name.underscore.capitalize end
plural_model_name()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 66 def plural_model_name # Portfolios plural_name.camelize end
plural_name()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 58 def plural_name # portfolios name.underscore.pluralize end
read_template(relative_path)
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 98 def read_template(relative_path) ERB.new(File.read(find_in_source_paths(relative_path)), nil, '-').result(binding) end
render_form()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 163 def render_form if form_partial? "<%= render \"form\" %>" else read_template("views/_form.html.rb") end end
singular_name()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 110 def singular_name name.underscore end
table_name()
click to toggle source
# File lib/generators/adhoc/portfolio/portfolio_generator.rb, line 70 def table_name # portfolios if name.include?('::') plural_name.gsub('/', '_') end end