active_leonardo 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +44 -0
  3. data/LICENSE +19 -19
  4. data/README.md +173 -0
  5. data/active_template.rb +141 -137
  6. data/lib/generators/active_leonardo.rb +7 -1
  7. data/lib/generators/erb/leosca/leosca_generator.rb +122 -122
  8. data/lib/generators/leolay/USAGE +21 -21
  9. data/lib/generators/leolay/leolay_generator.rb +420 -400
  10. data/lib/generators/leolay/templates/app/admin/users.rb +87 -87
  11. data/lib/generators/leolay/templates/config/locales/it.yml +7 -0
  12. data/lib/generators/leolay/templates/spec/helpers/application_helpers.rb +13 -13
  13. data/lib/generators/leolay/templates/spec/support/devise.rb +4 -4
  14. data/lib/generators/leolay/templates/styles/active/stylesheets/app/custom_active_admin.css.scss +27 -27
  15. data/lib/generators/leosca/USAGE +23 -23
  16. data/lib/generators/rails/leosca/USAGE +39 -39
  17. data/lib/generators/rails/leosca/leosca_generator.rb +55 -55
  18. data/lib/generators/rails/leosca/templates/leosca.css +56 -56
  19. data/lib/generators/rails/leosca_controller/USAGE +23 -23
  20. data/lib/generators/rails/leosca_controller/leosca_controller_generator.rb +192 -188
  21. data/lib/generators/rails/leosca_controller/templates/controller.rb +3 -3
  22. data/lib/generators/rspec/leointegration/leointegration_generator.rb +35 -35
  23. data/lib/generators/rspec/leointegration/templates/admin/feature.rb +67 -67
  24. data/lib/generators/rspec/leointegration/templates/feature.rb +9 -9
  25. data/lib/generators/rspec/leosca/leosca_generator.rb +57 -57
  26. data/lib/generators/rspec/leosca/templates/admin/controller_spec.rb +181 -181
  27. data/lib/generators/rspec/leosca/templates/admin/edit_spec.rb +31 -31
  28. data/lib/generators/rspec/leosca/templates/admin/index_spec.rb +32 -32
  29. data/lib/generators/rspec/leosca/templates/admin/new_spec.rb +30 -30
  30. data/lib/generators/rspec/leosca/templates/admin/routing_spec.rb +39 -39
  31. data/lib/generators/rspec/leosca/templates/admin/show_spec.rb +28 -28
  32. data/lib/generators/rspec/leosca/templates/controller_spec.rb +168 -168
  33. data/lib/generators/rspec/leosca/templates/edit_spec.rb +31 -31
  34. data/lib/generators/rspec/leosca/templates/index_spec.rb +32 -32
  35. data/lib/generators/rspec/leosca/templates/new_spec.rb +30 -30
  36. data/lib/generators/rspec/leosca/templates/routing_spec.rb +39 -39
  37. data/lib/generators/rspec/leosca/templates/show_spec.rb +28 -28
  38. metadata +55 -124
  39. data/CHANGELOG +0 -28
  40. data/README.rdoc +0 -159
@@ -1,87 +1,87 @@
1
- ActiveAdmin.register <%= options[:auth_class] %> do
2
- <%- if options.authorization? -%>
3
- menu :if => proc{ can?(:manage, <%= options[:auth_class] %>) }
4
- <%- end -%>
5
- config.sort_order = 'email_asc'
6
-
7
- controller do
8
- <%- if options.authorization? -%>
9
- load_resource :except => :index
10
- authorize_resource
11
- <%- end -%>
12
- def update
13
- unless params[:<%= options[:auth_class].downcase %>]['password'] && params[:<%= options[:auth_class].downcase %>]['password'].size > 0
14
- params[:<%= options[:auth_class].downcase %>].delete 'password'
15
- params[:<%= options[:auth_class].downcase %>].delete 'password_confirmation'
16
- end
17
- super do
18
- #do something
19
- end
20
- end
21
- end
22
-
23
- index do
24
- selectable_column
25
- id_column
26
- column :email
27
- #column :group, :sortable => :group_id
28
- <%- if options.authorization? -%>
29
- column :roles do |<%= options[:auth_class].downcase %>|
30
- <%= options[:auth_class].downcase %>.roles.join ", "
31
- end
32
- <%- end -%>
33
- column :current_sign_in_at
34
- column :current_sign_in_ip
35
- column :created_at
36
- default_actions
37
- end
38
-
39
- filter :email
40
- filter :created_at
41
-
42
- form do |f|
43
- <%- if options.authorization? -%>
44
- input_roles = "<li>" <<
45
- f.label(:roles) <<
46
- <%= options[:auth_class] %>::ROLES.map{|role| check_box_tag("<%= options[:auth_class].downcase %>[roles][]", role, f.object.roles.include?(role)) << ' ' << role.humanize.html_safe }.join(" ") <<
47
- hidden_field_tag("<%= options[:auth_class].downcase %>[roles][]") <<
48
- "</li>"
49
- <%- end -%>
50
- f.inputs "Account" do
51
- f.input :email
52
- f.input :password
53
- f.input(:password_confirmation) <%= "<< input_roles.html_safe" if options.authorization? %>
54
-
55
- end
56
- f.buttons
57
- end
58
-
59
- show do
60
- attributes_table do
61
- row :email
62
- #row :group
63
- row :current_sign_in_at
64
- row :last_sign_in_at
65
- row :sign_in_count
66
- row :current_sign_in_ip
67
- <%- if options.authorization? -%>
68
- row :roles do |<%= options[:auth_class].downcase %>|
69
- <%= options[:auth_class].downcase %>.roles.join ", "
70
- end
71
- <%- end -%>
72
- row :created_at
73
- row :updated_at
74
- end
75
- end
76
-
77
- csv do
78
- column :email
79
- #column("Name") { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.name }
80
- #column("Group") { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.group.try(:name) }
81
- <%- if options.authorization? -%>
82
- column(I18n.t('attributes.<%= options[:auth_class].downcase %>.roles')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.roles.join ", " }
83
- <%- end -%>
84
- column(I18n.t('attributes.created_at')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.created_at.strftime("%d/%m/%Y") }
85
- column(I18n.t('attributes.<%= options[:auth_class].downcase %>.last_sign_in_at')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.last_sign_in_at.strftime("%d/%m/%Y") if <%= options[:auth_class].downcase %>.last_sign_in_at }
86
- end
87
- end
1
+ ActiveAdmin.register <%= options[:auth_class] %> do
2
+ <%- if options.authorization? -%>
3
+ menu :if => proc{ can?(:manage, <%= options[:auth_class] %>) }
4
+ <%- end -%>
5
+ config.sort_order = 'email_asc'
6
+
7
+ controller do
8
+ <%- if options.authorization? -%>
9
+ load_resource :except => :index
10
+ authorize_resource
11
+ <%- end -%>
12
+ def update
13
+ unless params[:<%= options[:auth_class].downcase %>]['password'] && params[:<%= options[:auth_class].downcase %>]['password'].size > 0
14
+ params[:<%= options[:auth_class].downcase %>].delete 'password'
15
+ params[:<%= options[:auth_class].downcase %>].delete 'password_confirmation'
16
+ end
17
+ super do
18
+ #do something
19
+ end
20
+ end
21
+ end
22
+
23
+ index do
24
+ selectable_column
25
+ id_column
26
+ column :email
27
+ #column :group, :sortable => :group_id
28
+ <%- if options.authorization? -%>
29
+ column :roles do |<%= options[:auth_class].downcase %>|
30
+ <%= options[:auth_class].downcase %>.roles.join ", "
31
+ end
32
+ <%- end -%>
33
+ column :current_sign_in_at
34
+ column :current_sign_in_ip
35
+ column :created_at
36
+ default_actions
37
+ end
38
+
39
+ filter :email
40
+ filter :created_at
41
+
42
+ form do |f|
43
+ <%- if options.authorization? -%>
44
+ input_roles = "<li>" <<
45
+ f.label(:roles) <<
46
+ <%= options[:auth_class] %>::ROLES.map{|role| check_box_tag("<%= options[:auth_class].downcase %>[roles][]", role, f.object.roles.include?(role)) << ' ' << role.humanize.html_safe }.join(" ") <<
47
+ hidden_field_tag("<%= options[:auth_class].downcase %>[roles][]") <<
48
+ "</li>"
49
+ <%- end -%>
50
+ f.inputs "Account" do
51
+ f.input :email
52
+ f.input :password
53
+ f.input(:password_confirmation) <%= "<< input_roles.html_safe" if options.authorization? %>
54
+
55
+ end
56
+ f.actions
57
+ end
58
+
59
+ show do
60
+ attributes_table do
61
+ row :email
62
+ #row :group
63
+ row :current_sign_in_at
64
+ row :last_sign_in_at
65
+ row :sign_in_count
66
+ row :current_sign_in_ip
67
+ <%- if options.authorization? -%>
68
+ row :roles do |<%= options[:auth_class].downcase %>|
69
+ <%= options[:auth_class].downcase %>.roles.join ", "
70
+ end
71
+ <%- end -%>
72
+ row :created_at
73
+ row :updated_at
74
+ end
75
+ end
76
+
77
+ csv do
78
+ column :email
79
+ #column("Name") { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.name }
80
+ #column("Group") { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.group.try(:name) }
81
+ <%- if options.authorization? -%>
82
+ column(I18n.t('attributes.<%= options[:auth_class].downcase %>.roles')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.roles.join ", " }
83
+ <%- end -%>
84
+ column(I18n.t('attributes.created_at')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.created_at.strftime("%d/%m/%Y") }
85
+ column(I18n.t('attributes.<%= options[:auth_class].downcase %>.last_sign_in_at')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.last_sign_in_at.strftime("%d/%m/%Y") if <%= options[:auth_class].downcase %>.last_sign_in_at }
86
+ end
87
+ end
@@ -254,6 +254,13 @@ it:
254
254
  canceled: "Eliminato"
255
255
  completed: "Completato"
256
256
  closed: "Chiuso"
257
+ views:
258
+ pagination:
259
+ next: "Succ."
260
+ previous: "Prec."
261
+ first: "Primo"
262
+ last: "Ultimo"
263
+ truncate: "..."
257
264
 
258
265
  unknown_request: "Spiacente, richiesta sconosciuta, non è possibile eseguirla"
259
266
  generic_error: "Un errore impedisce di svolgere questa operazione"
@@ -1,13 +1,13 @@
1
- module ApplicationHelpers
2
- def login_view_as(role=:user)
3
- user = Factory(role)
4
- fill_in 'user_email', :with => user.email
5
- fill_in 'user_password', :with => user.password
6
- click_button 'Login'
7
- end
8
- def login_controller_as(role=:user)
9
- user = Factory(role)
10
- #user.confirm! # or set a confirmed_at inside the factory. Only necessary if you are using the confirmable module
11
- sign_in user
12
- end
13
- end
1
+ module ApplicationHelpers
2
+ def login_view_as(role=:user)
3
+ user = Factory(role)
4
+ fill_in 'user_email', :with => user.email
5
+ fill_in 'user_password', :with => user.password
6
+ click_button 'Login'
7
+ end
8
+ def login_controller_as(role=:user)
9
+ user = Factory(role)
10
+ #user.confirm! # or set a confirmed_at inside the factory. Only necessary if you are using the confirmable module
11
+ sign_in user
12
+ end
13
+ end
@@ -1,4 +1,4 @@
1
- RSpec.configure do |config|
2
- config.include Devise::TestHelpers, :type => :controller
3
- config.include Devise::TestHelpers, :type => :view
4
- end
1
+ RSpec.configure do |config|
2
+ config.include Devise::TestHelpers, :type => :controller
3
+ config.include Devise::TestHelpers, :type => :view
4
+ end
@@ -1,28 +1,28 @@
1
- body.active_admin {
2
- @import "enviroment";
3
-
4
- #active_admin_content {
5
- padding: 10px 10px;
6
- }
7
- .price {
8
- text-align: right;
9
- }
10
- table.index_table tr.odd.selected td {
11
- background: none repeat scroll 0 0 #FFFFBD;
12
- }
13
- table.index_table tr.even.selected td {
14
- background: none repeat scroll 0 0 #FFFFAC;
15
- }
16
- .table_tools_segmented_control li.selected {
17
- a {
18
- background-color: #E6E6E6;
19
- cursor: pointer;
20
- }
21
- a:hover {
22
- color: inherit;
23
- }
24
- }
25
- #footer {
26
- text-align: center;
27
- }
1
+ body.active_admin {
2
+ @import "enviroment";
3
+
4
+ #active_admin_content {
5
+ padding: 10px 10px;
6
+ }
7
+ .price {
8
+ text-align: right;
9
+ }
10
+ table.index_table tr.odd.selected td {
11
+ background: none repeat scroll 0 0 #FFFFBD;
12
+ }
13
+ table.index_table tr.even.selected td {
14
+ background: none repeat scroll 0 0 #FFFFAC;
15
+ }
16
+ .table_tools_segmented_control li.selected {
17
+ a {
18
+ background-color: #E6E6E6;
19
+ cursor: pointer;
20
+ }
21
+ a:hover {
22
+ color: inherit;
23
+ }
24
+ }
25
+ #footer {
26
+ text-align: center;
27
+ }
28
28
  }
@@ -1,23 +1,23 @@
1
- Description:
2
- en: Copy all templates in the project directory lib \ generators to allow customization.
3
- it: Copia tutti i template nella directory del progetto lib\generators per consentire la personalizzazione.
4
-
5
- Example:
6
- rails generate leosca:install
7
-
8
- This will create:
9
- lib/generators/erb/leosca/USAGE
10
- lib/generators/erb/leosca/leosca_generator.rb
11
- lib/generators/erb/leosca/templates/_form.html.erb
12
- lib/generators/erb/leosca/templates/_list.erb
13
- lib/generators/erb/leosca/templates/edit.html.erb
14
- lib/generators/erb/leosca/templates/index.html.erb
15
- lib/generators/erb/leosca/templates/index.js.erb
16
- lib/generators/erb/leosca/templates/new.html.erb
17
- lib/generators/erb/leosca/templates/show.html.erb
18
- lib/generators/rails/leosca/USAGE
19
- lib/generators/rails/leosca/leosca_generator.rb
20
- lib/generators/rails/leosca/templates/leosca.css
21
- lib/generators/rails/leosca_controller/USAGE
22
- lib/generators/rails/leosca_controller/leosca_controller_generator.rb
23
- lib/generators/rails/leosca_controller/templates/controller.rb
1
+ Description:
2
+ en: Copy all templates in the project directory lib \ generators to allow customization.
3
+ it: Copia tutti i template nella directory del progetto lib\generators per consentire la personalizzazione.
4
+
5
+ Example:
6
+ rails generate leosca:install
7
+
8
+ This will create:
9
+ lib/generators/erb/leosca/USAGE
10
+ lib/generators/erb/leosca/leosca_generator.rb
11
+ lib/generators/erb/leosca/templates/_form.html.erb
12
+ lib/generators/erb/leosca/templates/_list.erb
13
+ lib/generators/erb/leosca/templates/edit.html.erb
14
+ lib/generators/erb/leosca/templates/index.html.erb
15
+ lib/generators/erb/leosca/templates/index.js.erb
16
+ lib/generators/erb/leosca/templates/new.html.erb
17
+ lib/generators/erb/leosca/templates/show.html.erb
18
+ lib/generators/rails/leosca/USAGE
19
+ lib/generators/rails/leosca/leosca_generator.rb
20
+ lib/generators/rails/leosca/templates/leosca.css
21
+ lib/generators/rails/leosca_controller/USAGE
22
+ lib/generators/rails/leosca_controller/leosca_controller_generator.rb
23
+ lib/generators/rails/leosca_controller/templates/controller.rb
@@ -1,40 +1,40 @@
1
- Description:
2
- en: Customized version of rails's scaffold, to be used after leolay.
3
- it: Versione personalizzata dello scaffold di rails, da usare dopo leolay.
4
-
5
- Scaffolds an entire resource, from model and migration to controller and
6
- views, along with a full test suite. The resource is ready to use as a
7
- starting point for your RESTful, resource-oriented application.
8
-
9
- Pass the name of the model (in singular form), either CamelCased or
10
- under_scored, as the first argument, and an optional list of attribute
11
- pairs.
12
-
13
- Attribute pairs are field:type arguments specifying the
14
- model's attributes. Timestamps are added by default, so you don't have to
15
- specify them by hand as 'created_at:datetime updated_at:datetime'.
16
-
17
- You don't have to think up every attribute up front, but it helps to
18
- sketch out a few so you can start working with the resource immediately.
19
-
20
- For example, 'scaffold post title:string body:text published:boolean'
21
- gives you a model with those three attributes, a controller that handles
22
- the create/show/update/destroy, forms to create and edit your posts, and
23
- an index that lists them all, as well as a resources :posts
24
- declaration in config/routes.rb.
25
-
26
- If you want to remove all the generated files, run
27
- 'rails destroy scaffold ModelName'.
28
-
29
- Use after leolay:
30
- 1. rails generate leolay
31
- 2. rails generate leosca
32
-
33
- Usage example:
34
- rails generate leosca product name:string description:text active:boolean items:integer price:decimal
35
-
36
- Available options:
37
- rails generate leosca product name:string --skip-seeds
38
- rails generate leosca product name:string --seeds=60 => if you need more records
39
-
1
+ Description:
2
+ en: Customized version of rails's scaffold, to be used after leolay.
3
+ it: Versione personalizzata dello scaffold di rails, da usare dopo leolay.
4
+
5
+ Scaffolds an entire resource, from model and migration to controller and
6
+ views, along with a full test suite. The resource is ready to use as a
7
+ starting point for your RESTful, resource-oriented application.
8
+
9
+ Pass the name of the model (in singular form), either CamelCased or
10
+ under_scored, as the first argument, and an optional list of attribute
11
+ pairs.
12
+
13
+ Attribute pairs are field:type arguments specifying the
14
+ model's attributes. Timestamps are added by default, so you don't have to
15
+ specify them by hand as 'created_at:datetime updated_at:datetime'.
16
+
17
+ You don't have to think up every attribute up front, but it helps to
18
+ sketch out a few so you can start working with the resource immediately.
19
+
20
+ For example, 'scaffold post title:string body:text published:boolean'
21
+ gives you a model with those three attributes, a controller that handles
22
+ the create/show/update/destroy, forms to create and edit your posts, and
23
+ an index that lists them all, as well as a resources :posts
24
+ declaration in config/routes.rb.
25
+
26
+ If you want to remove all the generated files, run
27
+ 'rails destroy scaffold ModelName'.
28
+
29
+ Use after leolay:
30
+ 1. rails generate leolay
31
+ 2. rails generate leosca
32
+
33
+ Usage example:
34
+ rails generate leosca product name:string description:text active:boolean items:integer price:decimal
35
+
36
+ Available options:
37
+ rails generate leosca product name:string --skip-seeds
38
+ rails generate leosca product name:string --seeds=60 => if you need more records
39
+
40
40
  Of course, these options are in addition to those provided by the original scaffold
@@ -1,56 +1,56 @@
1
- require 'rails/generators/rails/scaffold/scaffold_generator'
2
- require File.join(File.dirname(__FILE__), '../../active_leonardo')
3
-
4
- module Rails
5
- module Generators
6
- class LeoscaGenerator < ::Rails::Generators::ScaffoldGenerator
7
- include ::ActiveLeonardo::Base
8
- #include ::Leonardo::Nested
9
- #puts 'rails:leosca'
10
-
11
- #class_option :under, :type => :string, :default => "", :banner => "brand/category", :desc => "To nest a resource under another(s)"
12
- #class_option :leospace, :type => :string, :default => "", :banner => ":admin", :desc => "To nest a resource under namespace(s)"
13
-
14
- remove_hook_for :scaffold_controller
15
- hook_for :leosca_controller, :required => true
16
-
17
- #Override
18
- #def add_resource_route
19
- # return if options[:actions].present?
20
- #
21
- # route_config = ""
22
- # iparent = 0
23
- #
24
- # if nested?
25
- # plural_parent_resources.each do |m|
26
- # iparent += 2
27
- # indent = eval "/^\s{#{16 - iparent}}/"
28
- # route_config << <<-FILE.gsub(indent, '')
29
- # resources :#{m} do
30
- # get :with_#{file_name.pluralize}
31
- # post :select, :on => :collection
32
- # post :edit_multiple, :on => :collection
33
- # put :update_multiple, :on => :collection
34
- # put :create_multiple, :on => :collection
35
- # FILE
36
- # end
37
- # end
38
- # route_config << base_namespaces.map{|m| "namespace :#{m} do " }.join(" ") if leospaced?
39
- # route_config << regular_class_path.map{|m| "namespace :#{m} do " }.join(" ")
40
- # indent = eval "/^\s{#{8 - iparent}}/"
41
- # route_config << <<-FILE.gsub(indent, '')
42
- #
43
- # resources :#{file_name.pluralize} do
44
- # post :select, :on => :collection
45
- # post :edit_multiple, :on => :collection
46
- # put :update_multiple, :on => :collection
47
- # put :create_multiple, :on => :collection
48
- # end
49
- # FILE
50
- # route_config << " end" * (regular_class_path.size + plural_parent_resources.size + base_namespaces.size)
51
- # route route_config
52
- #end
53
-
54
- end
55
- end
1
+ require 'rails/generators/rails/scaffold/scaffold_generator'
2
+ require File.join(File.dirname(__FILE__), '../../active_leonardo')
3
+
4
+ module Rails
5
+ module Generators
6
+ class LeoscaGenerator < ::Rails::Generators::ScaffoldGenerator
7
+ include ::ActiveLeonardo::Base
8
+ #include ::Leonardo::Nested
9
+ #puts 'rails:leosca'
10
+
11
+ #class_option :under, :type => :string, :default => "", :banner => "brand/category", :desc => "To nest a resource under another(s)"
12
+ #class_option :leospace, :type => :string, :default => "", :banner => ":admin", :desc => "To nest a resource under namespace(s)"
13
+
14
+ remove_hook_for :scaffold_controller
15
+ hook_for :leosca_controller, :required => true
16
+
17
+ #Override
18
+ #def add_resource_route
19
+ # return if options[:actions].present?
20
+ #
21
+ # route_config = ""
22
+ # iparent = 0
23
+ #
24
+ # if nested?
25
+ # plural_parent_resources.each do |m|
26
+ # iparent += 2
27
+ # indent = eval "/^\s{#{16 - iparent}}/"
28
+ # route_config << <<-FILE.gsub(indent, '')
29
+ # resources :#{m} do
30
+ # get :with_#{file_name.pluralize}
31
+ # post :select, :on => :collection
32
+ # post :edit_multiple, :on => :collection
33
+ # put :update_multiple, :on => :collection
34
+ # put :create_multiple, :on => :collection
35
+ # FILE
36
+ # end
37
+ # end
38
+ # route_config << base_namespaces.map{|m| "namespace :#{m} do " }.join(" ") if leospaced?
39
+ # route_config << regular_class_path.map{|m| "namespace :#{m} do " }.join(" ")
40
+ # indent = eval "/^\s{#{8 - iparent}}/"
41
+ # route_config << <<-FILE.gsub(indent, '')
42
+ #
43
+ # resources :#{file_name.pluralize} do
44
+ # post :select, :on => :collection
45
+ # post :edit_multiple, :on => :collection
46
+ # put :update_multiple, :on => :collection
47
+ # put :create_multiple, :on => :collection
48
+ # end
49
+ # FILE
50
+ # route_config << " end" * (regular_class_path.size + plural_parent_resources.size + base_namespaces.size)
51
+ # route route_config
52
+ #end
53
+
54
+ end
55
+ end
56
56
  end