payload 0.2.0 → 0.2.1

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
  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