esse-active_record 0.3.8 → 0.3.9

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: 9baa0f1dad618ca3520ad5cfefe4fb22d42e1411c56b7ff168e4503a1d720e75
4
- data.tar.gz: 2d7c3aa59292b675600b556ddb07537bde6f5d833fc54c0e582f2886fc9f9ecc
3
+ metadata.gz: 9be3efa18e5885d347b2c7d0c4e3a375fdeb02c3ecf9248aa23f59d01ad8a2d8
4
+ data.tar.gz: 922663253cb49433ab91d573b958c544738850c4ab3b958672327402d85a4c5d
5
5
  SHA512:
6
- metadata.gz: a61ef5cd41fc8a4f2b86819f101c47a88544f7b446467ab1a5fed06e77809684cc04a784ad4699fc36ab3feb4553c0879d0237954db423cfe1b3ac0067647fa0
7
- data.tar.gz: 4984a7e20c4fd4d359682864d24b543a6e12759e463cbee048f658b3abdf3a27e8d5a8ae434ddd28820f45e699c05c4138de33e86bbae9c2683954005601a4ce
6
+ metadata.gz: 79578e04aa0b40bb4d48f8765dff744795fcd5d50d6019f5ad0cd2dcc96653369790fc5a94f8d8ae84d8eea7ddce59084805f71391522b7e5b9b6dbd9696f5bf
7
+ data.tar.gz: 5820f60abd22b193966151cc08f877bf0c0f2b9227fc149020f0e00c344b7f3a6afe83c17b401effed6492dc6b3bf0aa4eccb77d133cef69d28d8fe050b60a94
data/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## 0.3.9 - 2025-01-21
8
+ * Move hooks to a separate gem, [esse-hooks](https://github.com/marcosgz/esse-hooks)
9
+ * Add rails 8 support
10
+
7
11
  ## 0.3.8 - 2024-08-08
8
12
  * Add `connect_with:` option to the collection definition.
9
13
  * Adjust UpdateLazyAttribute callback to not use keyword arguments for better compatibility with older versions of Ruby.
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
7
7
  gem 'esse', '~> 0.3.4'
8
8
  gem 'sqlite3', '~> 1.7.3'
9
9
  gem 'activerecord', '~> 5.2'
10
- gem 'esse-rspec', '~> 0.0.6'
10
+ gem 'esse-rspec'
11
11
  gem 'elasticsearch', '~> 7.17', '>= 7.17.10'
12
12
 
13
13
  # Specify your gem's dependencies in esse-active_record.gemspec
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- esse-active_record (0.3.8)
5
- activerecord (>= 4.2, < 8)
4
+ esse-active_record (0.3.9)
5
+ activerecord (>= 4.2)
6
6
  esse (>= 0.3.0)
7
+ esse-hooks
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -39,9 +40,11 @@ GEM
39
40
  elasticsearch-transport (7.17.10)
40
41
  faraday (>= 1, < 3)
41
42
  multi_json
42
- esse (0.3.4)
43
+ esse (0.3.5)
43
44
  multi_json
44
45
  thor (>= 0.19)
46
+ esse-hooks (0.0.1)
47
+ esse (>= 0.3.0)
45
48
  esse-rspec (0.0.6)
46
49
  esse (>= 0.2.4)
47
50
  rspec (>= 3)
@@ -122,7 +125,7 @@ GEM
122
125
  standard-performance (1.0.1)
123
126
  lint_roller (~> 1.0)
124
127
  rubocop-performance (~> 1.16.0)
125
- thor (1.3.1)
128
+ thor (1.3.2)
126
129
  thread_safe (0.3.6)
127
130
  tzinfo (1.2.11)
128
131
  thread_safe (~> 0.1)
@@ -144,7 +147,7 @@ DEPENDENCIES
144
147
  elasticsearch (~> 7.17, >= 7.17.10)
145
148
  esse (~> 0.3.4)
146
149
  esse-active_record!
147
- esse-rspec (~> 0.0.6)
150
+ esse-rspec
148
151
  pry
149
152
  rake
150
153
  rspec
@@ -157,4 +160,4 @@ DEPENDENCIES
157
160
  yard
158
161
 
159
162
  BUNDLED WITH
160
- 2.3.22
163
+ 2.3.26
data/ci/Gemfile.rails-5.2 CHANGED
@@ -4,7 +4,7 @@ source "https://rubygems.org"
4
4
 
5
5
  gem 'sqlite3', '~> 1.3.6'
6
6
  gem 'activerecord', '~> 5.2'
7
- gem 'esse-rspec', '~> 0.0.6'
7
+ gem 'esse-rspec'
8
8
  gem 'elasticsearch', '~> 7.17', '>= 7.17.10'
9
9
 
10
10
  gemspec path: ".."
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- esse-active_record (0.3.8)
5
- activerecord (>= 4.2, < 8)
4
+ esse-active_record (0.3.9)
5
+ activerecord (>= 4.2)
6
6
  esse (>= 0.3.0)
7
+ esse-hooks
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -45,6 +46,8 @@ GEM
45
46
  esse (0.3.4)
46
47
  multi_json
47
48
  thor (>= 0.19)
49
+ esse-hooks (0.0.1)
50
+ esse (>= 0.3.0)
48
51
  esse-rspec (0.0.6)
49
52
  esse (>= 0.2.4)
50
53
  rspec (>= 3)
@@ -143,7 +146,7 @@ DEPENDENCIES
143
146
  dotenv
144
147
  elasticsearch (~> 7.17, >= 7.17.10)
145
148
  esse-active_record!
146
- esse-rspec (~> 0.0.6)
149
+ esse-rspec
147
150
  pry
148
151
  rake
149
152
  rspec
@@ -156,4 +159,4 @@ DEPENDENCIES
156
159
  yard
157
160
 
158
161
  BUNDLED WITH
159
- 2.3.22
162
+ 2.3.26
data/ci/Gemfile.rails-6.0 CHANGED
@@ -4,7 +4,7 @@ source "https://rubygems.org"
4
4
 
5
5
  gem 'sqlite3'
6
6
  gem 'activerecord', '~> 6.0'
7
- gem 'esse-rspec', '~> 0.0.6'
7
+ gem 'esse-rspec'
8
8
  gem 'elasticsearch', '~> 7.17', '>= 7.17.10'
9
9
 
10
10
  gemspec path: ".."
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- esse-active_record (0.3.8)
5
- activerecord (>= 4.2, < 8)
4
+ esse-active_record (0.3.9)
5
+ activerecord (>= 4.2)
6
6
  esse (>= 0.3.0)
7
+ esse-hooks
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -44,6 +45,8 @@ GEM
44
45
  esse (0.3.4)
45
46
  multi_json
46
47
  thor (>= 0.19)
48
+ esse-hooks (0.0.1)
49
+ esse (>= 0.3.0)
47
50
  esse-rspec (0.0.6)
48
51
  esse (>= 0.2.4)
49
52
  rspec (>= 3)
@@ -144,7 +147,7 @@ DEPENDENCIES
144
147
  dotenv
145
148
  elasticsearch (~> 7.17, >= 7.17.10)
146
149
  esse-active_record!
147
- esse-rspec (~> 0.0.6)
150
+ esse-rspec
148
151
  pry
149
152
  rake
150
153
  rspec
@@ -157,4 +160,4 @@ DEPENDENCIES
157
160
  yard
158
161
 
159
162
  BUNDLED WITH
160
- 2.3.22
163
+ 2.3.26
data/ci/Gemfile.rails-6.1 CHANGED
@@ -4,7 +4,7 @@ source "https://rubygems.org"
4
4
 
5
5
  gem 'sqlite3'
6
6
  gem 'activerecord', '~> 6.1'
7
- gem 'esse-rspec', '~> 0.0.6'
7
+ gem 'esse-rspec'
8
8
  gem 'elasticsearch', '~> 7.17', '>= 7.17.10'
9
9
 
10
10
  gemspec path: ".."
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- esse-active_record (0.3.8)
5
- activerecord (>= 4.2, < 8)
4
+ esse-active_record (0.3.9)
5
+ activerecord (>= 4.2)
6
6
  esse (>= 0.3.0)
7
+ esse-hooks
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -44,6 +45,8 @@ GEM
44
45
  esse (0.3.4)
45
46
  multi_json
46
47
  thor (>= 0.19)
48
+ esse-hooks (0.0.1)
49
+ esse (>= 0.3.0)
47
50
  esse-rspec (0.0.6)
48
51
  esse (>= 0.2.4)
49
52
  rspec (>= 3)
@@ -144,7 +147,7 @@ DEPENDENCIES
144
147
  dotenv
145
148
  elasticsearch (~> 7.17, >= 7.17.10)
146
149
  esse-active_record!
147
- esse-rspec (~> 0.0.6)
150
+ esse-rspec
148
151
  pry
149
152
  rake
150
153
  rspec
@@ -157,4 +160,4 @@ DEPENDENCIES
157
160
  yard
158
161
 
159
162
  BUNDLED WITH
160
- 2.3.22
163
+ 2.3.26
data/ci/Gemfile.rails-7.0 CHANGED
@@ -4,7 +4,7 @@ source "https://rubygems.org"
4
4
 
5
5
  gem 'sqlite3'
6
6
  gem 'activerecord', '~> 6.0'
7
- gem 'esse-rspec', '~> 0.0.6'
7
+ gem 'esse-rspec'
8
8
  gem 'elasticsearch', '~> 7.17', '>= 7.17.10'
9
9
 
10
10
  gemspec path: ".."
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- esse-active_record (0.3.8)
5
- activerecord (>= 4.2, < 8)
4
+ esse-active_record (0.3.9)
5
+ activerecord (>= 4.2)
6
6
  esse (>= 0.3.0)
7
+ esse-hooks
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -44,6 +45,8 @@ GEM
44
45
  esse (0.3.4)
45
46
  multi_json
46
47
  thor (>= 0.19)
48
+ esse-hooks (0.0.1)
49
+ esse (>= 0.3.0)
47
50
  esse-rspec (0.0.6)
48
51
  esse (>= 0.2.4)
49
52
  rspec (>= 3)
@@ -144,7 +147,7 @@ DEPENDENCIES
144
147
  dotenv
145
148
  elasticsearch (~> 7.17, >= 7.17.10)
146
149
  esse-active_record!
147
- esse-rspec (~> 0.0.6)
150
+ esse-rspec
148
151
  pry
149
152
  rake
150
153
  rspec
@@ -157,4 +160,4 @@ DEPENDENCIES
157
160
  yard
158
161
 
159
162
  BUNDLED WITH
160
- 2.3.22
163
+ 2.3.26
data/ci/Gemfile.rails-7.1 CHANGED
@@ -4,7 +4,7 @@ source "https://rubygems.org"
4
4
 
5
5
  gem 'sqlite3'
6
6
  gem 'activerecord', '~> 7.1'
7
- gem 'esse-rspec', '~> 0.0.6'
7
+ gem 'esse-rspec'
8
8
  gem 'elasticsearch', '~> 7.17', '>= 7.17.10'
9
9
 
10
10
  gemspec path: ".."
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- esse-active_record (0.3.8)
5
- activerecord (>= 4.2, < 8)
4
+ esse-active_record (0.3.9)
5
+ activerecord (>= 4.2)
6
6
  esse (>= 0.3.0)
7
+ esse-hooks
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -51,6 +52,8 @@ GEM
51
52
  esse (0.3.4)
52
53
  multi_json
53
54
  thor (>= 0.19)
55
+ esse-hooks (0.0.1)
56
+ esse (>= 0.3.0)
54
57
  esse-rspec (0.0.6)
55
58
  esse (>= 0.2.4)
56
59
  rspec (>= 3)
@@ -152,7 +155,7 @@ DEPENDENCIES
152
155
  dotenv
153
156
  elasticsearch (~> 7.17, >= 7.17.10)
154
157
  esse-active_record!
155
- esse-rspec (~> 0.0.6)
158
+ esse-rspec
156
159
  pry
157
160
  rake
158
161
  rspec
@@ -165,4 +168,4 @@ DEPENDENCIES
165
168
  yard
166
169
 
167
170
  BUNDLED WITH
168
- 2.3.22
171
+ 2.3.26
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem 'sqlite3'
6
+ gem 'activerecord', '~> 7.2'
7
+ gem 'esse-rspec'
8
+ gem 'elasticsearch', '~> 7.17', '>= 7.17.10'
9
+
10
+ gemspec path: ".."
@@ -0,0 +1,175 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ esse-active_record (0.3.9)
5
+ activerecord (>= 4.2)
6
+ esse (>= 0.3.0)
7
+ esse-hooks
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activemodel (7.2.2.1)
13
+ activesupport (= 7.2.2.1)
14
+ activerecord (7.2.2.1)
15
+ activemodel (= 7.2.2.1)
16
+ activesupport (= 7.2.2.1)
17
+ timeout (>= 0.4.0)
18
+ activesupport (7.2.2.1)
19
+ base64
20
+ benchmark (>= 0.3)
21
+ bigdecimal
22
+ concurrent-ruby (~> 1.0, >= 1.3.1)
23
+ connection_pool (>= 2.2.5)
24
+ drb
25
+ i18n (>= 1.6, < 2)
26
+ logger (>= 1.4.2)
27
+ minitest (>= 5.1)
28
+ securerandom (>= 0.3)
29
+ tzinfo (~> 2.0, >= 2.0.5)
30
+ addressable (2.8.7)
31
+ public_suffix (>= 2.0.2, < 7.0)
32
+ ast (2.4.2)
33
+ awesome_print (1.9.2)
34
+ base64 (0.2.0)
35
+ benchmark (0.4.0)
36
+ bigdecimal (3.1.9)
37
+ coderay (1.1.3)
38
+ concurrent-ruby (1.3.5)
39
+ connection_pool (2.5.0)
40
+ crack (1.0.0)
41
+ bigdecimal
42
+ rexml
43
+ diff-lcs (1.5.1)
44
+ dotenv (3.1.7)
45
+ drb (2.2.1)
46
+ elasticsearch (7.17.11)
47
+ elasticsearch-api (= 7.17.11)
48
+ elasticsearch-transport (= 7.17.11)
49
+ elasticsearch-api (7.17.11)
50
+ multi_json
51
+ elasticsearch-transport (7.17.11)
52
+ base64
53
+ faraday (>= 1, < 3)
54
+ multi_json
55
+ esse (0.3.5)
56
+ multi_json
57
+ thor (>= 0.19)
58
+ esse-hooks (0.0.1)
59
+ esse (>= 0.3.0)
60
+ esse-rspec (0.0.6)
61
+ esse (>= 0.2.4)
62
+ rspec (>= 3)
63
+ faraday (2.12.2)
64
+ faraday-net_http (>= 2.0, < 3.5)
65
+ json
66
+ logger
67
+ faraday-net_http (3.4.0)
68
+ net-http (>= 0.5.0)
69
+ hashdiff (1.1.2)
70
+ i18n (1.14.7)
71
+ concurrent-ruby (~> 1.0)
72
+ json (2.9.1)
73
+ language_server-protocol (3.17.0.3)
74
+ lint_roller (1.1.0)
75
+ logger (1.6.5)
76
+ method_source (1.1.0)
77
+ minitest (5.25.4)
78
+ multi_json (1.15.0)
79
+ net-http (0.6.0)
80
+ uri
81
+ parallel (1.26.3)
82
+ parser (3.3.7.0)
83
+ ast (~> 2.4.1)
84
+ racc
85
+ pry (0.15.2)
86
+ coderay (~> 1.1)
87
+ method_source (~> 1.0)
88
+ public_suffix (6.0.1)
89
+ racc (1.8.1)
90
+ rainbow (3.1.1)
91
+ rake (13.2.1)
92
+ regexp_parser (2.10.0)
93
+ rexml (3.4.0)
94
+ rspec (3.13.0)
95
+ rspec-core (~> 3.13.0)
96
+ rspec-expectations (~> 3.13.0)
97
+ rspec-mocks (~> 3.13.0)
98
+ rspec-core (3.13.2)
99
+ rspec-support (~> 3.13.0)
100
+ rspec-expectations (3.13.3)
101
+ diff-lcs (>= 1.2.0, < 2.0)
102
+ rspec-support (~> 3.13.0)
103
+ rspec-mocks (3.13.2)
104
+ diff-lcs (>= 1.2.0, < 2.0)
105
+ rspec-support (~> 3.13.0)
106
+ rspec-support (3.13.2)
107
+ rubocop (1.70.0)
108
+ json (~> 2.3)
109
+ language_server-protocol (>= 3.17.0)
110
+ parallel (~> 1.10)
111
+ parser (>= 3.3.0.2)
112
+ rainbow (>= 2.2.2, < 4.0)
113
+ regexp_parser (>= 2.9.3, < 3.0)
114
+ rubocop-ast (>= 1.36.2, < 2.0)
115
+ ruby-progressbar (~> 1.7)
116
+ unicode-display_width (>= 2.4.0, < 4.0)
117
+ rubocop-ast (1.37.0)
118
+ parser (>= 3.3.1.0)
119
+ rubocop-performance (1.23.1)
120
+ rubocop (>= 1.48.1, < 2.0)
121
+ rubocop-ast (>= 1.31.1, < 2.0)
122
+ rubocop-rspec (3.4.0)
123
+ rubocop (~> 1.61)
124
+ ruby-progressbar (1.13.0)
125
+ securerandom (0.4.1)
126
+ sqlite3 (2.5.0-x86_64-linux-gnu)
127
+ standard (1.44.0)
128
+ language_server-protocol (~> 3.17.0.2)
129
+ lint_roller (~> 1.0)
130
+ rubocop (~> 1.70.0)
131
+ standard-custom (~> 1.0.0)
132
+ standard-performance (~> 1.6)
133
+ standard-custom (1.0.2)
134
+ lint_roller (~> 1.0)
135
+ rubocop (~> 1.50)
136
+ standard-performance (1.6.0)
137
+ lint_roller (~> 1.1)
138
+ rubocop-performance (~> 1.23.0)
139
+ thor (1.3.2)
140
+ timeout (0.4.3)
141
+ tzinfo (2.0.6)
142
+ concurrent-ruby (~> 1.0)
143
+ unicode-display_width (3.1.4)
144
+ unicode-emoji (~> 4.0, >= 4.0.4)
145
+ unicode-emoji (4.0.4)
146
+ uri (1.0.2)
147
+ webmock (3.24.0)
148
+ addressable (>= 2.8.0)
149
+ crack (>= 0.3.2)
150
+ hashdiff (>= 0.4.0, < 2.0.0)
151
+ yard (0.9.37)
152
+
153
+ PLATFORMS
154
+ x86_64-linux
155
+
156
+ DEPENDENCIES
157
+ activerecord (~> 7.2)
158
+ awesome_print
159
+ dotenv
160
+ elasticsearch (~> 7.17, >= 7.17.10)
161
+ esse-active_record!
162
+ esse-rspec
163
+ pry
164
+ rake
165
+ rspec
166
+ rubocop
167
+ rubocop-performance
168
+ rubocop-rspec
169
+ sqlite3
170
+ standard
171
+ webmock
172
+ yard
173
+
174
+ BUNDLED WITH
175
+ 2.3.26
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem 'sqlite3'
6
+ gem 'activerecord', '~> 8.0'
7
+ gem 'esse-rspec'
8
+ gem 'elasticsearch', '~> 7.17', '>= 7.17.10'
9
+
10
+ gemspec path: ".."
@@ -0,0 +1,176 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ esse-active_record (0.3.9)
5
+ activerecord (>= 4.2)
6
+ esse (>= 0.3.0)
7
+ esse-hooks
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activemodel (8.0.1)
13
+ activesupport (= 8.0.1)
14
+ activerecord (8.0.1)
15
+ activemodel (= 8.0.1)
16
+ activesupport (= 8.0.1)
17
+ timeout (>= 0.4.0)
18
+ activesupport (8.0.1)
19
+ base64
20
+ benchmark (>= 0.3)
21
+ bigdecimal
22
+ concurrent-ruby (~> 1.0, >= 1.3.1)
23
+ connection_pool (>= 2.2.5)
24
+ drb
25
+ i18n (>= 1.6, < 2)
26
+ logger (>= 1.4.2)
27
+ minitest (>= 5.1)
28
+ securerandom (>= 0.3)
29
+ tzinfo (~> 2.0, >= 2.0.5)
30
+ uri (>= 0.13.1)
31
+ addressable (2.8.7)
32
+ public_suffix (>= 2.0.2, < 7.0)
33
+ ast (2.4.2)
34
+ awesome_print (1.9.2)
35
+ base64 (0.2.0)
36
+ benchmark (0.4.0)
37
+ bigdecimal (3.1.9)
38
+ coderay (1.1.3)
39
+ concurrent-ruby (1.3.5)
40
+ connection_pool (2.5.0)
41
+ crack (1.0.0)
42
+ bigdecimal
43
+ rexml
44
+ diff-lcs (1.5.1)
45
+ dotenv (3.1.7)
46
+ drb (2.2.1)
47
+ elasticsearch (7.17.11)
48
+ elasticsearch-api (= 7.17.11)
49
+ elasticsearch-transport (= 7.17.11)
50
+ elasticsearch-api (7.17.11)
51
+ multi_json
52
+ elasticsearch-transport (7.17.11)
53
+ base64
54
+ faraday (>= 1, < 3)
55
+ multi_json
56
+ esse (0.3.5)
57
+ multi_json
58
+ thor (>= 0.19)
59
+ esse-hooks (0.0.1)
60
+ esse (>= 0.3.0)
61
+ esse-rspec (0.0.6)
62
+ esse (>= 0.2.4)
63
+ rspec (>= 3)
64
+ faraday (2.12.2)
65
+ faraday-net_http (>= 2.0, < 3.5)
66
+ json
67
+ logger
68
+ faraday-net_http (3.4.0)
69
+ net-http (>= 0.5.0)
70
+ hashdiff (1.1.2)
71
+ i18n (1.14.7)
72
+ concurrent-ruby (~> 1.0)
73
+ json (2.9.1)
74
+ language_server-protocol (3.17.0.3)
75
+ lint_roller (1.1.0)
76
+ logger (1.6.5)
77
+ method_source (1.1.0)
78
+ minitest (5.25.4)
79
+ multi_json (1.15.0)
80
+ net-http (0.6.0)
81
+ uri
82
+ parallel (1.26.3)
83
+ parser (3.3.7.0)
84
+ ast (~> 2.4.1)
85
+ racc
86
+ pry (0.15.2)
87
+ coderay (~> 1.1)
88
+ method_source (~> 1.0)
89
+ public_suffix (6.0.1)
90
+ racc (1.8.1)
91
+ rainbow (3.1.1)
92
+ rake (13.2.1)
93
+ regexp_parser (2.10.0)
94
+ rexml (3.4.0)
95
+ rspec (3.13.0)
96
+ rspec-core (~> 3.13.0)
97
+ rspec-expectations (~> 3.13.0)
98
+ rspec-mocks (~> 3.13.0)
99
+ rspec-core (3.13.2)
100
+ rspec-support (~> 3.13.0)
101
+ rspec-expectations (3.13.3)
102
+ diff-lcs (>= 1.2.0, < 2.0)
103
+ rspec-support (~> 3.13.0)
104
+ rspec-mocks (3.13.2)
105
+ diff-lcs (>= 1.2.0, < 2.0)
106
+ rspec-support (~> 3.13.0)
107
+ rspec-support (3.13.2)
108
+ rubocop (1.70.0)
109
+ json (~> 2.3)
110
+ language_server-protocol (>= 3.17.0)
111
+ parallel (~> 1.10)
112
+ parser (>= 3.3.0.2)
113
+ rainbow (>= 2.2.2, < 4.0)
114
+ regexp_parser (>= 2.9.3, < 3.0)
115
+ rubocop-ast (>= 1.36.2, < 2.0)
116
+ ruby-progressbar (~> 1.7)
117
+ unicode-display_width (>= 2.4.0, < 4.0)
118
+ rubocop-ast (1.37.0)
119
+ parser (>= 3.3.1.0)
120
+ rubocop-performance (1.23.1)
121
+ rubocop (>= 1.48.1, < 2.0)
122
+ rubocop-ast (>= 1.31.1, < 2.0)
123
+ rubocop-rspec (3.4.0)
124
+ rubocop (~> 1.61)
125
+ ruby-progressbar (1.13.0)
126
+ securerandom (0.4.1)
127
+ sqlite3 (2.5.0-x86_64-linux-gnu)
128
+ standard (1.44.0)
129
+ language_server-protocol (~> 3.17.0.2)
130
+ lint_roller (~> 1.0)
131
+ rubocop (~> 1.70.0)
132
+ standard-custom (~> 1.0.0)
133
+ standard-performance (~> 1.6)
134
+ standard-custom (1.0.2)
135
+ lint_roller (~> 1.0)
136
+ rubocop (~> 1.50)
137
+ standard-performance (1.6.0)
138
+ lint_roller (~> 1.1)
139
+ rubocop-performance (~> 1.23.0)
140
+ thor (1.3.2)
141
+ timeout (0.4.3)
142
+ tzinfo (2.0.6)
143
+ concurrent-ruby (~> 1.0)
144
+ unicode-display_width (3.1.4)
145
+ unicode-emoji (~> 4.0, >= 4.0.4)
146
+ unicode-emoji (4.0.4)
147
+ uri (1.0.2)
148
+ webmock (3.24.0)
149
+ addressable (>= 2.8.0)
150
+ crack (>= 0.3.2)
151
+ hashdiff (>= 0.4.0, < 2.0.0)
152
+ yard (0.9.37)
153
+
154
+ PLATFORMS
155
+ x86_64-linux
156
+
157
+ DEPENDENCIES
158
+ activerecord (~> 8.0)
159
+ awesome_print
160
+ dotenv
161
+ elasticsearch (~> 7.17, >= 7.17.10)
162
+ esse-active_record!
163
+ esse-rspec
164
+ pry
165
+ rake
166
+ rspec
167
+ rubocop
168
+ rubocop-performance
169
+ rubocop-rspec
170
+ sqlite3
171
+ standard
172
+ webmock
173
+ yard
174
+
175
+ BUNDLED WITH
176
+ 2.3.26
@@ -5,206 +5,7 @@ module Esse
5
5
  module Hooks
6
6
  STORE_STATE_KEY = :esse_active_record_hooks
7
7
 
8
- class << self
9
- def register_model(model_class)
10
- @models ||= []
11
- @models |= [model_class]
12
- end
13
-
14
- def models
15
- @models || []
16
- end
17
-
18
- def model_names
19
- models.map(&:to_s)
20
- end
21
-
22
- # Global enable indexing callbacks. If no repository is specified, all repositories will be enabled.
23
- # @param repos [Array<String, Esse::Index, Esse::Repo>]
24
- # @return [void]
25
- def enable!(*repos)
26
- filter_repositories(*repos).each do |repo|
27
- state[:repos][repo] = true
28
- end
29
- end
30
-
31
- # Global disable indexing callbacks. If no repository is specified, all repositories will be disabled.
32
- # @param repos [Array<String, Esse::Index, Esse::Repo>]
33
- # @return [void]
34
- def disable!(*repos)
35
- filter_repositories(*repos).each do |repo|
36
- state[:repos][repo] = false
37
- end
38
- end
39
-
40
- # Check if the given repository is enabled for indexing. If no repository is specified, all repositories will be checked.
41
- #
42
- # @param repos [Array<String, Esse::Index, Esse::Repo>]
43
- # @return [Boolean]
44
- def disabled?(*repos)
45
- filter_repositories(*repos).all? { |repo| !state[:repos][repo] }
46
- end
47
-
48
- # Check if the given repository is enabled for indexing. If no repository is specified, all repositories will be checked.
49
- #
50
- # @param repos [Array<String, Esse::Index, Esse::Repo>]
51
- # @return [Boolean]
52
- def enabled?(*repos)
53
- filter_repositories(*repos).all? { |repo| state[:repos][repo] }
54
- end
55
-
56
- # Enable model indexing callbacks for the given model. If no repository is specified, all repositories will be enabled.
57
- #
58
- # @param model_class [Class]
59
- # @param repos [Array<String, Esse::Index, Esse::Repo>]
60
- # @raise [ArgumentError] if model repository is not registered for the given model
61
- # @return [void]
62
- def enable_model!(model_class, *repos)
63
- ensure_registered_model_class!(model_class)
64
- filter_model_repositories(model_class, *repos).each do |repo|
65
- state[:models][model_class][repo] = true
66
- end
67
- end
68
-
69
- # Disable model indexing callbacks for the given model. If no repository is specified, all repositories will be disabled.
70
- #
71
- # @param model_class [Class]
72
- # @param repos [Array<String, Esse::Index, Esse::Repo>]
73
- # @raise [ArgumentError] if model repository is not registered for the given model
74
- # @return [void]
75
- def disable_model!(model_class, *repos)
76
- ensure_registered_model_class!(model_class)
77
- filter_model_repositories(model_class, *repos).each do |repo|
78
- state[:models][model_class][repo] = false
79
- end
80
- end
81
-
82
- def ensure_registered_model_class!(model_class)
83
- return if registered_model_class?(model_class)
84
-
85
- raise ArgumentError, "Model class #{model_class} is not registered. The model should inherit from Esse::ActiveRecord::Model and have a `index_callback' callback defined"
86
- end
87
-
88
- # Check if the given model is enabled for indexing. If no repository is specified, all repositories will be checked.
89
- #
90
- # @param model_class [Class]
91
- # @param repos [Array<String, Esse::Index, Esse::Repo>]
92
- # @return [Boolean]
93
- def enabled_for_model?(model_class, *repos)
94
- return false unless registered_model_class?(model_class)
95
-
96
- filter_model_repositories(model_class, *repos).all? do |repo|
97
- state.dig(:models, model_class, repo) != false
98
- end
99
- end
100
-
101
- # Disable indexing callbacks execution for the block execution.
102
- # Example:
103
- # Esse::ActiveRecord::Hooks.without_indexing { User.create! }
104
- # Esse::ActiveRecord::Hooks.without_indexing(UsersIndex, AccountsIndex.repo(:user)) { User.create! }
105
- def without_indexing(*repos)
106
- state_before_disable = state[:repos].dup
107
- disable!(*repos)
108
-
109
- yield
110
- ensure
111
- state[:repos] = state_before_disable
112
- end
113
-
114
- # Disable model indexing callbacks execution for the block execution for the given model.
115
- # Example:
116
- # BroadcastChanges.without_indexing_for_model(User) { }
117
- # BroadcastChanges.without_indexing_for_model(User, :datasync, :other) { }
118
- def without_indexing_for_model(model_class, *repos)
119
- state_before_disable = state[:models].dig(model_class).dup
120
- disable_model!(model_class, *repos)
121
- yield
122
- ensure
123
- if state_before_disable.nil?
124
- state[:models].delete(model_class)
125
- else
126
- state[:models][model_class] = state_before_disable
127
- end
128
- end
129
-
130
- def resolve_index_repository(name)
131
- index_name, repo_name = name.to_s.underscore.split('::').join('/').split(':', 2)
132
- if index_name !~ /(I|_i)ndex$/ && index_name !~ /_index\/([\w_]+)$/
133
- index_name = format('%<index_name>s_index', index_name: index_name)
134
- end
135
- klass = index_name.classify.constantize
136
- return klass if klass <= Esse::Repository
137
-
138
- repo_name.present? ? klass.repo(repo_name) : klass.repo
139
- end
140
-
141
- private
142
-
143
- def all_repos
144
- models.flat_map { |model_class| model_repos(model_class) }.uniq
145
- end
146
-
147
- # Returns a list of all repositories for the given model
148
- # @return [Array<Symbol>]
149
- def model_repos(model_class)
150
- expand_index_repos(*model_class.esse_callbacks.keys)
151
- end
152
-
153
- # Returns a list of all repositories for the given model
154
- # If no repository is specified, all repositories will be returned.
155
- # @return [Array<*Esse::Repository>] List of repositories
156
- def filter_repositories(*repos)
157
- (expand_index_repos(*repos) & all_repos).presence || all_repos
158
- end
159
-
160
- # Return repositorys for the given model. If no repository is specified, all repositories will be returned.
161
- #
162
- # @param model_class [Class]
163
- # @param repos [Array<*Esse::Repository>] List of repositories to check for the given model
164
- # @return [Array<*Esse::Repository>] List of repositories
165
- def filter_model_repositories(model_class, *repos)
166
- model_repos = model_repos(model_class) & all_repos
167
- (expand_index_repos(*repos) & model_repos).presence || model_repos
168
- end
169
-
170
- def expand_index_repos(*repos)
171
- repos.flat_map do |repo_name|
172
- case repo_name
173
- when Class
174
- (repo_name <= Esse::Index) ? repo_name.repo_hash.values : repo_name
175
- when String, Symbol
176
- resolve_index_repository(repo_name)
177
- else
178
- raise ArgumentError, "Invalid index or repository name: #{repo_name.inspect}"
179
- end
180
- end
181
- end
182
-
183
- # Check if model class is registered
184
- # @return [Boolean] true if model class is registered
185
- def registered_model_class?(model_class)
186
- models.include?(model_class)
187
- end
188
-
189
- # Data Structure:
190
- #
191
- # repos: { <Esse::Repository class> => <true|false>, ... }
192
- # models: {
193
- # <ActiveRecord::Base class> => {
194
- # <Esse::Repository class> => <true|false>
195
- # }
196
- # }
197
- def state
198
- global_store[STORE_STATE_KEY] ||= {
199
- repos: all_repos.map { |k| [k, true] }.to_h, # Control global state of the index repository level
200
- models: Hash.new { |h, k| h[k] = {} }, # Control the state of the model & index repository level
201
- }
202
- end
203
-
204
- def global_store
205
- Thread.current
206
- end
207
- end
8
+ include Esse::Hooks[store_key: STORE_STATE_KEY]
208
9
  end
209
10
  end
210
11
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Esse
4
4
  module ActiveRecord
5
- VERSION = '0.3.8'
5
+ VERSION = '0.3.9'
6
6
  end
7
7
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'esse'
4
+ require 'esse-hooks'
4
5
  require 'active_record'
5
6
  require_relative 'active_record/version'
6
7
  require_relative 'active_record/callbacks'
data/mise.toml ADDED
@@ -0,0 +1,2 @@
1
+ [tools]
2
+ ruby = "2.7.7"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esse-active_record
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcos G. Zimmermann
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-08 00:00:00.000000000 Z
11
+ date: 2025-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: esse
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.3.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: esse-hooks
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.0.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: activerecord
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -31,9 +45,6 @@ dependencies:
31
45
  - - ">="
32
46
  - !ruby/object:Gem::Version
33
47
  version: '4.2'
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: '8'
37
48
  type: :runtime
38
49
  prerelease: false
39
50
  version_requirements: !ruby/object:Gem::Requirement
@@ -41,9 +52,6 @@ dependencies:
41
52
  - - ">="
42
53
  - !ruby/object:Gem::Version
43
54
  version: '4.2'
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: '8'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: awesome_print
49
57
  requirement: !ruby/object:Gem::Requirement
@@ -222,6 +230,10 @@ files:
222
230
  - ci/Gemfile.rails-7.0.lock
223
231
  - ci/Gemfile.rails-7.1
224
232
  - ci/Gemfile.rails-7.1.lock
233
+ - ci/Gemfile.rails-7.2
234
+ - ci/Gemfile.rails-7.2.lock
235
+ - ci/Gemfile.rails-8.0
236
+ - ci/Gemfile.rails-8.0.lock
225
237
  - lib/esse/active_record.rb
226
238
  - lib/esse/active_record/callbacks.rb
227
239
  - lib/esse/active_record/callbacks/indexing_on_create.rb
@@ -233,7 +245,7 @@ files:
233
245
  - lib/esse/active_record/model.rb
234
246
  - lib/esse/active_record/version.rb
235
247
  - lib/esse/plugins/active_record.rb
236
- - sig/esse/active_record.rbs
248
+ - mise.toml
237
249
  homepage: https://github.com/marcosgz/esse-active_record
238
250
  licenses:
239
251
  - MIT
@@ -1,6 +0,0 @@
1
- module Esse
2
- module ActiveRecord
3
- VERSION: String
4
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
5
- end
6
- end