rabarber 3.0.2 → 4.0.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 577541d4928a55318bf4358aab22e46b094b873172c78ab3a5cdcd5c48e2fd1f
4
- data.tar.gz: 8705e8907a36e9cc811784c951011b448fe37ec5cd5a63b70d263589af035164
3
+ metadata.gz: 44b43bb0c28c871575c4e723415cd3df577a2fa715b07178c4a8a21102183791
4
+ data.tar.gz: 7cf707c61a560d271345162834a0557f51519a0fbfe9d1e81eb3d74cfb401cff
5
5
  SHA512:
6
- metadata.gz: b35a496964096d6ce0538f2d84d43786c86fb367b03afa1a8604cd9e9225f015266fb2d94c4df01513c07cbb1e639851f858fb12bcded98646718a586218fd8a
7
- data.tar.gz: 8bab47c3abf70362eecd13237eca64db16c3b7a0bae06334efe8c7ba3e0f1cb48b39a1c443ce5456957ef643c7256693a8ac0e0d2ecbabb3b701463a00120dc9
6
+ metadata.gz: '09d9897bdd2df705e37bf9800a10f30904b102d8d33773e35cec4ed0c7ceebeca78fc47ce038cc6b617f698ee89cebc7d34da7d0cd3ef67685cc2d61ed022ebb'
7
+ data.tar.gz: 610d8700782cc500bfa83d62de0816c2b6253f6fcb42d5c233213675da9e4c7d9b0b7e9b07287514d48cae68b0cc56440cb0e225147487f2f15d02ea5a8e7aab
data/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## v4.0.1
2
+
3
+ ### Bugs:
4
+
5
+ - Resolved an issue preventing the gem from being used with rbs_rails
6
+
7
+ ## v4.0.0
8
+
9
+ ### Breaking:
10
+
11
+ - Dropped support for Ruby 3.0
12
+ - Dropped support for Rails 6.1
13
+
14
+ ### Misc:
15
+
16
+ - Added support for Rails 8.0
17
+
1
18
  ## v3.0.2
2
19
 
3
20
  ### Misc:
@@ -38,8 +38,8 @@ module Rabarber
38
38
  def human_context
39
39
  case context
40
40
  in { context_type: nil, context_id: nil } then "Global"
41
- in { context_type: context_type, context_id: nil } then context_type
42
- in { context_type: context_type, context_id: context_id } then "#{context_type}##{context_id}"
41
+ in { context_type:, context_id: nil } then context_type
42
+ in { context_type:, context_id: } then "#{context_type}##{context_id}"
43
43
  else raise "Unexpected context: #{context}"
44
44
  end
45
45
  end
@@ -10,7 +10,7 @@ module Rabarber
10
10
  end
11
11
 
12
12
  def roleable_roles(context: nil)
13
- roleable.roles(context: context)
13
+ roleable.roles(context:)
14
14
  end
15
15
  end
16
16
  end
@@ -5,11 +5,11 @@ module Rabarber
5
5
  include Rabarber::Core::Roleable
6
6
 
7
7
  def visible_to(*roles, context: nil, &block)
8
- capture(&block) if roleable.has_role?(*roles, context: context)
8
+ capture(&block) if roleable.has_role?(*roles, context:)
9
9
  end
10
10
 
11
11
  def hidden_from(*roles, context: nil, &block)
12
- capture(&block) unless roleable.has_role?(*roles, context: context)
12
+ capture(&block) unless roleable.has_role?(*roles, context:)
13
13
  end
14
14
  end
15
15
  end
@@ -85,7 +85,7 @@ module Rabarber
85
85
  private
86
86
 
87
87
  def create_new_roles(role_names, context:)
88
- new_roles = role_names - Rabarber::Role.names(context: context)
88
+ new_roles = role_names - Rabarber::Role.names(context:)
89
89
  new_roles.each { |role_name| Rabarber::Role.create!(name: role_name, **context) }
90
90
  end
91
91
 
@@ -98,7 +98,7 @@ module Rabarber
98
98
  end
99
99
 
100
100
  def delete_roleable_cache(context:)
101
- Rabarber::Core::Cache.delete(roleable_id, context: context)
101
+ Rabarber::Core::Cache.delete(roleable_id, context:)
102
102
  end
103
103
 
104
104
  def roleable_id
@@ -9,7 +9,7 @@ module Rabarber
9
9
  format: { with: Rabarber::Input::Role::REGEX },
10
10
  strict: true
11
11
 
12
- has_and_belongs_to_many :roleables, join_table: "rabarber_roles_roleables"
12
+ before_destroy :delete_assignments
13
13
 
14
14
  class << self
15
15
  def names(context: nil)
@@ -20,9 +20,9 @@ module Rabarber
20
20
  name = process_role_name(name)
21
21
  processed_context = process_context(context)
22
22
 
23
- return false if exists?(name: name, **processed_context)
23
+ return false if exists?(name:, **processed_context)
24
24
 
25
- !!create!(name: name, **processed_context)
25
+ !!create!(name:, **processed_context)
26
26
  end
27
27
 
28
28
  def rename(old_name, new_name, context: nil, force: false)
@@ -30,11 +30,11 @@ module Rabarber
30
30
  role = find_by(name: process_role_name(old_name), **processed_context)
31
31
  name = process_role_name(new_name)
32
32
 
33
- return false if !role || exists?(name: name, **processed_context) || assigned_to_roleables(role).any? && !force
33
+ return false if !role || exists?(name:, **processed_context) || assigned_to_roleables(role).any? && !force
34
34
 
35
35
  delete_roleables_cache(role, context: processed_context)
36
36
 
37
- role.update!(name: name)
37
+ role.update!(name:)
38
38
  end
39
39
 
40
40
  def remove(name, context: nil, force: false)
@@ -57,7 +57,7 @@ module Rabarber
57
57
  private
58
58
 
59
59
  def delete_roleables_cache(role, context:)
60
- Rabarber::Core::Cache.delete(*assigned_to_roleables(role), context: context)
60
+ Rabarber::Core::Cache.delete(*assigned_to_roleables(role), context:)
61
61
  end
62
62
 
63
63
  def assigned_to_roleables(role)
@@ -76,5 +76,15 @@ module Rabarber
76
76
  Rabarber::Input::Context.new(context).process
77
77
  end
78
78
  end
79
+
80
+ private
81
+
82
+ def delete_assignments
83
+ ActiveRecord::Base.connection.execute(
84
+ ActiveRecord::Base.sanitize_sql(
85
+ ["DELETE FROM rabarber_roles_roleables WHERE role_id = ?", id]
86
+ )
87
+ )
88
+ end
79
89
  end
80
90
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rabarber
4
- VERSION = "3.0.2"
4
+ VERSION = "4.0.1"
5
5
  end
data/rabarber.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.metadata["rubygems_mfa_required"] = "true"
15
15
  spec.summary = "Simple role-based authorization library for Ruby on Rails"
16
16
  spec.license = "MIT"
17
- spec.required_ruby_version = ">= 3.0", "< 3.4"
17
+ spec.required_ruby_version = ">= 3.1", "< 3.4"
18
18
 
19
19
  spec.files = [
20
20
  "rabarber.gemspec", "README.md", "CHANGELOG.md", "LICENSE.txt"
@@ -22,5 +22,5 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_dependency "rails", ">= 6.1", "< 7.3"
25
+ spec.add_dependency "rails", ">= 7.0", "< 8.1"
26
26
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rabarber
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - enjaku4
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-10-02 00:00:00.000000000 Z
12
+ date: 2024-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -17,20 +17,20 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '6.1'
20
+ version: '7.0'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '7.3'
23
+ version: '8.1'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: '6.1'
30
+ version: '7.0'
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '7.3'
33
+ version: '8.1'
34
34
  description:
35
35
  email:
36
36
  - rabarber_gem@icloud.com
@@ -90,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
90
  requirements:
91
91
  - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: '3.0'
93
+ version: '3.1'
94
94
  - - "<"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '3.4'
@@ -100,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
102
  requirements: []
103
- rubygems_version: 3.2.33
103
+ rubygems_version: 3.3.27
104
104
  signing_key:
105
105
  specification_version: 4
106
106
  summary: Simple role-based authorization library for Ruby on Rails