consent 2.0.0 → 2.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.
data/lib/consent/dsl.rb CHANGED
@@ -14,14 +14,6 @@ module Consent
14
14
  DSL.build(@subject, @defaults.merge(new_defaults), &block)
15
15
  end
16
16
 
17
- # rubocop:disable Lint/UnusedBlockArgument, Security/Eval
18
- def eval_view(key, label, collection_conditions)
19
- view key, label do |user|
20
- eval(collection_conditions)
21
- end
22
- end
23
- # rubocop:enable Lint/UnusedBlockArgument, Security/Eval
24
-
25
17
  def view(key, label, instance = nil, collection = nil, &block)
26
18
  collection ||= block
27
19
  @subject.views[key] = View.new(key, label, instance, collection)
@@ -50,7 +50,7 @@ module Consent
50
50
 
51
51
  def failure_message_base(failure) # rubocop:disable Metrics/MethodLength
52
52
  message = format(
53
- 'expected %<skey>s (%<sclass>s) %<fail>s provide view %<view>s with`\
53
+ 'expected %<skey>s (%<sclass>s) %<fail>s provide view %<view>s with`
54
54
  `%<conditions>p, but',
55
55
  skey: @subject_key.to_s, sclass: @subject_key.class,
56
56
  view: @view_key, conditions: @conditions, fail: failure
@@ -63,8 +63,7 @@ module Consent
63
63
  )
64
64
  else
65
65
  actual_views = Consent.find_subjects(@subject_key)
66
- .map(&:views)
67
- .map(&:keys).flatten
66
+ .flat_map { |subject| subject.views.keys }
68
67
  format(
69
68
  "%<message>s available views are %<views>p",
70
69
  message: message, views: actual_views
@@ -3,6 +3,16 @@
3
3
  module Consent
4
4
  # Coder for ability subjects
5
5
  module SubjectCoder
6
+ module Model
7
+ def self.included(base)
8
+ if Gem::Version.new(Rails.version) >= Gem::Version.new("7.1")
9
+ base.serialize :subject, coder: Consent::SubjectCoder
10
+ else
11
+ base.serialize :subject, Consent::SubjectCoder
12
+ end
13
+ end
14
+ end
15
+
6
16
  module_function
7
17
 
8
18
  # Loads the serialized key (snake case string) as a valid
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Consent
4
- VERSION = "2.0.0"
4
+ VERSION = "2.2.0"
5
5
  end
data/mkdocs.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  site_name: Consent
2
2
  nav:
3
3
  - "Home": "README.md"
4
+ - "Changelog": "CHANGELOG.md"
4
5
  plugins:
5
6
  - techdocs-core
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: consent
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Palhares
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-02 00:00:00.000000000 Z
11
+ date: 2025-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cancancan
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: appraisal
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 2.5.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 2.5.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +94,34 @@ dependencies:
80
94
  - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '7.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 0.14.2
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 0.14.2
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: pry-byebug
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - '='
88
116
  - !ruby/object:Gem::Version
89
- version: 3.9.0
117
+ version: 3.10.1
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - '='
95
123
  - !ruby/object:Gem::Version
96
- version: 3.9.0
124
+ version: 3.10.1
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: rake
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +156,14 @@ dependencies:
128
156
  requirements:
129
157
  - - "~>"
130
158
  - !ruby/object:Gem::Version
131
- version: 5.1.2
159
+ version: 6.1.5
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - "~>"
137
165
  - !ruby/object:Gem::Version
138
- version: 5.1.2
166
+ version: 6.1.5
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: rubocop-powerhome
141
169
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +184,14 @@ dependencies:
156
184
  requirements:
157
185
  - - "~>"
158
186
  - !ruby/object:Gem::Version
159
- version: 1.4.2
187
+ version: 1.7.3
160
188
  type: :development
161
189
  prerelease: false
162
190
  version_requirements: !ruby/object:Gem::Requirement
163
191
  requirements:
164
192
  - - "~>"
165
193
  - !ruby/object:Gem::Version
166
- version: 1.4.2
194
+ version: 1.7.3
167
195
  description: Consent permission based authorization
168
196
  email:
169
197
  - chjunior@gmail.com
@@ -174,7 +202,9 @@ files:
174
202
  - ".gitignore"
175
203
  - ".rubocop.yml"
176
204
  - ".rubocop_todo.yml"
205
+ - Appraisals
177
206
  - Gemfile
207
+ - Gemfile.lock
178
208
  - Rakefile
179
209
  - app/models/concerns/consent/authorizable.rb
180
210
  - app/models/consent/application_record.rb
@@ -189,6 +219,15 @@ files:
189
219
  - doc/dependency_decisions.yml
190
220
  - docs/CHANGELOG.md
191
221
  - docs/README.md
222
+ - gemfiles/.bundle/config
223
+ - gemfiles/rails_6_1.gemfile
224
+ - gemfiles/rails_6_1.gemfile.lock
225
+ - gemfiles/rails_7_0.gemfile
226
+ - gemfiles/rails_7_0.gemfile.lock
227
+ - gemfiles/rails_7_1.gemfile
228
+ - gemfiles/rails_7_1.gemfile.lock
229
+ - gemfiles/rails_7_2.gemfile
230
+ - gemfiles/rails_7_2.gemfile.lock
192
231
  - lib/consent.rb
193
232
  - lib/consent/ability.rb
194
233
  - lib/consent/action.rb
@@ -215,7 +254,7 @@ licenses:
215
254
  - MIT
216
255
  metadata:
217
256
  rubygems_mfa_required: 'true'
218
- post_install_message:
257
+ post_install_message:
219
258
  rdoc_options: []
220
259
  require_paths:
221
260
  - lib
@@ -223,15 +262,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
223
262
  requirements:
224
263
  - - ">="
225
264
  - !ruby/object:Gem::Version
226
- version: '2.7'
265
+ version: '3.0'
227
266
  required_rubygems_version: !ruby/object:Gem::Requirement
228
267
  requirements:
229
268
  - - ">="
230
269
  - !ruby/object:Gem::Version
231
270
  version: '0'
232
271
  requirements: []
233
- rubygems_version: 3.3.7
234
- signing_key:
272
+ rubygems_version: 3.5.22
273
+ signing_key:
235
274
  specification_version: 4
236
275
  summary: Consent permission based authorization
237
276
  test_files: []