payload 0.2.0 → 0.2.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
  SHA1:
3
- metadata.gz: 4b38f94a64e5378a8c51ffdccd8c4ac628328b12
4
- data.tar.gz: 2280162582b264eb331e86d9f22807bfb28ae982
3
+ metadata.gz: b5aeef84ec914e43834bc43f889d5737e20abd03
4
+ data.tar.gz: 39e31741d8941f4243f1a2888b898eca04e54d6c
5
5
  SHA512:
6
- metadata.gz: 4d5a63f30de48e69c265ad11e51567113532a5ed3f23d7548612d2afa3247c8a415e4bcc5c20667afdc86257f6cf0285312b371ca4d78942a9da398eafa17f9e
7
- data.tar.gz: 67d2bacd4a2229145974e8cf41e88d0641514865666e2af27c24a074464349f10289a4f9b4c213a356eb90abb057e0892fabcbc03b908aff1a9899572a398b17
6
+ metadata.gz: f97228a40e95cd4e392179f4dbc48797057112f583beee6bfa06c60d258f1b12479e2f70490e75ecf18f6601a66c138528612ee8332489d9e58c55dfb1b6e1fa
7
+ data.tar.gz: 793f4bf4bcb5f1c1981733853e76100b4fa9e5e367edca31aeef86b19b4995099a6b6336e0f7f4e3e035b9efa748839a52fb11a0830e49396012673096c58677
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- payload (0.2.0)
4
+ payload (0.2.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -9,7 +9,8 @@ module Payload
9
9
  #
10
10
  # @api private
11
11
  class Definition
12
- def initialize(resolver, decorators = DecoratorChain.new)
12
+ def initialize(name, resolver, decorators = DecoratorChain.new)
13
+ @name = name
13
14
  @resolver = resolver
14
15
  @decorators = decorators
15
16
  end
@@ -19,21 +20,22 @@ module Payload
19
20
  end
20
21
 
21
22
  def decorate(decorator)
22
- self.class.new resolver, decorators.add(decorator)
23
+ self.class.new name, resolver, decorators.add(decorator)
23
24
  end
24
25
 
25
26
  def set(_)
26
- raise DependencyAlreadyDefinedError
27
+ raise DependencyAlreadyDefinedError, "#{name} is already defined"
27
28
  end
28
29
 
29
30
  def ==(other)
30
31
  other.is_a?(Definition) &&
32
+ name == other.name &&
31
33
  resolver == other.resolver &&
32
34
  decorators == other.decorators
33
35
  end
34
36
 
35
37
  protected
36
38
 
37
- attr_reader :resolver, :decorators
39
+ attr_reader :name, :resolver, :decorators
38
40
  end
39
41
  end
@@ -14,7 +14,7 @@ module Payload
14
14
  end
15
15
 
16
16
  def add(name, resolver)
17
- value = find(name).set(Definition.new(resolver))
17
+ value = find(name).set(Definition.new(name, resolver))
18
18
  self.class.new(definitions.merge(name => value))
19
19
  end
20
20
 
@@ -1,3 +1,3 @@
1
1
  module Payload
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
@@ -5,7 +5,7 @@ describe Payload::DefinitionList do
5
5
  describe '#add' do
6
6
  it 'adds a dependency to be found later' do
7
7
  resolver = double('resolver')
8
- definition = Payload::Definition.new(resolver)
8
+ definition = Payload::Definition.new(:example, resolver)
9
9
  definition_list = Payload::DefinitionList.new
10
10
 
11
11
  defined = definition_list.add(:example, resolver)
@@ -37,7 +37,8 @@ describe Payload::DefinitionList do
37
37
  it 'replaces a dependency with a decorated version' do
38
38
  resolver = double('resolver')
39
39
  decorator = double('decorator')
40
- decorated = Payload::Definition.new(resolver).decorate(decorator)
40
+ decorated =
41
+ Payload::Definition.new(:example, resolver).decorate(decorator)
41
42
  definition_list = Payload::DefinitionList.new
42
43
 
43
44
  defined = definition_list.
@@ -50,7 +51,8 @@ describe Payload::DefinitionList do
50
51
  it 'decorates an undefined dependency' do
51
52
  resolver = double('resolver')
52
53
  decorator = double('decorator')
53
- decorated = Payload::Definition.new(resolver).decorate(decorator)
54
+ decorated =
55
+ Payload::Definition.new(:example, resolver).decorate(decorator)
54
56
  definition_list = Payload::DefinitionList.new
55
57
 
56
58
  defined = definition_list.
@@ -63,11 +65,10 @@ describe Payload::DefinitionList do
63
65
  it 'does not mutate the list' do
64
66
  resolver = double('resolver')
65
67
  decorator = double('decorator')
66
- definition = Payload::Definition.new(resolver)
68
+ definition = Payload::Definition.new(:example, resolver)
67
69
  definition_list = Payload::DefinitionList.new
68
70
 
69
- defined = definition_list.
70
- add(:example, resolver)
71
+ defined = definition_list.add(:example, resolver)
71
72
 
72
73
  defined.decorate(:example, decorator)
73
74
 
@@ -86,11 +87,11 @@ describe Payload::DefinitionList do
86
87
  exported = definition_list.export([:one, :two])
87
88
 
88
89
  first = Payload::ExportedDefinition.new(
89
- Payload::Definition.new('first'),
90
+ Payload::Definition.new(:one, 'first'),
90
91
  definition_list
91
92
  )
92
93
  second = Payload::ExportedDefinition.new(
93
- Payload::Definition.new('second'),
94
+ Payload::Definition.new(:two, 'second'),
94
95
  definition_list
95
96
  )
96
97
  third = Payload::UndefinedDefinition.new(:three)
@@ -106,8 +107,8 @@ describe Payload::DefinitionList do
106
107
  right = Payload::DefinitionList.new.add(:two, 'second')
107
108
  merged = left.import(right)
108
109
 
109
- expect(merged.find(:one)).to eq(Payload::Definition.new('first'))
110
- expect(merged.find(:two)).to eq(Payload::Definition.new('second'))
110
+ expect(merged.find(:one)).to eq(Payload::Definition.new(:one, 'first'))
111
+ expect(merged.find(:two)).to eq(Payload::Definition.new(:two, 'second'))
111
112
  end
112
113
  end
113
114
 
@@ -121,7 +122,7 @@ describe Payload::DefinitionList do
121
122
 
122
123
  it 'returns an existing definition' do
123
124
  resolver = double('resolver')
124
- definition = Payload::Definition.new(resolver)
125
+ definition = Payload::Definition.new(:example, resolver)
125
126
  definition_list =
126
127
  Payload::DefinitionList.new.add(:example, resolver)
127
128
 
@@ -9,7 +9,7 @@ describe Payload::Definition do
9
9
  container = double('container')
10
10
  decorators = double('decorators')
11
11
  resolver.stub(:resolve).and_return(resolved)
12
- definition = Payload::Definition.new(resolver, decorators)
12
+ definition = Payload::Definition.new(:example, resolver, decorators)
13
13
 
14
14
  result = definition.resolve(container)
15
15
 
@@ -28,7 +28,7 @@ describe Payload::Definition do
28
28
  decorators = double('decorators')
29
29
  decorators.stub(:add).and_return(decorated)
30
30
  Payload::DecoratorChain.stub(:new).and_return(decorators)
31
- definition = Payload::Definition.new(resolver)
31
+ definition = Payload::Definition.new(:name, resolver)
32
32
 
33
33
  definition.
34
34
  decorate(decorator).
@@ -41,31 +41,38 @@ describe Payload::Definition do
41
41
 
42
42
  describe '#set' do
43
43
  it 'raises an already defined error' do
44
- service = Payload::Definition.new(double('resolver'))
44
+ service = Payload::Definition.new(:name, double('resolver'))
45
45
 
46
- expect { service.set(double('replacement')) }.
47
- to raise_error(Payload::DependencyAlreadyDefinedError)
46
+ expect { service.set(double('replacement')) }.to raise_error(
47
+ Payload::DependencyAlreadyDefinedError,
48
+ "name is already defined"
49
+ )
48
50
  end
49
51
  end
50
52
 
51
53
  describe '#==' do
52
54
  it 'is true with the same resolver and decorators' do
53
- expect(Payload::Definition.new(:resolver).decorate(:decorator)).
54
- to eq(Payload::Definition.new(:resolver).decorate(:decorator))
55
+ expect(Payload::Definition.new(:name, :resolver).decorate(:decorator)).
56
+ to eq(Payload::Definition.new(:name, :resolver).decorate(:decorator))
57
+ end
58
+
59
+ it 'is false with a different name' do
60
+ expect(Payload::Definition.new(:name, :resolver)).
61
+ not_to eq(Payload::Definition.new(:other, :resolver))
55
62
  end
56
63
 
57
64
  it 'is false with a different resolver' do
58
- expect(Payload::Definition.new(:resolver).decorate(:decorator)).
59
- not_to eq(Payload::Definition.new(:other_resolver).decorate(:decorator))
65
+ expect(Payload::Definition.new(:name, :resolver).decorate(:decorator)).
66
+ not_to eq(Payload::Definition.new(:name, :other).decorate(:decorator))
60
67
  end
61
68
 
62
69
  it 'is false with different decorators' do
63
- expect(Payload::Definition.new(:resolver).decorate(:decorator)).
64
- not_to eq(Payload::Definition.new(:resolver).decorate(:other_decorator))
70
+ expect(Payload::Definition.new(:name, :resolver).decorate(:decorator)).
71
+ not_to eq(Payload::Definition.new(:name, :resolver).decorate(:other))
65
72
  end
66
73
 
67
74
  it 'is false with a non-definition' do
68
- expect(Payload::Definition.new(:resolver).decorate(:decorator)).
75
+ expect(Payload::Definition.new(:name, :resolver).decorate(:decorator)).
69
76
  not_to eq(:other)
70
77
  end
71
78
  end
@@ -19,7 +19,7 @@ describe Payload::ExportedDefinition do
19
19
  add(:private, private_definition)
20
20
  container = build_container.service(:container) { |config| 'container' }
21
21
  definition =
22
- Payload::Definition.new(Payload::ServiceResolver.new(block))
22
+ Payload::Definition.new(:name, Payload::ServiceResolver.new(block))
23
23
  exported_definition =
24
24
  Payload::ExportedDefinition.new(definition, private_definitions)
25
25
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: payload
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - thoughtbot