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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f15e71d4ac10ed8d359f177e46f36f12b9721da6f9f51c75d8a0571cf245aac0
4
- data.tar.gz: 8090bd8f93899061f15a048a7c57a73e48e8805e7fee3807bb39ba91e0012b1f
3
+ metadata.gz: fa6c4c630a5cd486970ce4ca43b444f082050924305cb20e835a861b32676275
4
+ data.tar.gz: de8f1cc3758f4a65edbc4a1d4bbe1c5edde866d6016332d5b415c35d97423e7e
5
5
  SHA512:
6
- metadata.gz: 903a9d4754ed89bf718918de17d94bf09969dc5a725d933b68c101a71737d397e90a89ac3ab141b4e18f855b39a81d62a27982c207dca20e7df7f0c6d8571746
7
- data.tar.gz: 2965ff1462a4036112ba0bfe974087c72ba5e8f9b8db15d39a5f5879394dbe074cf9942682f9b50732c61f0d25749c514d38f1e11e2c8e0414308ee676f14ba1
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SimpleQuery
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
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.0
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-26 00:00:00.000000000 Z
11
+ date: 2025-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord