simple_command 0.0.5 → 0.0.6

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: 3544ff81fdeafe60042fd5a29e4a3c5fb26b6091
4
- data.tar.gz: e7d4c7ab4d38ba73ce1ba4967b2ededf94b8b53c
3
+ metadata.gz: dabb8a7bf076158513db0079c22a32a62c9be279
4
+ data.tar.gz: bfe07f08f8a996b159774cbaa140068f1c345006
5
5
  SHA512:
6
- metadata.gz: 0a1087bc60e810ba53ea0554f762f78e4d4f2359d167a2788e92d9d6cd64b290b57228fba4b6f4c407bc8e682a4bc654b8652542de3798457a4310dbf921f0a2
7
- data.tar.gz: ba370480e93a8578499231f5ac784f59820a6239089865d2a5bcd6b91dd22ea7767229608a86a08024321fff29dde495d2d0d172009869737779fa871b9defeb
6
+ metadata.gz: 5ddb4a9d44224a97779d648d761cd4e9f45409fbd7c16964224535ee03160d12fc9e4b8222a1ff0473709ea6b51cbcbcfdbf7b2f354fe694a883e9967f42dfab
7
+ data.tar.gz: 9caa9600dbeda9e0de74f96e83fd541f6c28cd68ea48c24fc6b27ea9c7a7ad27019e1c908fca116dd99cd2c18b1c69afa1aeaabcf7dc634471cb5b6ecdac616f
data/README.md CHANGED
@@ -44,7 +44,7 @@ class AuthenticateUser
44
44
  if user = User.authenticate(@email, @password)
45
45
  return user
46
46
  else
47
- add_error(authentication: I18n.t "authenticate_user.failure")
47
+ errors.add_error(authentication: I18n.t "authenticate_user.failure")
48
48
  end
49
49
  nil
50
50
  end
@@ -32,19 +32,7 @@ module SimpleCommand
32
32
  end
33
33
 
34
34
  def errors
35
- @errors ||= {}
36
- end
37
-
38
- def add_error(key, value)
39
- errors[key] ||= []
40
- errors[key] << value
41
- errors[key].uniq!
42
- end
43
-
44
- def add_errors(errors_hash)
45
- errors_hash.each do |key, values|
46
- values.each { |value| add_error key, value }
47
- end
35
+ @errors ||= Errors.new
48
36
  end
49
37
 
50
38
  private
@@ -1,3 +1,17 @@
1
1
  module SimpleCommand
2
2
  class NotImplementedError < ::StandardError; end
3
+
4
+ class Errors < Hash
5
+ def add_error(key, value)
6
+ self[key] ||= []
7
+ self[key] << value
8
+ self[key].uniq!
9
+ end
10
+
11
+ def add_errors(errors_hash)
12
+ errors_hash.each do |key, values|
13
+ values.each { |value| add_error key, value }
14
+ end
15
+ end
16
+ end
3
17
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleCommand
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe SimpleCommand::Errors do
4
+ let(:errors) { SimpleCommand::Errors.new }
5
+
6
+ describe '#add_error' do
7
+ before do
8
+ errors.add_error :some_error, 'some error description'
9
+ end
10
+
11
+ it 'adds the error' do
12
+ expect(errors[:some_error]).to eq(['some error description'])
13
+ end
14
+
15
+ it 'adds the same error only once' do
16
+ errors.add_error :some_error, 'some error description'
17
+ expect(errors[:some_error]).to eq(['some error description'])
18
+ end
19
+ end
20
+
21
+ describe '#add_errors' do
22
+ let(:errors_list) do
23
+ {
24
+ some_error: ['some error description'],
25
+ another_error: ['another error description']
26
+ }
27
+ end
28
+
29
+ before do
30
+ errors.add_errors errors_list
31
+ end
32
+
33
+ it 'populates itself with the added errors' do
34
+ expect(errors[:some_error]).to eq(errors_list[:some_error])
35
+ expect(errors[:another_error]).to eq(errors_list[:another_error])
36
+ end
37
+ end
38
+ end
@@ -2,7 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe SimpleCommand do
4
4
  let(:command) { SuccessCommand.new(2) }
5
- let(:fail_command) { FailCommand.new(2) }
6
5
 
7
6
  describe '.perform' do
8
7
  before do
@@ -41,7 +40,8 @@ describe SimpleCommand do
41
40
  end
42
41
 
43
42
  it 'is false if something went wrong' do
44
- expect(fail_command.perform.success?).to be_falsy
43
+ command.errors.add_error(:some_error, 'some message')
44
+ expect(command.perform.success?).to be_falsy
45
45
  end
46
46
 
47
47
  context 'when perform is not called yet' do
@@ -69,7 +69,8 @@ describe SimpleCommand do
69
69
  end
70
70
 
71
71
  it 'is true if something went wrong' do
72
- expect(fail_command.perform.failure?).to be_truthy
72
+ command.errors.add_error(:some_error, 'some message')
73
+ expect(command.perform.failure?).to be_truthy
73
74
  end
74
75
 
75
76
  context 'when perform is not called yet' do
@@ -79,57 +80,24 @@ describe SimpleCommand do
79
80
  end
80
81
  end
81
82
 
82
- describe '#add_error' do
83
- before do
84
- command.add_error :some_error, 'some error description'
85
- end
86
-
87
- it 'adds the error' do
88
- expect(command.errors[:some_error]).to eq(['some error description'])
89
- end
90
-
91
- it 'adds the same error only once' do
92
- command.add_error :some_error, 'some error description'
93
- expect(command.errors[:some_error]).to eq(['some error description'])
94
- end
95
- end
96
-
97
- describe '#add_errors' do
98
- let(:errors) do
99
- {
100
- some_error: ['some error description'],
101
- another_error: ['another error description']
102
- }
103
- end
104
-
105
- before do
106
- command.add_errors errors
107
- end
108
-
109
- it 'populates #errors with the added errors' do
110
- expect(command.errors[:some_error]).to eq(errors[:some_error])
111
- expect(command.errors[:another_error]).to eq(errors[:another_error])
112
- end
113
- end
114
-
115
83
  describe '#errors' do
116
- let(:errors) { command.perform.errors }
117
-
118
- it 'returns an Hash' do
119
- expect(errors).to be_a(Hash)
84
+ it 'returns an SimpleCommand::Errors' do
85
+ expect(command.errors).to be_a(SimpleCommand::Errors)
120
86
  end
121
87
 
122
88
  context 'with no errors' do
123
- it 'returns an empty Hash' do
124
- expect(errors).to be_empty
89
+ it 'is empty' do
90
+ expect(command.errors).to be_empty
125
91
  end
126
92
  end
127
93
 
128
94
  context 'with errors' do
129
- let(:errors) { fail_command.perform.errors }
95
+ before do
96
+ command.errors.add_error(:some_error, 'some message')
97
+ end
130
98
 
131
99
  it 'has a key with error message' do
132
- expect(errors[:wrong_math]).to_not be_nil
100
+ expect(command.errors[:some_error]).to eq(['some message'])
133
101
  end
134
102
  end
135
103
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_command
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrea Pavoni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-10 00:00:00.000000000 Z
11
+ date: 2015-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -71,9 +71,9 @@ files:
71
71
  - lib/simple_command/errors.rb
72
72
  - lib/simple_command/version.rb
73
73
  - simple_command.gemspec
74
- - spec/factories/fail_command.rb
75
74
  - spec/factories/missed_perform_command.rb
76
75
  - spec/factories/success_command.rb
76
+ - spec/simple_command/errors_spec.rb
77
77
  - spec/simple_command_spec.rb
78
78
  - spec/spec_helper.rb
79
79
  homepage: http://github.com/nebulab/simple_command
@@ -96,13 +96,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  version: '0'
97
97
  requirements: []
98
98
  rubyforge_project:
99
- rubygems_version: 2.2.2
99
+ rubygems_version: 2.4.5
100
100
  signing_key:
101
101
  specification_version: 4
102
102
  summary: Easy way to build and manage commands (service objects)
103
103
  test_files:
104
- - spec/factories/fail_command.rb
105
104
  - spec/factories/missed_perform_command.rb
106
105
  - spec/factories/success_command.rb
106
+ - spec/simple_command/errors_spec.rb
107
107
  - spec/simple_command_spec.rb
108
108
  - spec/spec_helper.rb
@@ -1,11 +0,0 @@
1
- class FailCommand
2
- prepend SimpleCommand
3
-
4
- def initialize(input)
5
- @input = input
6
- end
7
-
8
- def perform
9
- add_error(:wrong_math, 'Math is not an opinion')
10
- end
11
- end