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
122 123 124 |
# File 'lib/generators/scaffold.rb', line 122 def action?(name) self.controller_actions.include? name.to_s end |
#actions?(*names) ⇒ Boolean
126 127 128 |
# File 'lib/generators/scaffold.rb', line 126 def actions?(*names) names.all? { |name| action? name } end |
#class_name ⇒ Object
136 137 138 |
# File 'lib/generators/scaffold.rb', line 136 def class_name scaffold_name.split('::').last.camelize.singularize end |
#controller_name(opt = :name) ⇒ Object
186 187 188 189 190 191 192 193 |
# File 'lib/generators/scaffold.rb', line 186 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
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/generators/scaffold.rb', line 65 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
82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/generators/scaffold.rb', line 82 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
55 56 57 58 59 60 61 62 63 |
# File 'lib/generators/scaffold.rb', line 55 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
110 111 112 |
# File 'lib/generators/scaffold.rb', line 110 def has_namespace? scaffold_name.include?('::') end |
#has_type?(type) ⇒ Boolean
114 115 116 |
# File 'lib/generators/scaffold.rb', line 114 def has_type?(type) self.special_types.has_value? type end |
#helper_name(opt = :name) ⇒ Object
195 196 197 198 199 200 201 202 |
# File 'lib/generators/scaffold.rb', line 195 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
152 153 154 |
# File 'lib/generators/scaffold.rb', line 152 def instance_name(suffix = '') suffix += singular_name.split('/').last end |
#instances_name(suffix = '') ⇒ Object
156 157 158 |
# File 'lib/generators/scaffold.rb', line 156 def instances_name(suffix = '') instance_name(suffix).pluralize end |
#migration_name(opt = :name) ⇒ Object
177 178 179 180 181 182 183 184 |
# File 'lib/generators/scaffold.rb', line 177 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
168 169 170 171 172 173 174 175 |
# File 'lib/generators/scaffold.rb', line 168 def model_name(opt = :name) case opt when :name class_name when :path "app/models/#{class_name.downcase}.rb" end end |
#plural_name ⇒ Object
148 149 150 |
# File 'lib/generators/scaffold.rb', line 148 def plural_name singular_name.pluralize end |
#record_or_name_or_array ⇒ Object
97 98 99 100 101 102 103 104 105 106 |
# File 'lib/generators/scaffold.rb', line 97 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
160 161 162 |
# File 'lib/generators/scaffold.rb', line 160 def resource_name scaffold_name.underscore.gsub('/','_').singularize end |
#resources_name ⇒ Object
164 165 166 |
# File 'lib/generators/scaffold.rb', line 164 def resources_name resource_name.pluralize end |
#setting_controller_attributes ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/generators/scaffold.rb', line 37 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 34 35 |
# 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') raise "Missing gems: ckeditor" unless check_required_gems? "ckeditor" self.model_attributes << Rails::Generators::GeneratedAttribute.new(arg.split(':').first, "text") else raise "Missing gems: carrierwave" unless check_required_gems? "carrierwave" 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
132 133 134 |
# File 'lib/generators/scaffold.rb', line 132 def simple_name class_name.underscore.humanize.downcase end |
#singular_name ⇒ Object
144 145 146 |
# File 'lib/generators/scaffold.rb', line 144 def singular_name scaffold_name.underscore.singularize end |
#special_select(type) ⇒ Object
118 119 120 |
# File 'lib/generators/scaffold.rb', line 118 def special_select(type) self.special_types.select { |k,v| v == type }.keys end |
#table_name ⇒ Object
140 141 142 |
# File 'lib/generators/scaffold.rb', line 140 def table_name scaffold_name.split('::').last.pluralize.downcase end |