rolify 4.1.1 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
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