userlist-rails 0.6.2 → 1.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.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +3 -2
- data/CHANEGLOG.md +8 -2
- data/lib/userlist/rails/extensions/user.rb +8 -0
- data/lib/userlist/rails/railtie.rb +7 -1
- data/lib/userlist/rails/transform.rb +6 -2
- data/lib/userlist/rails/transforms/user.rb +5 -0
- data/lib/userlist/rails/version.rb +1 -1
- data/lib/userlist/rails.rb +13 -2
- data/userlist-rails.gemspec +1 -1
- metadata +5 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b37f407aa0fafadcfd37cece33e49bb05d04e2891b442717f167e0f0391f1c99
|
4
|
+
data.tar.gz: e69bde3e0e95de200a7196bf10c30abd5f68be569fec68af7ea756b542f36017
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b103ab51d54698367fe4d30b115dbc9afbaac61e6a35afa87790892a8f993c205dfc2bea47818c0719a84101743126c24aa1d2facc49fbf35fbc9d362493f49
|
7
|
+
data.tar.gz: c5882c73da7629605644ee62c8562d42fdb5339338020adbcfeec85143c3b98a281fafcfc342eeff16ec25cf317b466341f7fb1fd6749f34cb514e83258de386
|
data/.github/workflows/test.yml
CHANGED
@@ -5,13 +5,14 @@ jobs:
|
|
5
5
|
strategy:
|
6
6
|
matrix:
|
7
7
|
ruby:
|
8
|
-
- 2.7
|
9
8
|
- 3.0
|
10
9
|
- 3.1
|
11
10
|
- 3.2
|
11
|
+
- 3.3
|
12
|
+
- 3.4
|
12
13
|
runs-on: ubuntu-latest
|
13
14
|
steps:
|
14
|
-
- uses: actions/checkout@
|
15
|
+
- uses: actions/checkout@v4
|
15
16
|
- uses: ruby/setup-ruby@v1
|
16
17
|
with:
|
17
18
|
ruby-version: ${{ matrix.ruby }}
|
data/CHANEGLOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Userlist for Ruby on Rails Changelog
|
2
2
|
|
3
|
+
## Unreleased (main)
|
4
|
+
|
5
|
+
## v1.0.0 (2025-04-08)
|
6
|
+
|
7
|
+
- Fix detection of relationships when there are multiple associations between users and companies
|
8
|
+
- Register Userlist::DeliveryMethod when it's available
|
9
|
+
|
3
10
|
## v0.6.2 (2023-11-30)
|
4
11
|
|
5
12
|
- Upgrades dependencies
|
@@ -11,7 +18,7 @@
|
|
11
18
|
## v0.6.0 (2021-05-14)
|
12
19
|
|
13
20
|
- Improves handling of relationships across different setups (1:1, 1:n, and n:m)
|
14
|
-
- Automatically call
|
21
|
+
- Automatically call userlist\_\* methods on models in transforms
|
15
22
|
|
16
23
|
## v0.5.3 (2021-04-15)
|
17
24
|
|
@@ -48,7 +55,6 @@
|
|
48
55
|
- Use Userlist::Push::Resources to transform payloads
|
49
56
|
- Upgrades dependencies
|
50
57
|
|
51
|
-
|
52
58
|
## v0.2.2 (2019-03-18)
|
53
59
|
|
54
60
|
- Adds support for Ruby 2.2
|
@@ -17,6 +17,14 @@ module Userlist
|
|
17
17
|
base.extend(ClassMethods)
|
18
18
|
end
|
19
19
|
|
20
|
+
def identifier
|
21
|
+
super if !payload.respond_to?(:destroyed?) || !payload.destroyed?
|
22
|
+
end
|
23
|
+
|
24
|
+
def identifiers
|
25
|
+
super if payload.respond_to?(:destroyed?) && payload.destroyed?
|
26
|
+
end
|
27
|
+
|
20
28
|
def push?
|
21
29
|
super && (!payload.respond_to?(:push?) || payload.push?)
|
22
30
|
end
|
@@ -36,7 +36,7 @@ module Userlist
|
|
36
36
|
end
|
37
37
|
|
38
38
|
initializer 'userlist.helpers' do
|
39
|
-
ActiveSupport.on_load
|
39
|
+
ActiveSupport.on_load(:action_view) do
|
40
40
|
include Userlist::Rails::Helpers
|
41
41
|
end
|
42
42
|
end
|
@@ -75,6 +75,12 @@ module Userlist
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
78
|
+
|
79
|
+
initializer 'userlist.delivery_method', before: 'action_mailer.set_configs' do
|
80
|
+
ActiveSupport.on_load(:action_mailer) do
|
81
|
+
ActionMailer::Base.add_delivery_method(:userlist, Userlist::DeliveryMethod) if defined?(Userlist::DeliveryMethod)
|
82
|
+
end
|
83
|
+
end
|
78
84
|
end
|
79
85
|
end
|
80
86
|
end
|
@@ -27,11 +27,15 @@ module Userlist
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def push?
|
30
|
-
|
30
|
+
!model.respond_to?(:userlist_push?) || model.userlist_push?
|
31
31
|
end
|
32
32
|
|
33
33
|
def delete?
|
34
|
-
|
34
|
+
!model.respond_to?(:userlist_delete?) || model.userlist_delete?
|
35
|
+
end
|
36
|
+
|
37
|
+
def destroyed?
|
38
|
+
model.try(:destroyed?)
|
35
39
|
end
|
36
40
|
|
37
41
|
private
|
@@ -12,6 +12,7 @@ module Userlist
|
|
12
12
|
:identifier,
|
13
13
|
:properties,
|
14
14
|
:relationships,
|
15
|
+
:identifiers,
|
15
16
|
:email,
|
16
17
|
:signed_up_at
|
17
18
|
]
|
@@ -33,6 +34,10 @@ module Userlist
|
|
33
34
|
model.try(:created_at)
|
34
35
|
end
|
35
36
|
|
37
|
+
def default_identifiers
|
38
|
+
[{ scope: 'custom', identifier: self[:identifier] }]
|
39
|
+
end
|
40
|
+
|
36
41
|
private
|
37
42
|
|
38
43
|
def build_relationship(record)
|
data/lib/userlist/rails.rb
CHANGED
@@ -11,6 +11,12 @@ module Userlist
|
|
11
11
|
:userlist_user
|
12
12
|
].freeze
|
13
13
|
|
14
|
+
REFLECTION_PRIORITY = [
|
15
|
+
ActiveRecord::Reflection::ThroughReflection,
|
16
|
+
ActiveRecord::Reflection::HasManyReflection,
|
17
|
+
ActiveRecord::Reflection::HasOneReflection
|
18
|
+
].freeze
|
19
|
+
|
14
20
|
def self.with_current_user(user)
|
15
21
|
Thread.current[:userlist_current_user] = user
|
16
22
|
yield
|
@@ -56,7 +62,10 @@ module Userlist
|
|
56
62
|
def self.find_reflection(from, to)
|
57
63
|
return unless from && to
|
58
64
|
|
59
|
-
from
|
65
|
+
from
|
66
|
+
.reflect_on_all_associations
|
67
|
+
.sort_by { |r| REFLECTION_PRIORITY.index(r.class) || REFLECTION_PRIORITY.length }
|
68
|
+
.find { |r| r.class_name == to.to_s }
|
60
69
|
end
|
61
70
|
|
62
71
|
def self.find_association_between(from, to)
|
@@ -75,11 +84,13 @@ module Userlist
|
|
75
84
|
model.instance_variable_set(:@userlist_callbacks_registered, true)
|
76
85
|
end
|
77
86
|
|
78
|
-
def self.setup_callback(type, model, scope,
|
87
|
+
def self.setup_callback(type, model, scope, default_method)
|
79
88
|
return unless callback_method = [:after_commit, :"after_#{type}"].find { |m| model.respond_to?(m) }
|
80
89
|
|
81
90
|
callback = lambda do
|
82
91
|
begin
|
92
|
+
method = try(:"userlist_#{type}_behavior") || default_method
|
93
|
+
|
83
94
|
relation = Userlist::Push.public_send(scope)
|
84
95
|
relation.public_send(method, self)
|
85
96
|
rescue Userlist::Error => e
|
data/userlist-rails.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.add_dependency 'activesupport', '>= 5.0'
|
25
25
|
spec.add_dependency 'railties', '>= 5.0'
|
26
|
-
spec.add_dependency 'userlist', '~>
|
26
|
+
spec.add_dependency 'userlist', '~> 1.0'
|
27
27
|
|
28
28
|
spec.metadata = { 'rubygems_mfa_required' => 'true' }
|
29
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: userlist-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benedikt Deicke
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-04-08 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: activesupport
|
@@ -44,21 +43,14 @@ dependencies:
|
|
44
43
|
requirements:
|
45
44
|
- - "~>"
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: 0.8.1
|
46
|
+
version: '1.0'
|
51
47
|
type: :runtime
|
52
48
|
prerelease: false
|
53
49
|
version_requirements: !ruby/object:Gem::Requirement
|
54
50
|
requirements:
|
55
51
|
- - "~>"
|
56
52
|
- !ruby/object:Gem::Version
|
57
|
-
version: '0
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 0.8.1
|
61
|
-
description:
|
53
|
+
version: '1.0'
|
62
54
|
email:
|
63
55
|
- benedikt@userlist.com
|
64
56
|
executables: []
|
@@ -102,7 +94,6 @@ licenses:
|
|
102
94
|
- MIT
|
103
95
|
metadata:
|
104
96
|
rubygems_mfa_required: 'true'
|
105
|
-
post_install_message:
|
106
97
|
rdoc_options: []
|
107
98
|
require_paths:
|
108
99
|
- lib
|
@@ -117,8 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
108
|
- !ruby/object:Gem::Version
|
118
109
|
version: '0'
|
119
110
|
requirements: []
|
120
|
-
rubygems_version: 3.
|
121
|
-
signing_key:
|
111
|
+
rubygems_version: 3.6.2
|
122
112
|
specification_version: 4
|
123
113
|
summary: Rails integration for Userlist
|
124
114
|
test_files: []
|