burlesque 1.0.0 → 2.0.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 (85) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +22 -3
  3. data/Rakefile +40 -1
  4. data/app/assets/javascripts/burlesque/application.js +15 -0
  5. data/app/assets/stylesheets/burlesque/application.css +13 -0
  6. data/app/controllers/burlesque/application_controller.rb +4 -0
  7. data/app/helpers/burlesque/application_helper.rb +4 -0
  8. data/app/models/burlesque/admin_group.rb +22 -0
  9. data/app/models/burlesque/admin_role.rb +13 -0
  10. data/app/models/burlesque/group.rb +87 -0
  11. data/app/models/burlesque/role.rb +92 -0
  12. data/app/models/burlesque/role_group.rb +24 -0
  13. data/app/views/layouts/burlesque/application.html.erb +14 -0
  14. data/config/routes.rb +2 -0
  15. data/db/migrate/20130725210208_create_burlesque_groups.rb +9 -0
  16. data/db/migrate/20130725210428_create_burlesque_roles.rb +9 -0
  17. data/db/migrate/20130725214806_create_burlesque_admin_groups.rb +15 -0
  18. data/db/migrate/20130725223204_create_burlesque_role_groups.rb +12 -0
  19. data/db/migrate/20130725223437_create_burlesque_admin_roles.rb +15 -0
  20. data/lib/burlesque.rb +5 -6
  21. data/lib/burlesque/admin.rb +14 -10
  22. data/lib/burlesque/engine.rb +5 -0
  23. data/lib/burlesque/version.rb +1 -1
  24. data/lib/tasks/burlesque_tasks.rake +4 -0
  25. data/test/burlesque_test.rb +7 -0
  26. data/test/dummy/README.rdoc +261 -0
  27. data/test/dummy/Rakefile +7 -0
  28. data/test/dummy/app/assets/javascripts/application.js +15 -0
  29. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  30. data/test/dummy/app/controllers/application_controller.rb +3 -0
  31. data/test/dummy/app/helpers/application_helper.rb +2 -0
  32. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  33. data/test/dummy/config.ru +4 -0
  34. data/test/dummy/config/application.rb +59 -0
  35. data/test/dummy/config/boot.rb +10 -0
  36. data/test/dummy/config/database.yml +25 -0
  37. data/test/dummy/config/environment.rb +5 -0
  38. data/test/dummy/config/environments/development.rb +37 -0
  39. data/test/dummy/config/environments/production.rb +67 -0
  40. data/test/dummy/config/environments/test.rb +37 -0
  41. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  42. data/test/dummy/config/initializers/inflections.rb +15 -0
  43. data/test/dummy/config/initializers/mime_types.rb +5 -0
  44. data/test/dummy/config/initializers/secret_token.rb +7 -0
  45. data/test/dummy/config/initializers/session_store.rb +8 -0
  46. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  47. data/test/dummy/config/locales/en.yml +5 -0
  48. data/test/dummy/config/routes.rb +4 -0
  49. data/test/dummy/public/404.html +26 -0
  50. data/test/dummy/public/422.html +26 -0
  51. data/test/dummy/public/500.html +25 -0
  52. data/test/dummy/public/favicon.ico +0 -0
  53. data/test/dummy/script/rails +6 -0
  54. data/test/fixtures/burlesque/admin_groups.yml +9 -0
  55. data/test/fixtures/burlesque/admin_roles.yml +9 -0
  56. data/test/fixtures/burlesque/groups.yml +7 -0
  57. data/test/fixtures/burlesque/role_groups.yml +9 -0
  58. data/test/fixtures/burlesque/roles.yml +7 -0
  59. data/test/integration/navigation_test.rb +10 -0
  60. data/test/test_helper.rb +15 -0
  61. data/test/unit/burlesque/admin_group_test.rb +9 -0
  62. data/test/unit/burlesque/admin_role_test.rb +9 -0
  63. data/test/unit/burlesque/group_test.rb +9 -0
  64. data/test/unit/burlesque/role_group_test.rb +9 -0
  65. data/test/unit/burlesque/role_test.rb +9 -0
  66. metadata +123 -25
  67. data/.gitignore +0 -7
  68. data/Gemfile +0 -4
  69. data/burlesque.gemspec +0 -24
  70. data/lib/burlesque/admin_group.rb +0 -25
  71. data/lib/burlesque/authorization.rb +0 -13
  72. data/lib/burlesque/group.rb +0 -91
  73. data/lib/burlesque/role.rb +0 -94
  74. data/lib/burlesque/role_group.rb +0 -30
  75. data/lib/generators/burlesque/install_generator.rb +0 -85
  76. data/lib/generators/burlesque/templates/admin_group.rb +0 -3
  77. data/lib/generators/burlesque/templates/authorization.rb +0 -3
  78. data/lib/generators/burlesque/templates/create_admin_groups.rb +0 -13
  79. data/lib/generators/burlesque/templates/create_authorizations.rb +0 -13
  80. data/lib/generators/burlesque/templates/create_groups.rb +0 -9
  81. data/lib/generators/burlesque/templates/create_role_groups.rb +0 -12
  82. data/lib/generators/burlesque/templates/create_roles.rb +0 -9
  83. data/lib/generators/burlesque/templates/group.rb +0 -3
  84. data/lib/generators/burlesque/templates/role.rb +0 -3
  85. data/lib/generators/burlesque/templates/role_group.rb +0 -3
@@ -0,0 +1,9 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ admin:
5
+ role:
6
+
7
+ two:
8
+ admin:
9
+ role:
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ name: MyString
5
+
6
+ two:
7
+ name: MyString
@@ -0,0 +1,9 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ role:
5
+ group:
6
+
7
+ two:
8
+ role:
9
+ group:
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
+
3
+ one:
4
+ name: MyString
5
+
6
+ two:
7
+ name: MyString
@@ -0,0 +1,10 @@
1
+ require 'test_helper'
2
+
3
+ class NavigationTest < ActionDispatch::IntegrationTest
4
+ fixtures :all
5
+
6
+ # test "the truth" do
7
+ # assert true
8
+ # end
9
+ end
10
+
@@ -0,0 +1,15 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module Burlesque
4
+ class AdminGroupTest < ActiveSupport::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module Burlesque
4
+ class AdminRoleTest < ActiveSupport::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module Burlesque
4
+ class GroupTest < ActiveSupport::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module Burlesque
4
+ class RoleGroupTest < ActiveSupport::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'test_helper'
2
+
3
+ module Burlesque
4
+ class RoleTest < ActiveSupport::TestCase
5
+ # test "the truth" do
6
+ # assert true
7
+ # end
8
+ end
9
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: burlesque
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,23 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
  date: 2013-07-25 00:00:00.000000000 Z
13
- dependencies: []
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.12
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.12
14
30
  description: Crea estructura de roles y grupos para caulquier modelo, considera ademas
15
31
  las 3 tablas de join que pudiesen darse
16
32
  email:
@@ -19,33 +35,74 @@ executables: []
19
35
  extensions: []
20
36
  extra_rdoc_files: []
21
37
  files:
22
- - .gitignore
23
- - Gemfile
24
- - README.md
25
- - Rakefile
26
- - burlesque.gemspec
38
+ - app/assets/javascripts/burlesque/application.js
39
+ - app/assets/stylesheets/burlesque/application.css
40
+ - app/controllers/burlesque/application_controller.rb
41
+ - app/helpers/burlesque/application_helper.rb
42
+ - app/models/burlesque/admin_group.rb
43
+ - app/models/burlesque/admin_role.rb
44
+ - app/models/burlesque/group.rb
45
+ - app/models/burlesque/role.rb
46
+ - app/models/burlesque/role_group.rb
47
+ - app/views/layouts/burlesque/application.html.erb
27
48
  - config/locales/burlesque.en.yml
28
49
  - config/locales/burlesque.es-CL.yml
29
- - lib/burlesque.rb
50
+ - config/routes.rb
51
+ - db/migrate/20130725210208_create_burlesque_groups.rb
52
+ - db/migrate/20130725210428_create_burlesque_roles.rb
53
+ - db/migrate/20130725214806_create_burlesque_admin_groups.rb
54
+ - db/migrate/20130725223204_create_burlesque_role_groups.rb
55
+ - db/migrate/20130725223437_create_burlesque_admin_roles.rb
30
56
  - lib/burlesque/admin.rb
31
- - lib/burlesque/admin_group.rb
32
- - lib/burlesque/authorization.rb
33
- - lib/burlesque/group.rb
57
+ - lib/burlesque/engine.rb
34
58
  - lib/burlesque/locale.rb
35
- - lib/burlesque/role.rb
36
- - lib/burlesque/role_group.rb
37
59
  - lib/burlesque/version.rb
38
- - lib/generators/burlesque/install_generator.rb
39
- - lib/generators/burlesque/templates/admin_group.rb
40
- - lib/generators/burlesque/templates/authorization.rb
41
- - lib/generators/burlesque/templates/create_admin_groups.rb
42
- - lib/generators/burlesque/templates/create_authorizations.rb
43
- - lib/generators/burlesque/templates/create_groups.rb
44
- - lib/generators/burlesque/templates/create_role_groups.rb
45
- - lib/generators/burlesque/templates/create_roles.rb
46
- - lib/generators/burlesque/templates/group.rb
47
- - lib/generators/burlesque/templates/role.rb
48
- - lib/generators/burlesque/templates/role_group.rb
60
+ - lib/burlesque.rb
61
+ - lib/tasks/burlesque_tasks.rake
62
+ - MIT-LICENSE
63
+ - Rakefile
64
+ - README.md
65
+ - test/burlesque_test.rb
66
+ - test/dummy/app/assets/javascripts/application.js
67
+ - test/dummy/app/assets/stylesheets/application.css
68
+ - test/dummy/app/controllers/application_controller.rb
69
+ - test/dummy/app/helpers/application_helper.rb
70
+ - test/dummy/app/views/layouts/application.html.erb
71
+ - test/dummy/config/application.rb
72
+ - test/dummy/config/boot.rb
73
+ - test/dummy/config/database.yml
74
+ - test/dummy/config/environment.rb
75
+ - test/dummy/config/environments/development.rb
76
+ - test/dummy/config/environments/production.rb
77
+ - test/dummy/config/environments/test.rb
78
+ - test/dummy/config/initializers/backtrace_silencers.rb
79
+ - test/dummy/config/initializers/inflections.rb
80
+ - test/dummy/config/initializers/mime_types.rb
81
+ - test/dummy/config/initializers/secret_token.rb
82
+ - test/dummy/config/initializers/session_store.rb
83
+ - test/dummy/config/initializers/wrap_parameters.rb
84
+ - test/dummy/config/locales/en.yml
85
+ - test/dummy/config/routes.rb
86
+ - test/dummy/config.ru
87
+ - test/dummy/public/404.html
88
+ - test/dummy/public/422.html
89
+ - test/dummy/public/500.html
90
+ - test/dummy/public/favicon.ico
91
+ - test/dummy/Rakefile
92
+ - test/dummy/README.rdoc
93
+ - test/dummy/script/rails
94
+ - test/fixtures/burlesque/admin_groups.yml
95
+ - test/fixtures/burlesque/admin_roles.yml
96
+ - test/fixtures/burlesque/groups.yml
97
+ - test/fixtures/burlesque/role_groups.yml
98
+ - test/fixtures/burlesque/roles.yml
99
+ - test/integration/navigation_test.rb
100
+ - test/test_helper.rb
101
+ - test/unit/burlesque/admin_group_test.rb
102
+ - test/unit/burlesque/admin_role_test.rb
103
+ - test/unit/burlesque/group_test.rb
104
+ - test/unit/burlesque/role_group_test.rb
105
+ - test/unit/burlesque/role_test.rb
49
106
  homepage: ''
50
107
  licenses: []
51
108
  post_install_message:
@@ -70,4 +127,45 @@ rubygems_version: 1.8.25
70
127
  signing_key:
71
128
  specification_version: 3
72
129
  summary: Roles y Grupos
73
- test_files: []
130
+ test_files:
131
+ - test/burlesque_test.rb
132
+ - test/dummy/app/assets/javascripts/application.js
133
+ - test/dummy/app/assets/stylesheets/application.css
134
+ - test/dummy/app/controllers/application_controller.rb
135
+ - test/dummy/app/helpers/application_helper.rb
136
+ - test/dummy/app/views/layouts/application.html.erb
137
+ - test/dummy/config/application.rb
138
+ - test/dummy/config/boot.rb
139
+ - test/dummy/config/database.yml
140
+ - test/dummy/config/environment.rb
141
+ - test/dummy/config/environments/development.rb
142
+ - test/dummy/config/environments/production.rb
143
+ - test/dummy/config/environments/test.rb
144
+ - test/dummy/config/initializers/backtrace_silencers.rb
145
+ - test/dummy/config/initializers/inflections.rb
146
+ - test/dummy/config/initializers/mime_types.rb
147
+ - test/dummy/config/initializers/secret_token.rb
148
+ - test/dummy/config/initializers/session_store.rb
149
+ - test/dummy/config/initializers/wrap_parameters.rb
150
+ - test/dummy/config/locales/en.yml
151
+ - test/dummy/config/routes.rb
152
+ - test/dummy/config.ru
153
+ - test/dummy/public/404.html
154
+ - test/dummy/public/422.html
155
+ - test/dummy/public/500.html
156
+ - test/dummy/public/favicon.ico
157
+ - test/dummy/Rakefile
158
+ - test/dummy/README.rdoc
159
+ - test/dummy/script/rails
160
+ - test/fixtures/burlesque/admin_groups.yml
161
+ - test/fixtures/burlesque/admin_roles.yml
162
+ - test/fixtures/burlesque/groups.yml
163
+ - test/fixtures/burlesque/role_groups.yml
164
+ - test/fixtures/burlesque/roles.yml
165
+ - test/integration/navigation_test.rb
166
+ - test/test_helper.rb
167
+ - test/unit/burlesque/admin_group_test.rb
168
+ - test/unit/burlesque/admin_role_test.rb
169
+ - test/unit/burlesque/group_test.rb
170
+ - test/unit/burlesque/role_group_test.rb
171
+ - test/unit/burlesque/role_test.rb
data/.gitignore DELETED
@@ -1,7 +0,0 @@
1
- *.gem
2
- .bundle
3
- Gemfile.lock
4
- pkg/*
5
-
6
- # Mac OS X
7
- .DS_Store
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in burlesque.gemspec
4
- gemspec
@@ -1,24 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "burlesque/version"
4
-
5
- Gem::Specification.new do |s|
6
- s.name = "burlesque"
7
- s.version = Burlesque::VERSION
8
- s.authors = ["mespina"]
9
- s.email = ["mespina.icc@gmail.com"]
10
- s.homepage = ""
11
- s.summary = "Roles y Grupos"
12
- s.description = "Crea estructura de roles y grupos para caulquier modelo, considera ademas las 3 tablas de join que pudiesen darse"
13
-
14
- s.rubyforge_project = "burlesque"
15
-
16
- s.files = `git ls-files`.split("\n")
17
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
- s.require_paths = ["lib"]
20
-
21
- # specify any dependencies here; for example:
22
- # s.add_development_dependency "rspec"
23
- # s.add_runtime_dependency "rest-client"
24
- end
@@ -1,25 +0,0 @@
1
- require 'active_support/concern'
2
-
3
- module Burlesque
4
- module AdminGroup
5
- extend ActiveSupport::Concern
6
-
7
- included do
8
- belongs_to :group
9
- belongs_to :adminable, polymorphic: true
10
-
11
- validates_uniqueness_of :group_id, scope: [:adminable_id, :adminable_type], message: I18n.t('errors.messages.group_taken')
12
-
13
- after_create :add_new_roles_to_admin
14
- end
15
-
16
- module InstanceMethods
17
- private
18
- def add_new_roles_to_admin
19
- group.roles.each do |role|
20
- adminable.roles << role unless adminable.roles.include? role
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,13 +0,0 @@
1
- require 'active_support/concern'
2
- module Burlesque
3
- module Authorization
4
- extend ActiveSupport::Concern
5
-
6
- included do
7
- belongs_to :role
8
- belongs_to :authorizable, polymorphic: true
9
-
10
- validates_uniqueness_of :role_id, scope: [:authorizable_id, :authorizable_type], message: I18n.t('errors.messages.role_taken')
11
- end
12
- end
13
- end
@@ -1,91 +0,0 @@
1
- require 'active_support/concern'
2
-
3
- module Burlesque
4
- module Group
5
- extend ActiveSupport::Concern
6
-
7
- included do
8
- has_many :role_groups
9
- has_many :roles, through: :role_groups, dependent: :destroy, after_remove: :remove_roles_from_admin
10
-
11
- has_many :admin_groups, dependent: :destroy
12
- # for has_many :admins relations see admins function
13
-
14
- attr_accessible :name, :role_ids, :internal
15
-
16
- validates :name, presence: true, uniqueness: true
17
- end
18
-
19
- module InstanceMethods
20
- # Public: Relacion a muchos usuarios
21
- #
22
- # Se usa esta funcion dado que la tabla de administrador es polimorfica.
23
- #
24
- # Returns los administradores que tienen el rol en cuestion.
25
- def admins
26
- admin_groups.map &:adminable
27
- end
28
-
29
- # Public: Indica si el grupo tiene un rol en particular.
30
- #
31
- # role - el rol que se quiere consultar, puede ser un Role o Role.name
32
- #
33
- # Returns Boolean.
34
- def role? role
35
- role_name = role.respond_to?(:name) ? role.name : role
36
- self.roles.map(&:name).include?(role_name.to_s)
37
- end
38
-
39
- # Public: Setea los roles que se indican al grupo.
40
- # Eliminando los roles que no esten en la lista.
41
- #
42
- # ids - id's de los Roles que se desean asignar destructivamente.
43
- #
44
- # Returns nothing.
45
- def role_ids=(ids)
46
- ids.each do |ri|
47
- if ri.presence
48
- role = ::Role.find(ri)
49
- self.roles << role unless self.roles.include? role
50
- end
51
- end
52
-
53
- to_deletes = []
54
- role_groups.each do |rg|
55
- role = rg.role
56
- to_deletes << role unless ids.include?(role.id.to_s) or ids.include?(role.id)
57
- end
58
-
59
- to_deletes.each do |role|
60
- self.roles.delete(role) if self.roles.include?(role)
61
- end
62
- end
63
-
64
- # Public: Permite agregar un grupo de Roles al Grupo
65
- # No elimina los roles que no esten en la lista, solo agrega los que no estan.
66
- #
67
- # new_roles - el arreglo de roles que se quiere agregar al grupo
68
- #
69
- # Returns nothing.
70
- def push_roles new_roles
71
- new_roles.each do |role|
72
- self.roles << role unless self.roles.include? role
73
- end
74
- end
75
-
76
- private
77
- # Public: Permite que al eliminar un rol de un grupo, tambien se modifiquen los roles de los administradores asociados a ese grupo.
78
- #
79
- # role - el rol que se elimino del grupo.
80
- #
81
- # Returns nothing.
82
- def remove_roles_from_admin role
83
- admins.each do |admin|
84
- if admin.authorizations.map(&:role_id).include?(role.id) and not admin.role_in_groups?(role.name)
85
- admin.authorizations.find_by_role_id(role.id).destroy
86
- end
87
- end
88
- end
89
- end
90
- end
91
- end