flexi_generators 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,8 @@
1
- Description:
2
- Explain the generator
3
-
4
- Example:
5
- rails generate flexi_scaffold Thing
6
-
7
- This will create:
8
- what/will/it/create
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ rails generate flexi_scaffold Thing
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -1,98 +1,98 @@
1
- require 'rails/generators/migration'
2
- require 'rails/generators/generated_attribute'
3
-
4
- class FlexiScaffoldGenerator < Rails::Generators::Base
5
- include Rails::Generators::Migration
6
- source_root File.expand_path('../templates', __FILE__)
7
-
8
- no_tasks { attr_accessor :model_name, :model_attributes }
9
- argument :model_name, :type => :string, :required => true, :banner => 'ModelName'
10
- argument :args_for_m, :type => :array, :default => [], :banner => 'model:attributes'
11
-
12
- def initialize(*args, &block)
13
- super
14
- @model_attributes = []
15
-
16
- args_for_m.each do |arg|
17
- if arg.include?(':')
18
- @model_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':'))
19
- end
20
- end
21
-
22
- @model_attributes.uniq!
23
-
24
- if @model_attributes.empty?
25
- if model_exists?
26
- model_columns_for_attributes.each do |column|
27
- @model_attributes << Rails::Generators::GeneratedAttribute.new(column.name.to_s, column.type.to_s)
28
- end
29
- else
30
- @model_attributes << Rails::Generators::GeneratedAttribute.new('name', 'string')
31
- end
32
- end
33
- end
34
-
35
- def create_model
36
- template 'model.rb', "app/models/#{singular_name}.rb"
37
- template "tests/model.rb", "test/unit/#{singular_name}_test.rb"
38
- template 'fixtures.yml', "test/fixtures/#{plural_name}.yml"
39
- end
40
-
41
- def create_controller
42
- template "controller.rb", "app/controllers/admin/#{plural_name}_controller.rb"
43
- inject_into_file "config/routes.rb", "\n\tresources #{plural_name.to_sym.inspect}", :after => 'match "home" => "home#index"'
44
- template "tests/controller.rb", "test/functional/#{plural_name}_controller_test.rb"
45
- template 'helper.rb', "app/helpers/#{plural_name}_helper.rb"
46
- template "tests/helper.rb", "test/unit/helpers/#{plural_name}_controller_test.rb"
47
- end
48
-
49
- def create_view_files
50
- template "views/erb/index.html.erb", "app/views/admin/#{plural_name}/index.html.erb"
51
- template "views/erb/_form.html.erb", "app/views/admin/#{plural_name}/_form.html.erb"
52
- template "views/erb/show.html.erb", "app/views/admin/#{plural_name}/show.html.erb"
53
- template "views/erb/new.html.erb", "app/views/admin/#{plural_name}/new.html.erb"
54
- template "views/erb/edit.html.erb", "app/views/admin/#{plural_name}/edit.html.erb"
55
- template "views/erb/_error_messages.html.erb", "app/views/shared/_error_messages.html.erb"
56
- end
57
-
58
- def create_migration
59
- migration_template 'migration.rb', "db/migrate/create_#{plural_name}.rb"
60
- end
61
-
62
- private
63
-
64
- def singular_name
65
- model_name.underscore
66
- end
67
-
68
- def plural_name
69
- model_name.underscore.pluralize
70
- end
71
-
72
- def class_name
73
- model_name.camelize
74
- end
75
-
76
- def plural_class_name
77
- plural_name.camelize
78
- end
79
-
80
- def model_exists?
81
- File.exist? destination_path("app/models/#{singular_name}.rb")
82
- end
83
-
84
- def model_columns_for_attributes
85
- class_name.constantize.columns.reject do |column|
86
- column.name.to_s =~ /^(id|created_at|updated_at)$/
87
- end
88
- end
89
-
90
- def self.next_migration_number(dirname) #:nodoc:
91
- if ActiveRecord::Base.timestamped_migrations
92
- Time.now.utc.strftime("%Y%m%d%H%M%S")
93
- else
94
- "%.3d" % (current_migration_number(dirname) + 1)
95
- end
96
- end
97
-
98
- end
1
+ require 'rails/generators/migration'
2
+ require 'rails/generators/generated_attribute'
3
+
4
+ class FlexiScaffoldGenerator < Rails::Generators::Base
5
+ include Rails::Generators::Migration
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ no_tasks { attr_accessor :model_name, :model_attributes }
9
+ argument :model_name, :type => :string, :required => true, :banner => 'ModelName'
10
+ argument :args_for_m, :type => :array, :default => [], :banner => 'model:attributes'
11
+
12
+ def initialize(*args, &block)
13
+ super
14
+ @model_attributes = []
15
+
16
+ args_for_m.each do |arg|
17
+ if arg.include?(':')
18
+ @model_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':'))
19
+ end
20
+ end
21
+
22
+ @model_attributes.uniq!
23
+
24
+ if @model_attributes.empty?
25
+ if model_exists?
26
+ model_columns_for_attributes.each do |column|
27
+ @model_attributes << Rails::Generators::GeneratedAttribute.new(column.name.to_s, column.type.to_s)
28
+ end
29
+ else
30
+ @model_attributes << Rails::Generators::GeneratedAttribute.new('name', 'string')
31
+ end
32
+ end
33
+ end
34
+
35
+ def create_model
36
+ template 'model.rb', "app/models/#{singular_name}.rb"
37
+ template "tests/model.rb", "test/unit/#{singular_name}_test.rb"
38
+ template 'fixtures.yml', "test/fixtures/#{plural_name}.yml"
39
+ end
40
+
41
+ def create_controller
42
+ template "controller.rb", "app/controllers/admin/#{plural_name}_controller.rb"
43
+ inject_into_file "config/routes.rb", "\n\tresources #{plural_name.to_sym.inspect}", :after => 'match "home" => "home#index"'
44
+ template "tests/controller.rb", "test/functional/#{plural_name}_controller_test.rb"
45
+ template 'helper.rb', "app/helpers/#{plural_name}_helper.rb"
46
+ template "tests/helper.rb", "test/unit/helpers/#{plural_name}_controller_test.rb"
47
+ end
48
+
49
+ def create_view_files
50
+ template "views/erb/index.html.erb", "app/views/admin/#{plural_name}/index.html.erb"
51
+ template "views/erb/_form.html.erb", "app/views/admin/#{plural_name}/_form.html.erb"
52
+ template "views/erb/show.html.erb", "app/views/admin/#{plural_name}/show.html.erb"
53
+ template "views/erb/new.html.erb", "app/views/admin/#{plural_name}/new.html.erb"
54
+ template "views/erb/edit.html.erb", "app/views/admin/#{plural_name}/edit.html.erb"
55
+ template "views/erb/_error_messages.html.erb", "app/views/shared/_error_messages.html.erb"
56
+ end
57
+
58
+ def create_migration
59
+ migration_template 'migration.rb', "db/migrate/create_#{plural_name}.rb"
60
+ end
61
+
62
+ private
63
+
64
+ def singular_name
65
+ model_name.underscore
66
+ end
67
+
68
+ def plural_name
69
+ model_name.underscore.pluralize
70
+ end
71
+
72
+ def class_name
73
+ model_name.camelize
74
+ end
75
+
76
+ def plural_class_name
77
+ plural_name.camelize
78
+ end
79
+
80
+ def model_exists?
81
+ File.exist? destination_path("app/models/#{singular_name}.rb")
82
+ end
83
+
84
+ def model_columns_for_attributes
85
+ class_name.constantize.columns.reject do |column|
86
+ column.name.to_s =~ /^(id|created_at|updated_at)$/
87
+ end
88
+ end
89
+
90
+ def self.next_migration_number(dirname) #:nodoc:
91
+ if ActiveRecord::Base.timestamped_migrations
92
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
93
+ else
94
+ "%.3d" % (current_migration_number(dirname) + 1)
95
+ end
96
+ end
97
+
98
+ end
@@ -1,3 +1,3 @@
1
- <%% title "Editando <%= singular_name.titleize %>" %>
2
-
3
- <%%= render "form" %>
1
+ <%% title "Editando <%= singular_name.titleize %>" %>
2
+
3
+ <%%= render "form" %>
@@ -1,29 +1,29 @@
1
- <%% title("<%= plural_name.titleize %>") %>
2
-
3
- <div id="new_box">
4
- <%%= link_to 'Adicionar', new_admin_<%= singular_name %>_path, :class => 'button medium green' %>
5
- </div>
6
-
7
- <table cellspacing="0" cellpadding="2">
8
- <tr>
9
- <%- for attribute in model_attributes -%>
10
- <th><%= attribute.human_name.titleize %></th>
11
- <%- end -%>
12
- <th></th>
13
- </tr>
14
- <%% @<%= plural_name %>.each do |<%= singular_name %>| %>
15
- <tr>
16
- <%- for attribute in model_attributes -%>
17
- <td><%%=h <%= singular_name %>.<%= attribute.name %> %></td>
18
- <%- end -%>
19
- <td width="11%">
20
- <ul class="actions">
21
- <li><%%= link_to( image_tag("show.png"), [:admin, <%= singular_name %>], :title => "Mostrar" ) %></li>
22
- <li><%%= link_to( image_tag("edit.png"), edit_admin_<%= singular_name %>_path(<%= singular_name %>), :title => "Editar" ) %></li>
23
- <li><%%= link_to( image_tag("delete.png"), [:admin, <%= singular_name %>], :confirm => 'Tem certeza que deseja excluir?', :method => :delete, :title => "Excluir" ) %></li>
24
- </ul>
25
- </td>
26
- </tr>
27
- <%% end %>
28
- </table>
29
- <%%= will_paginate @<%= plural_name %>, :previous_label=>'&laquo; Anterior', :next_label=>'Próximo &raquo;' %>
1
+ <%% title("<%= plural_name.titleize %>") %>
2
+
3
+ <div id="new_box">
4
+ <%%= link_to 'Adicionar', new_admin_<%= singular_name %>_path, :class => 'button medium green' %>
5
+ </div>
6
+
7
+ <table cellspacing="0" cellpadding="2">
8
+ <tr>
9
+ <%- for attribute in model_attributes -%>
10
+ <th><%= attribute.human_name.titleize %></th>
11
+ <%- end -%>
12
+ <th></th>
13
+ </tr>
14
+ <%% @<%= plural_name %>.each do |<%= singular_name %>| %>
15
+ <tr>
16
+ <%- for attribute in model_attributes -%>
17
+ <td><%%=h <%= singular_name %>.<%= attribute.name %> %></td>
18
+ <%- end -%>
19
+ <td width="11%">
20
+ <ul class="actions">
21
+ <li><%%= link_to( image_tag("show.png"), [:admin, <%= singular_name %>], :title => "Mostrar" ) %></li>
22
+ <li><%%= link_to( image_tag("edit.png"), edit_admin_<%= singular_name %>_path(<%= singular_name %>), :title => "Editar" ) %></li>
23
+ <li><%%= link_to( image_tag("delete.png"), [:admin, <%= singular_name %>], :confirm => 'Tem certeza que deseja excluir?', :method => :delete, :title => "Excluir" ) %></li>
24
+ </ul>
25
+ </td>
26
+ </tr>
27
+ <%% end %>
28
+ </table>
29
+ <%%= will_paginate @<%= plural_name %>, :previous_label=>'&laquo; Anterior', :next_label=>'Próximo &raquo;' %>
@@ -1,3 +1,3 @@
1
- <%% title "Novo <%= singular_name.titleize %>" %>
2
-
1
+ <%% title "Novo <%= singular_name.titleize %>" %>
2
+
3
3
  <%%= render "form" %>
@@ -1,15 +1,15 @@
1
- <%% title "<%= singular_name.titleize %>" %>
2
-
3
- <%- for attribute in model_attributes -%>
4
- <p>
5
- <b><%= attribute.human_name.titleize %>:</b>
6
- <%%= @<%= singular_name %>.<%= attribute.name %> %>
7
- </p>
8
- <%- end -%>
9
-
10
- <div id="control_box">
11
- <%%= link_to( image_tag("back.png"), admin_<%= plural_name %>_path, :title => "Voltar" ) %> |
12
- <%%= link_to( image_tag("edit.png"), edit_admin_<%= singular_name %>_path(@<%= singular_name %>), :title => "Editar" ) %> |
13
- <%%= link_to( image_tag("delete.png"), [:admin, @<%= singular_name %>], :confirm => 'Tem certeza que deseja excluir?', :method => :delete, :title => "Exlcuir" ) %>
14
- </div>
15
-
1
+ <%% title "<%= singular_name.titleize %>" %>
2
+
3
+ <%- for attribute in model_attributes -%>
4
+ <p>
5
+ <b><%= attribute.human_name.titleize %>:</b>
6
+ <%%= @<%= singular_name %>.<%= attribute.name %> %>
7
+ </p>
8
+ <%- end -%>
9
+
10
+ <div id="control_box">
11
+ <%%= link_to( image_tag("back.png"), admin_<%= plural_name %>_path, :title => "Voltar" ) %> |
12
+ <%%= link_to( image_tag("edit.png"), edit_admin_<%= singular_name %>_path(@<%= singular_name %>), :title => "Editar" ) %> |
13
+ <%%= link_to( image_tag("delete.png"), [:admin, @<%= singular_name %>], :confirm => 'Tem certeza que deseja excluir?', :method => :delete, :title => "Exlcuir" ) %>
14
+ </div>
15
+
data/template.rb CHANGED
@@ -1,4 +1,4 @@
1
- gem "flexi_generators", "0.2.1"
1
+ gem "flexi_generators"
2
2
  run "bundle install"
3
3
  generate :flexi_prepare
4
4
  generate :flexi_auth
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flexi_generators
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 2
10
- version: 0.2.2
9
+ - 3
10
+ version: 0.2.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Leandro de Oliveira