missile_emitter 0.3.10 → 0.3.11

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: dd0227814823c25214faacb834eda176b0e6109c722d60002fc97aaec77b1260
4
- data.tar.gz: 764b2d98231e59abd9ebd819d23bf585c665d49977065c48de4b4cef4a42d86b
3
+ metadata.gz: 9d225c1def8cf6ef48cce67f43d20d5951d301a0a40e357c346092262f9dddef
4
+ data.tar.gz: 980be4ba187119738d3bf629cfb1e09838e0b75e601faf3f6023172129bbac65
5
5
  SHA512:
6
- metadata.gz: 3d2aa7e2e8b6a97af8066a372ced947949ebcf8de31dea1fa8810db3680075d6f9f4320a9a089a0cce745895bcbc0cbdf60b819e39f4f35f6b849501ed9b6fe0
7
- data.tar.gz: c6b0f541524eacf29030b95900dbf50ab07ecd68d1e1298cc393e05a1e9507c980a69e710030b5e6f30a41fee198fab45d50930ad1020a1e7bcdc37e41532c11
6
+ metadata.gz: 32138126bf5c2c0457d7944f44415312418b0140dc29a1f5383969a9701325e327f3bca03aab84158a181279296dcfd976fa8469e6f875c2aacddf56c77041c8
7
+ data.tar.gz: 1fbac0eca4068ba5d76d075d8a5443bde8f61392ace638e109daecad14c64970f5462d490a39d20603a9940cefa54bf10b2e7daf467231b2a83d81149a50ae74
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- missile_emitter (0.3.10)
4
+ missile_emitter (0.3.11)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -38,4 +38,4 @@ DEPENDENCIES
38
38
  rspec (~> 3.0)
39
39
 
40
40
  BUNDLED WITH
41
- 2.0.2
41
+ 2.1.2
data/README.md CHANGED
@@ -110,26 +110,22 @@ module Searchable
110
110
  (conditions[klass] ||= {}.with_indifferent_access)[key] = block
111
111
  end
112
112
 
113
- extend ActiveSupport::Concern
114
-
115
- included do
116
-
117
- define_singleton_method :search do |hash|
118
- hash.reduce all do |relation, (key, value)|
119
- next relation if value.blank? # ignore empty value
120
-
121
- if filter = conditions.fetch(self, {})[key]
122
- relation.extending do
123
- # Just for fun :)
124
- define_method(:_) { value }
125
- end.instance_exec(value, &filter)
126
- elsif column_names.include?(key)
127
- relation.where key => value
128
- else
129
- relation
130
- end
113
+ define_method :search do |hash|
114
+ hash.reduce all do |relation, (key, value)|
115
+ next relation if value.blank? # ignore empty value
116
+
117
+ if filter = conditions.fetch(self, {})[key]
118
+ relation.extending do
119
+ # Just for fun :) With Ruby >= 2.7 you can use _1 instead of _.
120
+ define_method(:_) { value }
121
+ end.instance_exec(value, &filter)
122
+ elsif column_names.include?(key.to_s)
123
+ relation.where key => value
124
+ else
125
+ relation
131
126
  end
132
127
  end
128
+ end
133
129
 
134
130
  end
135
131
  ```
@@ -138,7 +134,7 @@ end
138
134
 
139
135
  ```ruby
140
136
  class Person < ApplicationRecord
141
- include Searchable {
137
+ extend Searchable {
142
138
  name_like { |keyword| where 'name like ?', "%#{keyword}%" }
143
139
  older_than { where 'age >= ?', _ }
144
140
  }
@@ -9,24 +9,19 @@ module MissileEmitter
9
9
  (conditions[klass] ||= {}.with_indifferent_access)[key] = block
10
10
  end
11
11
 
12
- extend ActiveSupport::Concern
12
+ define_method :search do |hash|
13
+ hash.reduce all do |relation, (key, value)|
14
+ next relation if value.blank? # ignore empty value
13
15
 
14
- included do
15
-
16
- define_singleton_method :search do |hash|
17
- hash.reduce all do |relation, (key, value)|
18
- next relation if value.blank? # ignore empty value
19
-
20
- if filter = conditions.fetch(self, {})[key]
21
- relation.extending do
22
- # Just for fun :)
23
- define_method(:_) { value }
24
- end.instance_exec(value, &filter)
25
- elsif column_names.include?(key.to_s)
26
- relation.where key => value
27
- else
28
- relation
29
- end
16
+ if filter = conditions.fetch(self, {})[key]
17
+ relation.extending do
18
+ # Just for fun :) With Ruby >= 2.7 you can use _1 instead of _.
19
+ define_method(:_) { value }
20
+ end.instance_exec(value, &filter)
21
+ elsif column_names.include?(key.to_s)
22
+ relation.where key => value
23
+ else
24
+ relation
30
25
  end
31
26
  end
32
27
  end
@@ -1,3 +1,3 @@
1
1
  module MissileEmitter
2
- VERSION = "0.3.10"
2
+ VERSION = "0.3.11"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: missile_emitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.3.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry Chen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-09 00:00:00.000000000 Z
11
+ date: 2020-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  requirements: []
118
- rubygems_version: 3.0.3
118
+ rubygems_version: 3.1.2
119
119
  signing_key:
120
120
  specification_version: 4
121
121
  summary: Ruby元编程辅助工具