simple_command 0.0.5 → 0.0.6

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