active-query 0.1.2 → 0.1.3
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/Appraisals +19 -0
- data/CHANGELOG.md +9 -1
- data/README.md +90 -31
- data/active-query.gemspec +46 -0
- data/gemfiles/rails_7_0.gemfile +9 -0
- data/gemfiles/rails_7_1.gemfile +9 -0
- data/gemfiles/rails_8_0.gemfile +9 -0
- data/lib/active_query/version.rb +1 -1
- data/lib/active_query.rb +1 -1
- metadata +35 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 426f4c764e93fcdacda7b354b9f4597ced451648ac4a0e56052f9cfc239f6d3f
|
|
4
|
+
data.tar.gz: b8e7db1ca8f99f4851a469feb412539c93a41e66f2d9d676ff619197dacf53a9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5437dc8c0c0e0ca61883a52799bc927c5bc710d708192be2fb1bd661c2f638e188d842be6098f3692d9fbd515a5659cdf881d684d49425ec9212e8d0b0d119b6
|
|
7
|
+
data.tar.gz: 7352b91b01bfa4fe0e96a9d6ad026f6a8ad6e1182d372e879c4eb0fdf453f2f410cd3f0016426b4a22ff9e42dd1f5cd6a45d21269340d20d89c87173142889f7
|
data/Appraisals
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
appraise 'rails-7.0' do
|
|
4
|
+
gem 'activerecord', '~> 7.0.0'
|
|
5
|
+
gem 'activesupport', '~> 7.0.0'
|
|
6
|
+
gem 'sqlite3', '~> 1.4'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
appraise 'rails-7.1' do
|
|
10
|
+
gem 'activerecord', '~> 7.1.0'
|
|
11
|
+
gem 'activesupport', '~> 7.1.0'
|
|
12
|
+
gem 'sqlite3', '~> 1.4'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
appraise 'rails-8.0' do
|
|
16
|
+
gem 'activerecord', '~> 8.0.0'
|
|
17
|
+
gem 'activesupport', '~> 8.0.0'
|
|
18
|
+
gem 'sqlite3', '~> 2.1'
|
|
19
|
+
end
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.1.3] - 2024-12-19
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Support for Rails 8.0
|
|
14
|
+
- Compatibility with SQLite3 version 2.1+ required by Rails 8
|
|
15
|
+
- Updated CI matrix to test against Rails 8.0
|
|
16
|
+
|
|
10
17
|
## [0.0.1] - 2024-12-19
|
|
11
18
|
|
|
12
19
|
### Added
|
|
@@ -31,5 +38,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
31
38
|
- **Resolvers**: Support complex query logic with resolver classes
|
|
32
39
|
- **Conditional Logic**: Apply scopes conditionally with `if`/`unless`
|
|
33
40
|
|
|
34
|
-
[Unreleased]: https://github.com/matiasasis/active-query/compare/v0.
|
|
41
|
+
[Unreleased]: https://github.com/matiasasis/active-query/compare/v0.1.3...HEAD
|
|
42
|
+
[0.1.3]: https://github.com/matiasasis/active-query/compare/v0.0.1...v0.1.3
|
|
35
43
|
[0.0.1]: https://github.com/matiasasis/active-query/releases/tag/v0.0.1
|
data/README.md
CHANGED
|
@@ -36,14 +36,14 @@ Create a query object by including `ActiveQuery::Base` and defining queries with
|
|
|
36
36
|
```ruby
|
|
37
37
|
class UserQuery
|
|
38
38
|
include ActiveQuery::Base
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
# The model is automatically inferred from the class name (User)
|
|
41
41
|
# Or explicitly set it:
|
|
42
42
|
model_name 'User'
|
|
43
|
-
|
|
43
|
+
|
|
44
44
|
# Simple query without arguments
|
|
45
45
|
query :active, 'Returns all active users', -> { scope.where(active: true) }
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
# Query with arguments and type validation
|
|
48
48
|
query :by_email, 'Find users by email address',
|
|
49
49
|
{ email: { type: String } },
|
|
@@ -69,13 +69,13 @@ ActiveQuery supports several argument types with automatic validation:
|
|
|
69
69
|
```ruby
|
|
70
70
|
class ProductQuery
|
|
71
71
|
include ActiveQuery::Base
|
|
72
|
-
|
|
72
|
+
|
|
73
73
|
query :filter_products, 'Filter products by various criteria',
|
|
74
74
|
{
|
|
75
75
|
name: { type: String },
|
|
76
76
|
price: { type: Float },
|
|
77
77
|
quantity: { type: Integer },
|
|
78
|
-
available: { type:
|
|
78
|
+
available: { type: Boolean }
|
|
79
79
|
},
|
|
80
80
|
-> (name:, price:, quantity:, available:) {
|
|
81
81
|
scope.where(name: name)
|
|
@@ -102,17 +102,17 @@ ProductQuery.filter_products(name: 123, price: 'invalid', quantity: true, availa
|
|
|
102
102
|
```ruby
|
|
103
103
|
class OrderQuery
|
|
104
104
|
include ActiveQuery::Base
|
|
105
|
-
|
|
105
|
+
|
|
106
106
|
query :search_orders, 'Search orders with optional filters',
|
|
107
107
|
{
|
|
108
108
|
status: { type: String },
|
|
109
|
-
paid: { type:
|
|
109
|
+
paid: { type: Boolean, default: true },
|
|
110
110
|
customer_name: { type: String, optional: true }
|
|
111
111
|
},
|
|
112
112
|
-> (status:, paid:, customer_name:) {
|
|
113
113
|
scope.where(status: status)
|
|
114
114
|
.where(paid: paid)
|
|
115
|
-
.
|
|
115
|
+
.if(customer_name, -> { where('customer_name LIKE ?', "%#{customer_name}%") })
|
|
116
116
|
}
|
|
117
117
|
end
|
|
118
118
|
|
|
@@ -129,17 +129,17 @@ Use `if` and `unless` methods for conditional query building:
|
|
|
129
129
|
```ruby
|
|
130
130
|
class UserQuery
|
|
131
131
|
include ActiveQuery::Base
|
|
132
|
-
|
|
132
|
+
|
|
133
133
|
query :search_users, 'Search users with conditional filters',
|
|
134
134
|
{
|
|
135
135
|
name: { type: String, optional: true },
|
|
136
|
-
active: { type:
|
|
136
|
+
active: { type: Boolean, optional: true }
|
|
137
137
|
},
|
|
138
138
|
-> (name:, active:) {
|
|
139
139
|
scope.if(name.present?, -> { where('name LIKE ?', "%#{name}%") })
|
|
140
140
|
.if(active == true, -> { where(active: true) })
|
|
141
141
|
}
|
|
142
|
-
|
|
142
|
+
|
|
143
143
|
query :filter_unless_admin, 'Filter users unless they are admin',
|
|
144
144
|
{
|
|
145
145
|
role: { type: String, optional: true }
|
|
@@ -157,16 +157,16 @@ ActiveQuery provides additional query operations beyond standard ActiveRecord:
|
|
|
157
157
|
```ruby
|
|
158
158
|
class ProductQuery
|
|
159
159
|
include ActiveQuery::Base
|
|
160
|
-
|
|
160
|
+
|
|
161
161
|
# Comparison operations
|
|
162
162
|
query :expensive_products, 'Products above price threshold', -> { scope.gt(:price, 100) }
|
|
163
163
|
query :affordable_products, 'Products within budget', -> { scope.lteq(:price, 50) }
|
|
164
|
-
|
|
165
|
-
# Text search operations
|
|
164
|
+
|
|
165
|
+
# Text search operations
|
|
166
166
|
query :search_by_name, 'Search products by name pattern', -> { scope.like(:name, 'Phone') }
|
|
167
167
|
query :products_starting_with, 'Products starting with prefix', -> { scope.start_like(:name, 'iPhone') }
|
|
168
168
|
query :products_ending_with, 'Products ending with suffix', -> { scope.end_like(:name, 'Pro') }
|
|
169
|
-
|
|
169
|
+
|
|
170
170
|
# Dynamic filtering
|
|
171
171
|
query :by_price_range, 'Filter by price range',
|
|
172
172
|
{ min_price: { type: Float }, max_price: { type: Float } },
|
|
@@ -179,11 +179,11 @@ end
|
|
|
179
179
|
|
|
180
180
|
**Available operations:**
|
|
181
181
|
- `gt(column, value)` - greater than
|
|
182
|
-
- `gteq(column, value)` - greater than or equal
|
|
182
|
+
- `gteq(column, value)` - greater than or equal
|
|
183
183
|
- `lt(column, value)` - less than
|
|
184
184
|
- `lteq(column, value)` - less than or equal
|
|
185
185
|
- `like(column, value)` - contains pattern (wraps with %)
|
|
186
|
-
- `start_like(column, value)` - starts with pattern
|
|
186
|
+
- `start_like(column, value)` - starts with pattern
|
|
187
187
|
- `end_like(column, value)` - ends with pattern
|
|
188
188
|
|
|
189
189
|
### Custom Scopes
|
|
@@ -194,18 +194,18 @@ Define reusable scopes within your query objects:
|
|
|
194
194
|
class UserQuery
|
|
195
195
|
include ActiveQuery::Base
|
|
196
196
|
include ActiveQuery::Scopes
|
|
197
|
-
|
|
197
|
+
|
|
198
198
|
# Define custom scopes
|
|
199
199
|
module Scopes
|
|
200
200
|
include ActiveQuery::Scopes
|
|
201
|
-
|
|
201
|
+
|
|
202
202
|
scope :recent, -> { where('created_at > ?', 1.month.ago) }
|
|
203
203
|
scope :by_role, -> (role:) { where(role: role) }
|
|
204
204
|
end
|
|
205
|
-
|
|
205
|
+
|
|
206
206
|
# Use scopes in queries
|
|
207
207
|
query :recent_admins, 'Find recent admin users', -> { scope.recent.by_role(role: 'admin') }
|
|
208
|
-
|
|
208
|
+
|
|
209
209
|
query :count_recent, 'Count recent users', -> { scope.recent.count }
|
|
210
210
|
end
|
|
211
211
|
```
|
|
@@ -228,11 +228,11 @@ end
|
|
|
228
228
|
# Use resolver in query object
|
|
229
229
|
class UserQuery
|
|
230
230
|
include ActiveQuery::Base
|
|
231
|
-
|
|
231
|
+
|
|
232
232
|
# Resolver without arguments
|
|
233
|
-
query :high_value_users, 'Users with many orders',
|
|
233
|
+
query :high_value_users, 'Users with many orders',
|
|
234
234
|
resolver: UserStatsResolver
|
|
235
|
-
|
|
235
|
+
|
|
236
236
|
# Resolver with arguments
|
|
237
237
|
query :users_with_orders, 'Users with minimum order count',
|
|
238
238
|
{ min_orders: { type: Integer } },
|
|
@@ -251,7 +251,7 @@ Query objects provide metadata about available queries:
|
|
|
251
251
|
```ruby
|
|
252
252
|
class UserQuery
|
|
253
253
|
include ActiveQuery::Base
|
|
254
|
-
|
|
254
|
+
|
|
255
255
|
query :active, 'Find active users', -> { scope.where(active: true) }
|
|
256
256
|
query :by_name, 'Find by name', { name: { type: String } }, -> (name:) { scope.where(name: name) }
|
|
257
257
|
end
|
|
@@ -296,7 +296,7 @@ ActiveQuery works seamlessly with Rails applications:
|
|
|
296
296
|
# app/queries/user_query.rb
|
|
297
297
|
class UserQuery
|
|
298
298
|
include ActiveQuery::Base
|
|
299
|
-
|
|
299
|
+
|
|
300
300
|
query :active, 'Active users', -> { scope.where(active: true) }
|
|
301
301
|
query :by_role, 'Users by role', { role: { type: String } }, -> (role:) { scope.where(role: role) }
|
|
302
302
|
end
|
|
@@ -306,7 +306,7 @@ class UsersController < ApplicationController
|
|
|
306
306
|
def index
|
|
307
307
|
@users = UserQuery.active
|
|
308
308
|
end
|
|
309
|
-
|
|
309
|
+
|
|
310
310
|
def admins
|
|
311
311
|
@admins = UserQuery.by_role(role: 'admin')
|
|
312
312
|
end
|
|
@@ -318,9 +318,23 @@ end
|
|
|
318
318
|
|
|
319
319
|
## Requirements
|
|
320
320
|
|
|
321
|
-
- Ruby >= 2.
|
|
322
|
-
- ActiveRecord >= 6.1
|
|
323
|
-
- ActiveSupport >= 6.1
|
|
321
|
+
- Ruby >= 3.2.0
|
|
322
|
+
- ActiveRecord >= 6.1, < 9.0
|
|
323
|
+
- ActiveSupport >= 6.1, < 9.0
|
|
324
|
+
|
|
325
|
+
### Rails 8 Support
|
|
326
|
+
|
|
327
|
+
ActiveQuery fully supports Rails 8.0! Note that Rails 8 requires SQLite3 version 2.1 or higher:
|
|
328
|
+
|
|
329
|
+
```ruby
|
|
330
|
+
# For Rails 8 applications
|
|
331
|
+
gem 'sqlite3', '~> 2.1'
|
|
332
|
+
|
|
333
|
+
# For Rails 7 and below
|
|
334
|
+
gem 'sqlite3', '~> 1.4'
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
See [RAILS_8_MIGRATION.md](RAILS_8_MIGRATION.md) for detailed migration instructions.
|
|
324
338
|
|
|
325
339
|
## Development
|
|
326
340
|
|
|
@@ -328,6 +342,51 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
|
328
342
|
|
|
329
343
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`.
|
|
330
344
|
|
|
345
|
+
### Testing Against Multiple Rails Versions
|
|
346
|
+
|
|
347
|
+
This gem is tested against Rails 7.0, 7.1, and 8.0 to ensure compatibility across versions.
|
|
348
|
+
|
|
349
|
+
#### Running Tests Locally
|
|
350
|
+
|
|
351
|
+
To test against all supported Rails versions locally:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
# Test against all Rails versions
|
|
355
|
+
./bin/test_all_rails
|
|
356
|
+
|
|
357
|
+
# Test against a specific Rails version
|
|
358
|
+
BUNDLE_GEMFILE=gemfiles/rails_7_0.gemfile bundle exec rake spec
|
|
359
|
+
BUNDLE_GEMFILE=gemfiles/rails_7_1.gemfile bundle exec rake spec
|
|
360
|
+
BUNDLE_GEMFILE=gemfiles/rails_8_0.gemfile bundle exec rake spec
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
#### Using Appraisal (Alternative Method)
|
|
364
|
+
|
|
365
|
+
If you prefer using the `appraisal` gem:
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
# Install appraisal gemfiles
|
|
369
|
+
bundle exec appraisal install
|
|
370
|
+
|
|
371
|
+
# Run tests against all Rails versions
|
|
372
|
+
bundle exec appraisal rake spec
|
|
373
|
+
|
|
374
|
+
# Run tests against specific Rails version
|
|
375
|
+
bundle exec appraisal rails-7-0 rake spec
|
|
376
|
+
bundle exec appraisal rails-7-1 rake spec
|
|
377
|
+
bundle exec appraisal rails-8-0 rake spec
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
#### Continuous Integration
|
|
381
|
+
|
|
382
|
+
The gem uses GitHub Actions to automatically test against multiple Ruby and Rails versions in a matrix configuration. Each push and pull request triggers tests across:
|
|
383
|
+
|
|
384
|
+
- Ruby versions: 3.2, 3.3
|
|
385
|
+
- Rails versions: 7.0, 7.1, 8.0
|
|
386
|
+
- Appropriate SQLite3 versions for each Rails version (1.4 for Rails 7.x, 2.1+ for Rails 8.0)
|
|
387
|
+
|
|
388
|
+
See `.github/workflows/main.yml` for the complete CI configuration.
|
|
389
|
+
|
|
331
390
|
## Contributing
|
|
332
391
|
|
|
333
392
|
Bug reports and pull requests are welcome on GitHub at https://github.com/matiasasis/active-query. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/matiasasis/active-query/blob/master/CODE_OF_CONDUCT.md).
|
|
@@ -338,4 +397,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
|
|
|
338
397
|
|
|
339
398
|
## Code of Conduct
|
|
340
399
|
|
|
341
|
-
Everyone interacting in the ActiveQuery project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/matiasasis/active-query/blob/master/CODE_OF_CONDUCT.md).
|
|
400
|
+
Everyone interacting in the ActiveQuery project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/matiasasis/active-query/blob/master/CODE_OF_CONDUCT.md).
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "lib/active_query/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = "active-query"
|
|
7
|
+
spec.version = ActiveQuery::VERSION
|
|
8
|
+
spec.authors = ["Matias Asis"]
|
|
9
|
+
spec.email = ["matiasis.90@gmail.com"]
|
|
10
|
+
|
|
11
|
+
spec.summary = "ActiveQuery is a gem that helps you to create query objects in a simple way."
|
|
12
|
+
spec.description = "ActiveQuery is a gem that helps you to create query objects in a simple way. It provides a DSL to define queries and scopes for your query object."
|
|
13
|
+
spec.homepage = "https://github.com/matiasasis/active-query"
|
|
14
|
+
spec.license = "MIT"
|
|
15
|
+
spec.required_ruby_version = ">= 3.2.0"
|
|
16
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
17
|
+
spec.metadata["source_code_uri"] = "https://github.com/matiasasis/active-query"
|
|
18
|
+
spec.metadata["bug_tracker_uri"] = "https://github.com/matiasasis/active-query/issues"
|
|
19
|
+
spec.metadata["changelog_uri"] = "https://github.com/matiasasis/active-query/blob/master/CHANGELOG.md"
|
|
20
|
+
|
|
21
|
+
# Specify which files should be added to the gem when it is released.
|
|
22
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
23
|
+
spec.files = Dir.chdir(__dir__) do
|
|
24
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
|
25
|
+
(File.expand_path(f) == __FILE__) ||
|
|
26
|
+
f.start_with?(*%w[bin/ test/ spec/ features/ .git .github appveyor Gemfile]) ||
|
|
27
|
+
f.match?(/\.gem\z/)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
spec.bindir = "exe"
|
|
31
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
32
|
+
spec.require_paths = ['lib']
|
|
33
|
+
|
|
34
|
+
# Dependencies
|
|
35
|
+
spec.add_dependency 'activerecord', '>= 6.1', '< 9.0'
|
|
36
|
+
spec.add_dependency 'activesupport', '>= 6.1', '< 9.0'
|
|
37
|
+
|
|
38
|
+
# Dev dependencies
|
|
39
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
|
40
|
+
spec.add_development_dependency 'rspec', '~> 3.9.0'
|
|
41
|
+
spec.add_development_dependency 'simplecov', '~> 0.17.1'
|
|
42
|
+
spec.add_development_dependency 'sqlite3', '>= 1.5.1', '< 3.0'
|
|
43
|
+
spec.add_development_dependency 'database_cleaner-active_record', '~> 2.2.0'
|
|
44
|
+
spec.add_development_dependency 'byebug', '~> 11.0'
|
|
45
|
+
spec.add_development_dependency 'appraisal', '~> 2.4'
|
|
46
|
+
end
|
data/lib/active_query/version.rb
CHANGED
data/lib/active_query.rb
CHANGED
|
@@ -84,7 +84,7 @@ module ActiveQuery
|
|
|
84
84
|
def query_with_arguments(name, description, args_def, lambda)
|
|
85
85
|
register_query(name, description, args_def)
|
|
86
86
|
|
|
87
|
-
define_singleton_method(name) do |given_args|
|
|
87
|
+
define_singleton_method(name) do |given_args = {}|
|
|
88
88
|
given_args = validate_args(name, given_args, args_def)
|
|
89
89
|
lambda.call(**given_args)
|
|
90
90
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active-query
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matias Asis
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: activerecord
|
|
@@ -19,7 +18,7 @@ dependencies:
|
|
|
19
18
|
version: '6.1'
|
|
20
19
|
- - "<"
|
|
21
20
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
21
|
+
version: '9.0'
|
|
23
22
|
type: :runtime
|
|
24
23
|
prerelease: false
|
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -29,7 +28,7 @@ dependencies:
|
|
|
29
28
|
version: '6.1'
|
|
30
29
|
- - "<"
|
|
31
30
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
31
|
+
version: '9.0'
|
|
33
32
|
- !ruby/object:Gem::Dependency
|
|
34
33
|
name: activesupport
|
|
35
34
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -39,7 +38,7 @@ dependencies:
|
|
|
39
38
|
version: '6.1'
|
|
40
39
|
- - "<"
|
|
41
40
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: '
|
|
41
|
+
version: '9.0'
|
|
43
42
|
type: :runtime
|
|
44
43
|
prerelease: false
|
|
45
44
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -49,7 +48,7 @@ dependencies:
|
|
|
49
48
|
version: '6.1'
|
|
50
49
|
- - "<"
|
|
51
50
|
- !ruby/object:Gem::Version
|
|
52
|
-
version: '
|
|
51
|
+
version: '9.0'
|
|
53
52
|
- !ruby/object:Gem::Dependency
|
|
54
53
|
name: rake
|
|
55
54
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -96,16 +95,22 @@ dependencies:
|
|
|
96
95
|
name: sqlite3
|
|
97
96
|
requirement: !ruby/object:Gem::Requirement
|
|
98
97
|
requirements:
|
|
99
|
-
- - "
|
|
98
|
+
- - ">="
|
|
100
99
|
- !ruby/object:Gem::Version
|
|
101
100
|
version: 1.5.1
|
|
101
|
+
- - "<"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '3.0'
|
|
102
104
|
type: :development
|
|
103
105
|
prerelease: false
|
|
104
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
107
|
requirements:
|
|
106
|
-
- - "
|
|
108
|
+
- - ">="
|
|
107
109
|
- !ruby/object:Gem::Version
|
|
108
110
|
version: 1.5.1
|
|
111
|
+
- - "<"
|
|
112
|
+
- !ruby/object:Gem::Version
|
|
113
|
+
version: '3.0'
|
|
109
114
|
- !ruby/object:Gem::Dependency
|
|
110
115
|
name: database_cleaner-active_record
|
|
111
116
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -134,6 +139,20 @@ dependencies:
|
|
|
134
139
|
- - "~>"
|
|
135
140
|
- !ruby/object:Gem::Version
|
|
136
141
|
version: '11.0'
|
|
142
|
+
- !ruby/object:Gem::Dependency
|
|
143
|
+
name: appraisal
|
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
|
145
|
+
requirements:
|
|
146
|
+
- - "~>"
|
|
147
|
+
- !ruby/object:Gem::Version
|
|
148
|
+
version: '2.4'
|
|
149
|
+
type: :development
|
|
150
|
+
prerelease: false
|
|
151
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
152
|
+
requirements:
|
|
153
|
+
- - "~>"
|
|
154
|
+
- !ruby/object:Gem::Version
|
|
155
|
+
version: '2.4'
|
|
137
156
|
description: ActiveQuery is a gem that helps you to create query objects in a simple
|
|
138
157
|
way. It provides a DSL to define queries and scopes for your query object.
|
|
139
158
|
email:
|
|
@@ -145,12 +164,17 @@ extra_rdoc_files: []
|
|
|
145
164
|
files:
|
|
146
165
|
- ".byebug_history"
|
|
147
166
|
- ".rspec"
|
|
167
|
+
- Appraisals
|
|
148
168
|
- CHANGELOG.md
|
|
149
169
|
- CODE_OF_CONDUCT.md
|
|
150
170
|
- LICENSE.txt
|
|
151
171
|
- README.md
|
|
152
172
|
- Rakefile
|
|
173
|
+
- active-query.gemspec
|
|
153
174
|
- exe/active-query
|
|
175
|
+
- gemfiles/rails_7_0.gemfile
|
|
176
|
+
- gemfiles/rails_7_1.gemfile
|
|
177
|
+
- gemfiles/rails_8_0.gemfile
|
|
154
178
|
- lib/active-query.rb
|
|
155
179
|
- lib/active_query.rb
|
|
156
180
|
- lib/active_query/resolver.rb
|
|
@@ -165,7 +189,6 @@ metadata:
|
|
|
165
189
|
bug_tracker_uri: https://github.com/matiasasis/active-query/issues
|
|
166
190
|
changelog_uri: https://github.com/matiasasis/active-query/blob/master/CHANGELOG.md
|
|
167
191
|
rubygems_mfa_required: 'true'
|
|
168
|
-
post_install_message:
|
|
169
192
|
rdoc_options: []
|
|
170
193
|
require_paths:
|
|
171
194
|
- lib
|
|
@@ -173,15 +196,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
173
196
|
requirements:
|
|
174
197
|
- - ">="
|
|
175
198
|
- !ruby/object:Gem::Version
|
|
176
|
-
version: 2.
|
|
199
|
+
version: 3.2.0
|
|
177
200
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
201
|
requirements:
|
|
179
202
|
- - ">="
|
|
180
203
|
- !ruby/object:Gem::Version
|
|
181
204
|
version: '0'
|
|
182
205
|
requirements: []
|
|
183
|
-
rubygems_version:
|
|
184
|
-
signing_key:
|
|
206
|
+
rubygems_version: 4.0.2
|
|
185
207
|
specification_version: 4
|
|
186
208
|
summary: ActiveQuery is a gem that helps you to create query objects in a simple way.
|
|
187
209
|
test_files: []
|