simple_query 0.3.0 → 0.3.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 +4 -4
- data/README.md +21 -0
- data/lib/simple_query/clauses/where_clause.rb +3 -0
- data/lib/simple_query/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa6c4c630a5cd486970ce4ca43b444f082050924305cb20e835a861b32676275
|
4
|
+
data.tar.gz: de8f1cc3758f4a65edbc4a1d4bbe1c5edde866d6016332d5b415c35d97423e7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9fb69f0d5505926239e5dcc396dedb098f974b38a0a1d135ddeb50927de9b88b8dc0f0fb850a2ab2fe6b9e7ba9a4955738c36d4a1c0f974e507740fa00edb15
|
7
|
+
data.tar.gz: e8acc149f25a8b898a04ec7ca5203f98898d88bff334700ff5e4b6e0bb538b56fb47edd0b92cb66fbd86ac89c3f98d7c48930f25e9870bb34208b0bbd2735c4f
|
data/README.md
CHANGED
@@ -82,6 +82,27 @@ User.simple_query
|
|
82
82
|
.lazy_execute
|
83
83
|
```
|
84
84
|
|
85
|
+
Placeholder-Based Conditions
|
86
|
+
|
87
|
+
SimpleQuery now supports **ActiveRecord-style placeholders**, letting you pass arrays with `?` or `:named` placeholders to your `.where` clauses:
|
88
|
+
|
89
|
+
```ruby
|
90
|
+
# Positional placeholders:
|
91
|
+
User.simple_query
|
92
|
+
.where(["name LIKE ?", "%Alice%"])
|
93
|
+
.execute
|
94
|
+
|
95
|
+
# Named placeholders:
|
96
|
+
User.simple_query
|
97
|
+
.where(["email = :email", { email: "alice@example.com" }])
|
98
|
+
.execute
|
99
|
+
|
100
|
+
# Multiple placeholders in one condition:
|
101
|
+
User.simple_query
|
102
|
+
.where(["age >= :min_age AND age <= :max_age", { min_age: 18, max_age: 35 }])
|
103
|
+
.execute
|
104
|
+
```
|
105
|
+
|
85
106
|
## Custom Read Models
|
86
107
|
By default, SimpleQuery returns results as `Struct` objects for maximum speed. However, you can also define a lightweight model class for more explicit attribute handling or custom logic.
|
87
108
|
|
@@ -30,6 +30,9 @@ module SimpleQuery
|
|
30
30
|
condition.map { |field, value| @table[field].eq(value) }
|
31
31
|
when Arel::Nodes::Node
|
32
32
|
[condition]
|
33
|
+
when Array
|
34
|
+
sanitized_sql = ActiveRecord::Base.send(:sanitize_sql_array, condition)
|
35
|
+
[Arel.sql(sanitized_sql)]
|
33
36
|
else
|
34
37
|
[Arel.sql(condition.to_s)]
|
35
38
|
end
|
data/lib/simple_query/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_query
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Kholodniak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-02-
|
11
|
+
date: 2025-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|