rolify 4.1.1 → 6.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 (55) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/activerecord.yml +27 -0
  3. data/.github/workflows/mongoid.yml +32 -0
  4. data/.hakiri.yml +1 -0
  5. data/Appraisals +42 -0
  6. data/CHANGELOG.rdoc +52 -8
  7. data/CONTRIBUTORS +11 -0
  8. data/Gemfile +6 -14
  9. data/LICENSE +1 -1
  10. data/README.md +72 -26
  11. data/Rakefile +6 -1
  12. data/gemfiles/activerecord_4.gemfile +20 -0
  13. data/gemfiles/activerecord_5.gemfile +22 -0
  14. data/gemfiles/activerecord_6.gemfile +22 -0
  15. data/gemfiles/mongoid_5.gemfile +20 -0
  16. data/gemfiles/mongoid_6.gemfile +19 -0
  17. data/gemfiles/mongoid_7.gemfile +20 -0
  18. data/lib/generators/active_record/rolify_generator.rb +45 -11
  19. data/lib/generators/active_record/templates/migration.rb +2 -3
  20. data/lib/generators/active_record/templates/model.rb +15 -0
  21. data/lib/generators/rolify/templates/initializer.rb +4 -1
  22. data/lib/rolify.rb +3 -4
  23. data/lib/rolify/adapters/active_record/resource_adapter.rb +14 -8
  24. data/lib/rolify/adapters/active_record/role_adapter.rb +40 -17
  25. data/lib/rolify/adapters/mongoid/role_adapter.rb +38 -8
  26. data/lib/rolify/configure.rb +4 -2
  27. data/lib/rolify/dynamic.rb +2 -16
  28. data/lib/rolify/finders.rb +6 -1
  29. data/lib/rolify/matchers.rb +2 -2
  30. data/lib/rolify/resource.rb +1 -1
  31. data/lib/rolify/role.rb +11 -2
  32. data/lib/rolify/version.rb +1 -1
  33. data/rolify.gemspec +15 -7
  34. data/spec/common_helper.rb +16 -0
  35. data/spec/generators/rolify/rolify_activerecord_generator_spec.rb +112 -6
  36. data/spec/generators_helper.rb +9 -2
  37. data/spec/rolify/config_spec.rb +2 -0
  38. data/spec/rolify/custom_spec.rb +1 -1
  39. data/spec/rolify/resource_spec.rb +6 -0
  40. data/spec/rolify/shared_examples/shared_examples_for_finders.rb +50 -32
  41. data/spec/rolify/shared_examples/shared_examples_for_has_role.rb +65 -0
  42. data/spec/rolify/utils_spec.rb +19 -0
  43. data/spec/spec_helper.rb +19 -6
  44. data/spec/support/adapters/active_record.rb +4 -3
  45. data/spec/support/adapters/mongoid.rb +19 -2
  46. data/spec/support/adapters/{mongoid.yml → mongoid_5.yml} +2 -2
  47. data/spec/support/adapters/mongoid_6.yml +6 -0
  48. data/spec/support/adapters/mongoid_7.yml +6 -0
  49. data/spec/support/adapters/utils/active_record.rb +12 -0
  50. data/spec/support/adapters/utils/mongoid.rb +13 -0
  51. metadata +60 -26
  52. data/.travis.yml +0 -25
  53. data/gemfiles/Gemfile.rails-3.2 +0 -27
  54. data/gemfiles/Gemfile.rails-4.0 +0 -33
  55. data/gemfiles/Gemfile.rails-4.1 +0 -37
@@ -1,6 +1,6 @@
1
1
  test:
2
- sessions:
2
+ clients:
3
3
  default:
4
4
  database: godfather
5
5
  hosts:
6
- - localhost:27017
6
+ - localhost:27017
@@ -0,0 +1,6 @@
1
+ test:
2
+ clients:
3
+ default:
4
+ database: godfather
5
+ hosts:
6
+ - localhost:27017
@@ -0,0 +1,6 @@
1
+ test:
2
+ clients:
3
+ default:
4
+ database: godfather
5
+ hosts:
6
+ - localhost:27017
@@ -0,0 +1,12 @@
1
+ require 'active_record'
2
+
3
+ def establish_connection
4
+ ActiveRecord::Base.establish_connection(
5
+ :adapter => "sqlite3",
6
+ :database => ":memory:"
7
+ )
8
+ end
9
+
10
+ def extend_rspec_with_activerecord_specific_matchers
11
+ RSpec::Matchers::BuiltIn::OperatorMatcher.register(ActiveRecord::Relation, '=~', RSpec::Matchers::BuiltIn::ContainExactly)
12
+ end
@@ -0,0 +1,13 @@
1
+ require 'mongoid'
2
+
3
+ def mongoid_major_version
4
+ Mongoid::VERSION.split('.').first.to_i
5
+ end
6
+
7
+ def mongoid_config
8
+ "spec/support/adapters/mongoid_#{mongoid_major_version}.yml"
9
+ end
10
+
11
+ def load_mongoid_config
12
+ Mongoid.load!(mongoid_config, :test)
13
+ end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rolify
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florent Monbillard
8
- autorequire:
8
+ - Wellington Cordeiro
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-08-06 00:00:00.000000000 Z
12
+ date: 2021-04-25 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: ammeter
@@ -16,67 +17,85 @@ dependencies:
16
17
  requirements:
17
18
  - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: 1.1.2
20
+ version: '1.1'
20
21
  type: :development
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - "~>"
25
26
  - !ruby/object:Gem::Version
26
- version: 1.1.2
27
+ version: '1.1'
28
+ - !ruby/object:Gem::Dependency
29
+ name: appraisal
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '2.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '2.0'
27
42
  - !ruby/object:Gem::Dependency
28
43
  name: bundler
29
44
  requirement: !ruby/object:Gem::Requirement
30
45
  requirements:
31
- - - ">="
46
+ - - "~>"
32
47
  - !ruby/object:Gem::Version
33
- version: 1.7.12
48
+ version: '2.0'
34
49
  type: :development
35
50
  prerelease: false
36
51
  version_requirements: !ruby/object:Gem::Requirement
37
52
  requirements:
38
- - - ">="
53
+ - - "~>"
39
54
  - !ruby/object:Gem::Version
40
- version: 1.7.12
55
+ version: '2.0'
41
56
  - !ruby/object:Gem::Dependency
42
57
  name: rake
43
58
  requirement: !ruby/object:Gem::Requirement
44
59
  requirements:
45
60
  - - "~>"
46
61
  - !ruby/object:Gem::Version
47
- version: 10.4.2
62
+ version: '12.3'
48
63
  type: :development
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
52
67
  - - "~>"
53
68
  - !ruby/object:Gem::Version
54
- version: 10.4.2
69
+ version: '12.3'
55
70
  - !ruby/object:Gem::Dependency
56
71
  name: rspec-rails
57
72
  requirement: !ruby/object:Gem::Requirement
58
73
  requirements:
59
- - - '='
74
+ - - "~>"
60
75
  - !ruby/object:Gem::Version
61
- version: 2.99.0
76
+ version: '3.8'
62
77
  type: :development
63
78
  prerelease: false
64
79
  version_requirements: !ruby/object:Gem::Requirement
65
80
  requirements:
66
- - - '='
81
+ - - "~>"
67
82
  - !ruby/object:Gem::Version
68
- version: 2.99.0
83
+ version: '3.8'
69
84
  description: Very simple Roles library without any authorization enforcement supporting
70
85
  scope on resource objects (instance or class). Supports ActiveRecord and Mongoid
71
86
  ORMs.
72
87
  email:
73
88
  - f.monbillard@gmail.com
89
+ - wellington@wellingtoncordeiro.com
74
90
  executables: []
75
91
  extensions: []
76
92
  extra_rdoc_files: []
77
93
  files:
94
+ - ".github/workflows/activerecord.yml"
95
+ - ".github/workflows/mongoid.yml"
78
96
  - ".gitignore"
79
- - ".travis.yml"
97
+ - ".hakiri.yml"
98
+ - Appraisals
80
99
  - CHANGELOG.rdoc
81
100
  - CONTRIBUTORS
82
101
  - Gemfile
@@ -84,12 +103,16 @@ files:
84
103
  - README.md
85
104
  - Rakefile
86
105
  - UPGRADE.rdoc
87
- - gemfiles/Gemfile.rails-3.2
88
- - gemfiles/Gemfile.rails-4.0
89
- - gemfiles/Gemfile.rails-4.1
106
+ - gemfiles/activerecord_4.gemfile
107
+ - gemfiles/activerecord_5.gemfile
108
+ - gemfiles/activerecord_6.gemfile
109
+ - gemfiles/mongoid_5.gemfile
110
+ - gemfiles/mongoid_6.gemfile
111
+ - gemfiles/mongoid_7.gemfile
90
112
  - lib/generators/active_record/rolify_generator.rb
91
113
  - lib/generators/active_record/templates/README
92
114
  - lib/generators/active_record/templates/migration.rb
115
+ - lib/generators/active_record/templates/model.rb
93
116
  - lib/generators/mongoid/rolify_generator.rb
94
117
  - lib/generators/mongoid/templates/README-mongoid
95
118
  - lib/generators/rolify/rolify_generator.rb
@@ -117,6 +140,7 @@ files:
117
140
  - lib/rolify/version.rb
118
141
  - rolify.gemspec
119
142
  - spec/README.rdoc
143
+ - spec/common_helper.rb
120
144
  - spec/generators/rolify/rolify_activerecord_generator_spec.rb
121
145
  - spec/generators/rolify/rolify_mongoid_generator_spec.rb
122
146
  - spec/generators_helper.rb
@@ -142,10 +166,15 @@ files:
142
166
  - spec/rolify/shared_examples/shared_examples_for_remove_role.rb
143
167
  - spec/rolify/shared_examples/shared_examples_for_roles.rb
144
168
  - spec/rolify/shared_examples/shared_examples_for_scopes.rb
169
+ - spec/rolify/utils_spec.rb
145
170
  - spec/spec_helper.rb
146
171
  - spec/support/adapters/active_record.rb
147
172
  - spec/support/adapters/mongoid.rb
148
- - spec/support/adapters/mongoid.yml
173
+ - spec/support/adapters/mongoid_5.yml
174
+ - spec/support/adapters/mongoid_6.yml
175
+ - spec/support/adapters/mongoid_7.yml
176
+ - spec/support/adapters/utils/active_record.rb
177
+ - spec/support/adapters/utils/mongoid.rb
149
178
  - spec/support/data.rb
150
179
  - spec/support/schema.rb
151
180
  - spec/support/stream_helpers.rb
@@ -153,7 +182,7 @@ homepage: https://github.com/RolifyCommunity/rolify
153
182
  licenses:
154
183
  - MIT
155
184
  metadata: {}
156
- post_install_message:
185
+ post_install_message:
157
186
  rdoc_options: []
158
187
  require_paths:
159
188
  - lib
@@ -161,20 +190,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
190
  requirements:
162
191
  - - ">="
163
192
  - !ruby/object:Gem::Version
164
- version: '0'
193
+ version: '2.5'
165
194
  required_rubygems_version: !ruby/object:Gem::Requirement
166
195
  requirements:
167
196
  - - ">="
168
197
  - !ruby/object:Gem::Version
169
198
  version: '0'
170
199
  requirements: []
171
- rubyforge_project: rolify
172
- rubygems_version: 2.4.5
173
- signing_key:
200
+ rubygems_version: 3.2.15
201
+ signing_key:
174
202
  specification_version: 4
175
203
  summary: Roles library with resource scoping
176
204
  test_files:
177
205
  - spec/README.rdoc
206
+ - spec/common_helper.rb
178
207
  - spec/generators/rolify/rolify_activerecord_generator_spec.rb
179
208
  - spec/generators/rolify/rolify_mongoid_generator_spec.rb
180
209
  - spec/generators_helper.rb
@@ -200,10 +229,15 @@ test_files:
200
229
  - spec/rolify/shared_examples/shared_examples_for_remove_role.rb
201
230
  - spec/rolify/shared_examples/shared_examples_for_roles.rb
202
231
  - spec/rolify/shared_examples/shared_examples_for_scopes.rb
232
+ - spec/rolify/utils_spec.rb
203
233
  - spec/spec_helper.rb
204
234
  - spec/support/adapters/active_record.rb
205
235
  - spec/support/adapters/mongoid.rb
206
- - spec/support/adapters/mongoid.yml
236
+ - spec/support/adapters/mongoid_5.yml
237
+ - spec/support/adapters/mongoid_6.yml
238
+ - spec/support/adapters/mongoid_7.yml
239
+ - spec/support/adapters/utils/active_record.rb
240
+ - spec/support/adapters/utils/mongoid.rb
207
241
  - spec/support/data.rb
208
242
  - spec/support/schema.rb
209
243
  - spec/support/stream_helpers.rb
data/.travis.yml DELETED
@@ -1,25 +0,0 @@
1
- language: ruby
2
- sudo: false
3
-
4
- rvm:
5
- - 2.2.2
6
- - 2.1.2
7
- - 2.0.0
8
-
9
-
10
- before_install:
11
- - gem update --system
12
- - gem install bundler
13
- - gem --version
14
-
15
- script: bundle exec rake
16
-
17
- env:
18
- - ADAPTER=active_record
19
- - ADAPTER=mongoid
20
-
21
- services: mongodb
22
-
23
- addons:
24
- code_climate:
25
- repo_token: 6bd8d374b120a5449b9a4b7dfda40cc0609dbade48a1b6655f04a9bc8de3a3ee
@@ -1,27 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- platforms :rbx do
4
- gem 'psych'
5
- gem 'rubinius-coverage', '~> 2.0'
6
- end
7
-
8
- group :test do
9
- gem 'railties', '~> 3.2', '< 4.0'
10
- case ENV['ADAPTER']
11
- when nil, 'active_record'
12
- gem 'activerecord-jdbcsqlite3-adapter', '>= 1.3.0.rc', :platform => 'jruby'
13
- #Fix sqlite3 version for rbx until rubinus is updated
14
- #https://github.com/travis-ci/travis-ci/issues/2006
15
- gem 'sqlite3', '1.3.8', :platform => 'ruby'
16
- gem 'activerecord', '~> 3.2.0', :require => 'active_record'
17
- when 'mongoid'
18
- gem 'mongoid', '>= 3.1'
19
- gem 'bson_ext', :platform => 'ruby'
20
- else
21
- raise "Unknown model adapter: #{ENV['ADAPTER']}"
22
- end
23
-
24
- gem 'coveralls', :require => false
25
- end
26
-
27
- gemspec :path => '../'
@@ -1,33 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- platforms :rbx do
4
- gem 'psych'
5
- gem 'rubinius-coverage', '~> 2.0'
6
- end
7
-
8
- group :test do
9
- gem 'railties', '~> 4.0.1', '< 4.1'
10
- gem 'ammeter'
11
- gem 'rake'
12
- gem 'rspec'
13
- gem 'its'
14
- gem 'rspec-rails'
15
- gem 'fuubar'
16
- gem 'bundler'
17
-
18
- gem 'coveralls', :require => false
19
-
20
- case ENV['ADAPTER']
21
- when nil, 'active_record'
22
- gem 'activerecord', '~> 4.0.1', :require => 'active_record'
23
- gem 'activerecord-jdbcsqlite3-adapter', '~> 1.3.5', :platform => 'jruby'
24
- #Fix sqlite3 version for rbx until rubinus is updated
25
- #https://github.com/travis-ci/travis-ci/issues/2006
26
- gem 'sqlite3', '1.3.8', :platform => 'ruby'
27
- when 'mongoid'
28
- gem 'mongoid', github: 'mongoid/mongoid'
29
- gem 'bson_ext', :platform => 'ruby'
30
- else
31
- raise "Unknown model adapter: #{ENV['ADAPTER']}"
32
- end
33
- end
@@ -1,37 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- platforms :rbx do
4
- gem 'psych'
5
- gem 'rubinius-coverage', '~> 2.0'
6
- end
7
-
8
- group :test do
9
- gem 'rails', github: 'rails/rails', branch: '4-1-stable'
10
- # There is currently an active record bug in Rails 4.1.0, this is a workaround until 4.1.1 is released
11
- # See https://github.com/rails/rails/issues/13648
12
- # Without this patch, Resource.with_role(:role, User.first).count throws an SQL syntax exception
13
- #gem 'railties', '~> 4.1.0'
14
- gem 'ammeter'
15
- gem 'rake'
16
- gem 'rspec'
17
- gem 'its'
18
- gem 'rspec-rails'
19
- gem 'fuubar'
20
- gem 'bundler'
21
-
22
- gem 'coveralls', :require => false
23
-
24
- case ENV['ADAPTER']
25
- when nil, 'active_record'
26
- gem 'activerecord', '~> 4.1.0', :require => 'active_record'
27
- gem 'activerecord-jdbcsqlite3-adapter', '~> 1.3.5', :platform => 'jruby'
28
- #Fix sqlite3 version for rbx until rubinus is updated
29
- #https://github.com/travis-ci/travis-ci/issues/2006
30
- gem 'sqlite3', '1.3.8', :platform => 'ruby'
31
- when 'mongoid'
32
- gem 'mongoid', github: 'mongoid/mongoid'
33
- gem 'bson_ext', :platform => 'ruby'
34
- else
35
- raise "Unknown model adapter: #{ENV['ADAPTER']}"
36
- end
37
- end