Module: Fetty::Generators::Scaffold
- Included in:
- ScaffoldGenerator
- Defined in:
- lib/generators/scaffold.rb
Class Method Summary collapse
-
.included(base) ⇒ Object
setting variable & initialize mixins.
Instance Method Summary collapse
- #action?(name) ⇒ Boolean
- #actions?(*names) ⇒ Boolean
- #class_name ⇒ Object
- #controller_name(opt = :name) ⇒ Object
- #generate_action_links(action, authorize, object, link_text) ⇒ Object
- #generate_route_link(options = {}) ⇒ Object
-
#generate_routes ⇒ Object
public method generator.
-
#has_namespace? ⇒ Boolean
public boolean function.
- #has_type?(type) ⇒ Boolean
- #helper_name(opt = :name) ⇒ Object
- #instance_name(suffix = '') ⇒ Object
- #instances_name(suffix = '') ⇒ Object
- #migration_name(opt = :name) ⇒ Object
- #model_name(opt = :name) ⇒ Object
- #plural_name ⇒ Object
- #record_or_name_or_array ⇒ Object
- #resource_name ⇒ Object
- #resources_name ⇒ Object
- #setting_controller_attributes ⇒ Object
- #setting_model_attributes ⇒ Object
-
#simple_name ⇒ Object
playing with names.
- #singular_name ⇒ Object
- #special_select(type) ⇒ Object
- #table_name ⇒ Object
Class Method Details
.included(base) ⇒ Object
setting variable & initialize mixins
9 10 11 12 13 |
# File 'lib/generators/scaffold.rb', line 9 def self.included(base) self.model_attributes = [] self.controller_actions = %w[index show new create edit update destroy] self.special_types = {} end |
Instance Method Details
#action?(name) ⇒ Boolean
120 121 122 |
# File 'lib/generators/scaffold.rb', line 120 def action?(name) self.controller_actions.include? name.to_s end |
#actions?(*names) ⇒ Boolean
124 125 126 |
# File 'lib/generators/scaffold.rb', line 124 def actions?(*names) names.all? { |name| action? name } end |
#class_name ⇒ Object
134 135 136 |
# File 'lib/generators/scaffold.rb', line 134 def class_name scaffold_name.split('::').last.camelize.singularize end |
#controller_name(opt = :name) ⇒ Object
184 185 186 187 188 189 190 191 |
# File 'lib/generators/scaffold.rb', line 184 def controller_name(opt = :name) case opt when :name plural_name.camelize.insert(-1,'Controller') when :path "app/controllers/#{plural_name}_controller.rb" end end |
#generate_action_links(action, authorize, object, link_text) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/generators/scaffold.rb', line 63 def generate_action_links(action, , object, link_text) out = "" out << "\t<% if can? :#{}, #{object} %>\n\t" if using_cancan? link_path = generate_route_link(:action => action, :object => object, :suffix => 'path') unless action == :destroy out << "\t<%= link_to '#{link_text}', #{link_path} %>\n" else out << "\t<%= link_to '#{link_text}', #{link_path}, :confirm => 'Are you sure?', :method => :delete %>\n" end out << "\t<% end %>" if using_cancan? out.html_safe rescue Exception => e raise e end |
#generate_route_link(options = {}) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/generators/scaffold.rb', line 80 def generate_route_link( ={}) case [:action] when :new "new_#{resource_name}_#{[:suffix]}" when :edit "edit_#{resource_name}_#{[:suffix]}(#{[:object]})" when :index "#{resources_name}_#{[:suffix]}" else "#{resource_name}_#{[:suffix]}(#{[:object]})" end rescue Exception => e raise e end |
#generate_routes ⇒ Object
public method generator
53 54 55 56 57 58 59 60 61 |
# File 'lib/generators/scaffold.rb', line 53 def generate_routes namespaces = plural_name.split('/') resource = namespaces.pop route namespaces.reverse.inject("resources :#{resource}") { |acc, namespace| "namespace :#{namespace} do #{acc} end" } rescue Exception => e raise e end |
#has_namespace? ⇒ Boolean
public boolean function
108 109 110 |
# File 'lib/generators/scaffold.rb', line 108 def has_namespace? scaffold_name.include?('::') end |
#has_type?(type) ⇒ Boolean
112 113 114 |
# File 'lib/generators/scaffold.rb', line 112 def has_type?(type) self.special_types.has_value? type end |
#helper_name(opt = :name) ⇒ Object
193 194 195 196 197 198 199 200 |
# File 'lib/generators/scaffold.rb', line 193 def helper_name(opt = :name) case opt when :name plural_name.camelize.insert(-1,'Helper') when :path "app/helpers/#{plural_name}_helper.rb" end end |
#instance_name(suffix = '') ⇒ Object
150 151 152 |
# File 'lib/generators/scaffold.rb', line 150 def instance_name(suffix = '') suffix += singular_name.split('/').last end |
#instances_name(suffix = '') ⇒ Object
154 155 156 |
# File 'lib/generators/scaffold.rb', line 154 def instances_name(suffix = '') instance_name(suffix).pluralize end |
#migration_name(opt = :name) ⇒ Object
175 176 177 178 179 180 181 182 |
# File 'lib/generators/scaffold.rb', line 175 def migration_name(opt = :name) case opt when :name plural_name.camelize.delete('::').insert(0,'Create') when :path "db/migrate/create_#{plural_name.gsub('/', '_')}.rb" end end |
#model_name(opt = :name) ⇒ Object
166 167 168 169 170 171 172 173 |
# File 'lib/generators/scaffold.rb', line 166 def model_name(opt = :name) case opt when :name class_name when :path "app/models/#{class_name.downcase}.rb" end end |
#plural_name ⇒ Object
146 147 148 |
# File 'lib/generators/scaffold.rb', line 146 def plural_name singular_name.pluralize end |
#record_or_name_or_array ⇒ Object
95 96 97 98 99 100 101 102 103 104 |
# File 'lib/generators/scaffold.rb', line 95 def record_or_name_or_array unless has_namespace? instance_name('@') else namespace = singular_name.split('/')[0..-2] "[:#{namespace.join(', :')}, #{instance_name('@')}]" end rescue Exception => e raise e end |
#resource_name ⇒ Object
158 159 160 |
# File 'lib/generators/scaffold.rb', line 158 def resource_name scaffold_name.underscore.gsub('/','_').singularize end |
#resources_name ⇒ Object
162 163 164 |
# File 'lib/generators/scaffold.rb', line 162 def resources_name resource_name.pluralize end |
#setting_controller_attributes ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/generators/scaffold.rb', line 35 def setting_controller_attributes unless .except.empty? .except.each do |action| self.controller_actions.delete(action) if action == 'new' self.controller_actions.delete(:create) elsif action == 'edit' self.controller_actions.delete(:update) end end end self.controller_actions.uniq! rescue Exception => e raise e end |
#setting_model_attributes ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/generators/scaffold.rb', line 15 def setting_model_attributes attributes.each do |arg| if arg.include?(':') if arg.include?(':file') || arg.include?(':image') || arg.include?(':editor') self.special_types[arg.split(':').first] = arg.split(':').last.to_sym if arg.include?(':editor') self.model_attributes << Rails::Generators::GeneratedAttribute.new(arg.split(':').first, "text") else self.model_attributes << Rails::Generators::GeneratedAttribute.new(arg.split(':').first, "string") end else self.model_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':')) end end end self.model_attributes.uniq! rescue Exception => e raise e end |
#simple_name ⇒ Object
playing with names
130 131 132 |
# File 'lib/generators/scaffold.rb', line 130 def simple_name class_name.underscore.humanize.downcase end |
#singular_name ⇒ Object
142 143 144 |
# File 'lib/generators/scaffold.rb', line 142 def singular_name scaffold_name.underscore.singularize end |
#special_select(type) ⇒ Object
116 117 118 |
# File 'lib/generators/scaffold.rb', line 116 def special_select(type) self.special_types.select { |k,v| v == type }.keys end |
#table_name ⇒ Object
138 139 140 |
# File 'lib/generators/scaffold.rb', line 138 def table_name scaffold_name.split('::').last.pluralize.downcase end |