classy_filter 0.1.1 → 0.1.2

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: 7d39815c9e5cc38bad174755097ce7e62140800e77123b509ffcc0d9194cade0
4
- data.tar.gz: bffc8a05381de967fd6b051025431413c639820988f71b364f0a7af240516fa1
3
+ metadata.gz: 546def1a115de7d3c012d1471db7d8a7d6f2278eab9dd5bb917f1c7481cf3646
4
+ data.tar.gz: c42952c3f71a45996b2e6d54907dccde999c08d3eb40d3dda9f3d4f4083c1d70
5
5
  SHA512:
6
- metadata.gz: 4ecdba44e99129941af52a39b8cb2d11c3917ed427a060c0372292e502a3324a046ea13d4d96a56ffcb9bc7211a0184d8d16d457c2bb1a06bc71aca9114c24ee
7
- data.tar.gz: 45473de6711f8e184a051c74c437394f9905bb5a3c3c6797e776dbbb69ffe83a265f25d49db3f5126c89f53ce1b6d30fd8574c649a71e1f176857b4b3cd08b47
6
+ metadata.gz: 3549f4db166046684a5d233aa37bfae6fa370d3bfdf97b1b8bfe537aedf946523d9be77a06cce191e610837099af48cbda13043dc40b59c4323c7032e277d3c5
7
+ data.tar.gz: c3693176d6874d317bc972fb0f3161fda326afc82e20e1e54e6f2d5b607816965d1682e7b9c94b86a095d057fd2a2ee55df27f64cc918c7baf3d2834eb2c6179
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- classy_filter (0.1.1)
4
+ classy_filter (0.1.2)
5
5
  sequel (~> 5.0)
6
6
 
7
7
  GEM
@@ -27,7 +27,7 @@ GEM
27
27
  diff-lcs (>= 1.2.0, < 2.0)
28
28
  rspec-support (~> 3.7.0)
29
29
  rspec-support (3.7.1)
30
- sequel (5.9.0)
30
+ sequel (5.15.0)
31
31
  sqlite3 (1.3.13)
32
32
 
33
33
  PLATFORMS
@@ -42,4 +42,4 @@ DEPENDENCIES
42
42
  sqlite3 (~> 1.0)
43
43
 
44
44
  BUNDLED WITH
45
- 1.16.1
45
+ 1.16.5
@@ -15,15 +15,20 @@ module ClassyFilter
15
15
 
16
16
  def coercion(name, body)
17
17
  coercions_module.define_method(name, &body)
18
- coercions_module.private(name)
18
+ coercions_module.send(:private, name)
19
19
  end
20
20
 
21
- def predicates_module
22
- @predicates_module || ClassyFilter::Predicates
23
- end
21
+ modules = {
22
+ predicates: ClassyFilter::Predicates,
23
+ coercions: ClassyFilter::Coercions
24
+ }.freeze
24
25
 
25
- def coercions_module
26
- @coercions_module || ClassyFilter::Coercions
26
+ modules.each do |name, default|
27
+ define_method(:"#{name}_module") do |&block|
28
+ (instance_variable_get(:"@_#{name}") || default).tap do |mod|
29
+ mod.instance_eval(&block) if block
30
+ end
31
+ end
27
32
  end
28
33
 
29
34
  protected
@@ -35,10 +40,18 @@ module ClassyFilter
35
40
  end
36
41
  end
37
42
 
43
+ def build_coercions_module!(base)
44
+ @coercions_module = Module.new do
45
+ extend base.coercions_module
46
+ extend self
47
+ end
48
+ end
49
+
38
50
  private
39
51
 
40
52
  def inherited(subclass)
41
53
  subclass.build_predicates_module!(self)
54
+ subclass.build_coercions_module!(self)
42
55
  end
43
56
  end
44
57
  end
@@ -1,3 +1,3 @@
1
1
  module ClassyFilter
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: classy_filter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artemiy Solopov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-01 00:00:00.000000000 Z
11
+ date: 2018-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel