evt-subst_attr 1.1.0.1 → 2.2.0.0

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: 1de75f94680ddd345b5c76a8cc87bffe79d12317b5f383c0900f5b303c386b96
4
- data.tar.gz: 2f2ff46b476d38d14cba79627a982f1a02f8d3e1cddd2a57799edf174b353183
3
+ metadata.gz: c564713e7662f0a43698d26b54a62518f160a3b54106d880d8600de692999983
4
+ data.tar.gz: ff04516a334e4a3b56a05215d0093468d9c400f3aedf09dec7e48019997ff1cb
5
5
  SHA512:
6
- metadata.gz: 23022ebcf6f6f7c914c0aa05d244b5309e0d3d9a4fb645c277b34ac05e08a7b4d685656aa7f84b1c3d3b833f84a027d15bd7105e3aeb2367b903f8833d356c5e
7
- data.tar.gz: 7f73fd01e6bbbe9278f8ab708da09b759b2492e8d861f84694effc7bfaf846755a7d9616d6ecd2c9c3ceeb4f2649431a64744950a6bf06966bb0dfcdb3e081e7
6
+ metadata.gz: a0e25cd5f217bf740c33cf061d0247aec276e7a39fd6a78ea5dec0da70d4d8166b82e8f52c84e0b4d57403622f090b44f99f8a11dde28f1730ab7818291523cc
7
+ data.tar.gz: ea9e18a2d11e640e705c7f523028ec08efba5c2b16d74933d870b98f3815eea532cfa037c034c70af10af9dedd26626687334fe0a3d4eab4d888121f1c059daf
@@ -3,18 +3,23 @@ module SubstAttr
3
3
  module Dependency
4
4
  class Example
5
5
  def self.configure(receiver)
6
- receiver.some_attr = new
6
+ receiver.specialized_substitute_attr = new
7
7
  end
8
8
 
9
9
  module Substitute
10
10
  def self.build
11
- :some_substutute
11
+ :some_substitute
12
12
  end
13
13
  end
14
14
 
15
15
  class Descendant < Example
16
16
  end
17
17
  end
18
+
19
+ module NoSubstitute
20
+ class Example
21
+ end
22
+ end
18
23
  end
19
24
  end
20
25
  end
@@ -3,9 +3,11 @@ module SubstAttr
3
3
  class Example
4
4
  include SubstAttr
5
5
 
6
- subst_attr :some_attr, Dependency::Example
6
+ subst_attr :specialized_substitute_attr, Dependency::Example
7
7
 
8
- subst_attr :weak_attr
8
+ subst_attr :strict_substitute_attr, Dependency::NoSubstitute::Example
9
+
10
+ subst_attr :weak_substitute_attr
9
11
 
10
12
  def self.build
11
13
  new.tap do |instance|
@@ -15,6 +15,7 @@ module SubstAttr
15
15
  interface = receiver.send(attr_name).class
16
16
  substitute = build(interface)
17
17
  receiver.send :"#{attr_name}=", substitute
18
+ substitute
18
19
  end
19
20
 
20
21
  def specialization(interface)
@@ -28,6 +29,10 @@ module SubstAttr
28
29
 
29
30
  specialization_module = reflection.constant
30
31
 
32
+ if specialization_module.equal?(self)
33
+ return nil
34
+ end
35
+
31
36
  unless specialization_module.respond_to?(:build)
32
37
  return nil
33
38
  end
@@ -11,21 +11,17 @@ module SubstAttr
11
11
  weak
12
12
  end
13
13
 
14
- def weak
15
- unless self.const_defined?(:Weak, false) ## Why tf would :Weak be defined??
16
- cls = Mimic::Build.(Object, record: false) do
17
- def method_missing(*)
18
- end
19
- end
20
-
21
- const_set(:Weak, cls)
22
- end
14
+ def strict(interface)
15
+ Mimic.(interface, record: false)
16
+ end
23
17
 
18
+ def weak
24
19
  Weak.new
25
20
  end
26
21
 
27
- def strict(interface)
28
- Mimic.(interface, record: false)
22
+ Weak = Mimic::Build.(Object, record: false) do
23
+ def method_missing(*)
24
+ end
29
25
  end
30
26
  end
31
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-subst_attr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0.1
4
+ version: 2.2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-16 00:00:00.000000000 Z
11
+ date: 2021-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-attribute
@@ -88,7 +88,7 @@ homepage: https://github.com/eventide-project/subst-attr
88
88
  licenses:
89
89
  - MIT
90
90
  metadata: {}
91
- post_install_message:
91
+ post_install_message:
92
92
  rdoc_options: []
93
93
  require_paths:
94
94
  - lib
@@ -103,8 +103,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  requirements: []
106
- rubygems_version: 3.0.1
107
- signing_key:
106
+ rubygems_version: 3.2.15
107
+ signing_key:
108
108
  specification_version: 4
109
109
  summary: Declare attributes that have default implementations that are substitutes
110
110
  or null objects