scopiform 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ab70e84303c1c0c272c26be3b64a6933d970b48899776df943d279532b58873
4
- data.tar.gz: f9171035e94d58535a2a59097aa14008a1dc997583c677ffe70e96990a2a7361
3
+ metadata.gz: 30cb9c90be999146f6dbe4f725d703960627ab29552d4ac0f86e504496e6c22b
4
+ data.tar.gz: 6f13413853016fddb924bbd7fb9a2cad4124f4ff0a8eee2cf107d1a73bf4ac8f
5
5
  SHA512:
6
- metadata.gz: 8d35b11ef72e806d0c2620a90fbd5785ad0af0c3b449955cd524783e64cdba72ea4c25ca537cbf1e37585427cd496521191e8de448c02c1cbccfe4d35d3ba11c
7
- data.tar.gz: 9287384da79e115b42ea7a0e7971944c97500867e2c987bcffe8fb8f92eae2ab873b6e2278cfa5992d44c263b27988cafd8153571885cc8abea8a88a5df42723
6
+ metadata.gz: ebc542f2e89fa299f80439da6cb16d7600b4df9eaa5fe32470d39d405e77d1b654b7aea645cdd8f5057ec8821a6cb783eb0124ac1c65f31fdf3bac74a2a9ef22
7
+ data.tar.gz: 4c8be1e46b61fb5a806523a8614e1c02d7c3ce44e9eb941cb562a55ebb2186738b58d22208292f2b9e987dc7ca95319d6f70e28624b6d3c29a37807640f9612a
@@ -23,17 +23,21 @@ module Scopiform
23
23
  private
24
24
 
25
25
  def resolve_filter(out, filter_name, filter_argument, ctx:)
26
- if filter_name.to_s.casecmp('OR').zero?
26
+ is_or = filter_name.to_s.casecmp?('OR')
27
+ is_and = filter_name.to_s.casecmp?('AND')
28
+ if is_or || is_and
27
29
  ctx ||= ScopeContext.new
28
30
  ctx.joins = []
31
+ chain_method = is_or ? :or : :merge
29
32
 
30
33
  return (
31
34
  filter_argument
32
- .map { |or_filters_hash| apply_filters(or_filters_hash, injecting: out, ctx: ctx) }
35
+ .map { |filter_hash| apply_filters(filter_hash, injecting: out, ctx: ctx) }
33
36
  .map { |a| a.joins(ctx.joins) }
34
- .inject { |chain, applied| chain.or(applied) }
37
+ .inject { |chain, applied| chain.public_send(chain_method, applied) }
35
38
  )
36
39
  end
40
+
37
41
  out.send(filter_name, filter_argument, ctx: ctx)
38
42
  end
39
43
 
@@ -1,3 +1,3 @@
1
1
  module Scopiform
2
- VERSION = '0.2.7'.freeze
2
+ VERSION = '0.2.8'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scopiform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - jayce.pulsipher
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-24 00:00:00.000000000 Z
11
+ date: 2021-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord