instructure-active_model-better_errors 1.6.3.rails2.5 → 1.6.5.rails2.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.
Files changed (67) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +37 -0
  3. data/.rspec +4 -1
  4. data/.ruby-gemset +1 -0
  5. data/.travis.yml +5 -1
  6. data/Gemfile +9 -11
  7. data/Gemfile.devtools +66 -0
  8. data/Guardfile +32 -0
  9. data/LICENSE.txt +2 -0
  10. data/README.md +12 -10
  11. data/Rakefile +20 -49
  12. data/config/devtools.yml +4 -0
  13. data/config/flay.yml +3 -0
  14. data/config/flog.yml +2 -0
  15. data/config/mutant.yml +3 -0
  16. data/config/reek.yml +103 -0
  17. data/config/rubocop.yml +62 -0
  18. data/config/yardstick.yml +2 -0
  19. data/instructure-active_model-better_errors.gemspec +25 -112
  20. data/lib/active_model/better_errors/array_reporter.rb +14 -0
  21. data/lib/active_model/{error_collecting → better_errors}/emulation.rb +13 -6
  22. data/lib/active_model/{error_collecting → better_errors}/error_collection.rb +14 -6
  23. data/lib/active_model/{error_collecting → better_errors}/error_message.rb +12 -5
  24. data/lib/active_model/{error_collecting → better_errors}/error_message_set.rb +7 -2
  25. data/lib/active_model/{error_collecting → better_errors}/errors.rb +10 -3
  26. data/lib/active_model/better_errors/formatter.rb +26 -0
  27. data/lib/active_model/better_errors/hash_reporter.rb +14 -0
  28. data/lib/active_model/{error_collecting → better_errors}/human_array_reporter.rb +6 -1
  29. data/lib/active_model/{error_collecting → better_errors}/human_hash_reporter.rb +8 -3
  30. data/lib/active_model/{error_collecting → better_errors}/human_message_formatter.rb +16 -20
  31. data/lib/active_model/{error_collecting → better_errors}/human_message_reporter.rb +19 -12
  32. data/lib/active_model/{error_collecting → better_errors}/machine_array_reporter.rb +10 -2
  33. data/lib/active_model/{error_collecting → better_errors}/machine_hash_reporter.rb +10 -3
  34. data/lib/active_model/{error_collecting → better_errors}/message_reporter.rb +10 -5
  35. data/lib/active_model/{error_collecting → better_errors}/reporter.rb +7 -2
  36. data/lib/active_model/better_errors/version.rb +10 -0
  37. data/lib/active_model/better_errors.rb +67 -3
  38. data/spec/spec_helper.rb +21 -14
  39. data/spec/support/string_ext.rb +14 -0
  40. data/spec/{lib/active_model/error_collecting → unit/lib/active_model/better_errors}/emulation_spec.rb +8 -6
  41. data/spec/{lib/active_model/error_collecting → unit/lib/active_model/better_errors}/error_collection_spec.rb +66 -62
  42. data/spec/{lib/active_model/error_collecting → unit/lib/active_model/better_errors}/error_message_set_spec.rb +27 -25
  43. data/spec/unit/lib/active_model/better_errors/error_message_spec.rb +315 -0
  44. data/spec/unit/lib/active_model/better_errors/errors_spec.rb +98 -0
  45. data/spec/unit/lib/active_model/better_errors/human_array_reporter_spec.rb +39 -0
  46. data/spec/unit/lib/active_model/better_errors/human_hash_reporter_spec.rb +37 -0
  47. data/spec/{lib/active_model/error_collecting → unit/lib/active_model/better_errors}/human_message_formatter_spec.rb +13 -7
  48. data/spec/unit/lib/active_model/better_errors/human_message_reporter_spec.rb +58 -0
  49. data/spec/unit/lib/active_model/better_errors/machine_array_reporter_spec.rb +45 -0
  50. data/spec/unit/lib/active_model/better_errors/machine_hash_reporter_spec.rb +45 -0
  51. data/spec/unit/lib/active_model/better_errors_spec.rb +37 -0
  52. metadata +79 -171
  53. data/.document +0 -5
  54. data/VERSION +0 -1
  55. data/lib/active_model/error_collecting/array_reporter.rb +0 -9
  56. data/lib/active_model/error_collecting/hash_reporter.rb +0 -9
  57. data/lib/active_model/error_collecting.rb +0 -47
  58. data/spec/lib/active_model/better_errors_spec.rb +0 -7
  59. data/spec/lib/active_model/error_collecting/error_message_spec.rb +0 -309
  60. data/spec/lib/active_model/error_collecting/errors_spec.rb +0 -95
  61. data/spec/lib/active_model/error_collecting/human_array_reporter_spec.rb +0 -33
  62. data/spec/lib/active_model/error_collecting/human_hash_reporter_spec.rb +0 -32
  63. data/spec/lib/active_model/error_collecting/human_message_reporter_spec.rb +0 -61
  64. data/spec/lib/active_model/error_collecting/machine_array_reporter_spec.rb +0 -40
  65. data/spec/lib/active_model/error_collecting/machine_hash_reporter_spec.rb +0 -40
  66. data/spec/lib/active_model/error_collecting_spec.rb +0 -22
  67. data/test/integration.rb +0 -10
@@ -1,17 +1,81 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'forwardable'
2
4
 
3
5
  require 'active_support/core_ext'
4
6
 
5
- require 'active_model/error_collecting'
6
-
7
7
  require 'active_record'
8
8
  require 'active_record/base'
9
9
  require 'active_record/validations'
10
10
 
11
+ require 'active_model/better_errors/error_message'
12
+ require 'active_model/better_errors/error_message_set'
13
+ require 'active_model/better_errors/error_collection'
14
+
15
+ require 'active_model/better_errors/formatter'
16
+ require 'active_model/better_errors/human_message_formatter'
17
+
18
+ require 'active_model/better_errors/reporter'
19
+ require 'active_model/better_errors/message_reporter'
20
+ require 'active_model/better_errors/hash_reporter'
21
+ require 'active_model/better_errors/array_reporter'
22
+
23
+ require 'active_model/better_errors/human_message_reporter'
24
+ require 'active_model/better_errors/human_hash_reporter'
25
+ require 'active_model/better_errors/human_array_reporter'
26
+
27
+ require 'active_model/better_errors/machine_hash_reporter'
28
+ require 'active_model/better_errors/machine_array_reporter'
29
+
30
+ require 'active_model/better_errors/emulation'
31
+ require 'active_model/better_errors/errors'
32
+
33
+ module ActiveModel
34
+ #
35
+ # BetterErrors
36
+ #
37
+ module BetterErrors
38
+ class << self
39
+ attr_accessor :formatter
40
+
41
+ def set_reporter(name, reporter)
42
+ name = name.to_s
43
+ @reporter_maps ||= {}
44
+ return @reporter_maps.delete(name) unless reporter
45
+ @reporter_maps[name] = get_reporter_class(name, reporter)
46
+ end
47
+
48
+ def reporters
49
+ @reporter_maps ||= {}
50
+ @reporter_maps.clone
51
+ end
52
+
53
+ def get_reporter_class(name, reporter)
54
+ return reporter if reporter.is_a? Class
55
+ class_name = "#{reporter}_#{name}_reporter"
56
+ "active_model/better_errors/#{class_name}".classify.constantize
57
+ end
58
+
59
+ def format_message(base, message)
60
+ formatter.new(base, message).format_message
61
+ end
62
+ end
63
+
64
+ set_reporter :message, :human
65
+ set_reporter :array, :human
66
+ set_reporter :hash, :human
67
+
68
+ self.formatter = HumanMessageFormatter
69
+ end
70
+ end
71
+
11
72
  module ActiveRecord
73
+ #
74
+ # ActiveModel::Validations.errors override
75
+ #
12
76
  module Validations
13
77
  def errors
14
- @errors ||= ActiveModel::ErrorCollecting::Errors.new(self)
78
+ @errors ||= ::ActiveModel::BetterErrors::Errors.new(self)
15
79
  end
16
80
  end
17
81
  end
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,24 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $LOAD_PATH.unshift(File.dirname(__FILE__))
3
- require 'rspec'
4
- require 'pry'
1
+ # encoding: utf-8
5
2
 
6
- require 'active_model/better_errors'
3
+ # SimpleCov MUST be started before require 'rom-relation'
4
+ #
5
+ if ENV['COVERAGE'] == 'true'
6
+ require 'simplecov'
7
+ require 'coveralls'
8
+
9
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
10
+ SimpleCov::Formatter::HTMLFormatter,
11
+ Coveralls::SimpleCov::Formatter
12
+ ]
7
13
 
8
- # Requires supporting files with custom matchers and macros, etc,
9
- # in ./support/ and its subdirectories.
10
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
14
+ SimpleCov.start do
15
+ command_name 'spec:unit'
16
+
17
+ add_filter 'config'
18
+ add_filter 'lib/rom/support'
19
+ add_filter 'spec'
20
+ end
21
+ end
11
22
 
12
23
  def migrate_test_db
13
24
  ActiveRecord::Base.connection.create_table(:users) do |t|
@@ -29,9 +40,5 @@ RSpec.configure do |config|
29
40
  end
30
41
  end
31
42
 
32
- class String
33
- def ==(other)
34
- return super other.to_s if other.is_a? ActiveModel::ErrorCollecting::ErrorMessage
35
- super
36
- end
37
- end
43
+ require 'active_model/better_errors'
44
+ require 'devtools/spec_helper'
@@ -0,0 +1,14 @@
1
+ # encoding: utf-8
2
+
3
+ #
4
+ # String
5
+ #
6
+ class String
7
+ def ==(other)
8
+ if other.is_a? ActiveModel::BetterErrors::ErrorMessage
9
+ return super other.to_s
10
+ else
11
+ super
12
+ end
13
+ end
14
+ end
@@ -1,7 +1,9 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
- shared_examples_for "a delegated method" do
4
- let(:target_instance) { mock() }
5
+ shared_examples_for 'a delegated method' do
6
+ let(:target_instance) { double }
5
7
  before do
6
8
  target_instance.should_receive method
7
9
  instance.stub(target).and_return(target_instance)
@@ -10,9 +12,9 @@ shared_examples_for "a delegated method" do
10
12
  specify { instance.send method }
11
13
  end
12
14
 
13
- describe ActiveModel::ErrorCollecting::Emulation do
15
+ describe ActiveModel::BetterErrors::Emulation do
14
16
  subject(:instance) { klass.new }
15
- let(:klass) { Class.new { include ActiveModel::ErrorCollecting::Emulation } }
17
+ let(:klass) { Class.new { include ActiveModel::BetterErrors::Emulation } }
16
18
 
17
19
  delegation_map = {
18
20
  error_collection: [
@@ -38,8 +40,8 @@ describe ActiveModel::ErrorCollecting::Emulation do
38
40
  describe "delegating ##{method} to ##{target}" do
39
41
  let(:target) { target }
40
42
  let(:method) { method }
41
- it_should_behave_like "a delegated method"
43
+ it_should_behave_like 'a delegated method'
42
44
  end
43
45
  end
44
46
  end
45
- end
47
+ end
@@ -1,14 +1,18 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe ActiveModel::ErrorCollecting::ErrorCollection do
5
+ describe ActiveModel::BetterErrors::ErrorCollection do
4
6
  subject(:collection) { klass.new(base) }
5
- let(:klass) { ActiveModel::ErrorCollecting::ErrorCollection }
7
+ let(:klass) { ActiveModel::BetterErrors::ErrorCollection }
6
8
  let(:base) { User.new }
7
- let(:errors){{
8
- :first_name => [ [ :too_long, { count: 3 } ] ],
9
- 'last_name' => [ [ :invalid, { message: "Invalid" } ] ],
10
- :email => [ :invalid ],
11
- }}
9
+ let(:errors) do
10
+ {
11
+ :first_name => [[:too_long, { count: 3 }]],
12
+ 'last_name' => [[:invalid, { message: 'Invalid' }]],
13
+ :email => [:invalid],
14
+ }
15
+ end
12
16
 
13
17
  before do
14
18
  errors.each do |attribute, error_list|
@@ -18,12 +22,12 @@ describe ActiveModel::ErrorCollecting::ErrorCollection do
18
22
  end
19
23
  end
20
24
 
21
- describe "#clear" do
25
+ describe '#clear' do
22
26
  before { collection.clear }
23
27
  it { should be_empty }
24
28
  end
25
29
 
26
- describe "#include?" do
30
+ describe '#include?' do
27
31
  it { should be_include :first_name }
28
32
  it { should be_include :last_name }
29
33
  it { should be_include :email }
@@ -32,82 +36,82 @@ describe ActiveModel::ErrorCollecting::ErrorCollection do
32
36
  it { should_not be_include 'email' }
33
37
  end
34
38
 
35
- describe "#get" do
39
+ describe '#get' do
36
40
  subject { collection.get(:first_name) }
37
- it { should be_a ActiveModel::ErrorCollecting::ErrorMessageSet }
41
+ it { should be_a ActiveModel::BetterErrors::ErrorMessageSet }
38
42
  its(:length) { should be 1 }
39
43
 
40
- describe "when value is nil" do
44
+ describe 'when value is nil' do
41
45
  before { collection.delete :first_name }
42
46
  it { should be nil }
43
47
  end
44
48
  end
45
49
 
46
- describe "#set" do
50
+ describe '#set' do
47
51
  subject { collection.get :first_name }
48
52
 
49
- describe "when value is array" do
53
+ describe 'when value is array' do
50
54
  before { collection.set(:first_name, []) }
51
- it { should be_a ActiveModel::ErrorCollecting::ErrorMessageSet }
55
+ it { should be_a ActiveModel::BetterErrors::ErrorMessageSet }
52
56
  its(:length) { should be 0 }
53
57
  end
54
58
 
55
- describe "when value is nil" do
56
- before { collection.set(:first_name, nil) }
57
- it { should be_nil }
58
- end
59
+ describe 'when value is nil' do
60
+ before { collection.set(:first_name, nil) }
61
+ it { should be_nil }
62
+ end
59
63
  end
60
64
 
61
- describe "#delete" do
65
+ describe '#delete' do
62
66
  subject { collection.get(:first_name) }
63
67
  before { collection.delete(:first_name) }
64
68
  it { should be_nil }
65
69
  end
66
70
 
67
- describe "#[]" do
71
+ describe '#[]' do
68
72
  subject { collection[:first_name] }
69
73
 
70
- describe "when no error messages" do
74
+ describe 'when no error messages' do
71
75
  before { collection.clear }
72
76
  it { should be_blank }
73
77
  it { should_not be_nil }
74
- it { should be_a ActiveModel::ErrorCollecting::ErrorMessageSet }
78
+ it { should be_a ActiveModel::BetterErrors::ErrorMessageSet }
75
79
  end
76
80
 
77
- describe "when there are error messages" do
81
+ describe 'when there are error messages' do
78
82
  it { should_not be_blank }
79
83
  it { should_not be_nil }
80
- it { should be_a ActiveModel::ErrorCollecting::ErrorMessageSet }
84
+ it { should be_a ActiveModel::BetterErrors::ErrorMessageSet }
81
85
  end
82
86
  end
83
87
 
84
- describe "#[]=" do
88
+ describe '#[]=' do
85
89
  subject(:error_message_set) { collection.get field }
86
90
 
87
- describe "when assigning existing attribute" do
91
+ describe 'when assigning existing attribute' do
88
92
  let(:field) { :first_name }
89
- it "should append to existing set" do
90
- expect {
93
+ it 'should append to existing set' do
94
+ expect do
91
95
  collection[field] = "I'm invalid."
92
- }.to change { error_message_set.length }.by(1)
96
+ end.to change { error_message_set.length }.by(1)
93
97
  end
94
98
  end
95
99
 
96
- describe "when assigning to new attribute" do
100
+ describe 'when assigning to new attribute' do
97
101
  let(:field) { :a_new_attribute }
98
102
  before { collection[field] = "I'm invalid" }
99
103
  it { should_not be_nil }
100
- it { should be_a ActiveModel::ErrorCollecting::ErrorMessageSet }
104
+ it { should be_a ActiveModel::BetterErrors::ErrorMessageSet }
101
105
  its(:length) { should be 1 }
102
106
  end
103
107
  end
104
108
 
105
- describe "#each" do
106
- it "should loop through each error" do
109
+ describe '#each' do
110
+ it 'should loop through each error' do
107
111
  count = 0
108
112
  collection.each do |attribute, error|
109
113
  attribute.should be_a Symbol
110
- error.should be_a ActiveModel::ErrorCollecting::ErrorMessage
114
+ error.should be_a ActiveModel::BetterErrors::ErrorMessage
111
115
  count += 1
112
116
  end
113
117
 
@@ -115,51 +119,51 @@ describe ActiveModel::ErrorCollecting::ErrorCollection do
115
119
  end
116
120
  end
117
121
 
118
- describe "#size" do
122
+ describe '#size' do
119
123
  subject { collection.size }
120
124
  it { should be 3 }
121
125
 
122
- describe "when adding one more error" do
123
- before { collection[:name] = "Not Valid" }
126
+ describe 'when adding one more error' do
127
+ before { collection[:name] = 'Not Valid' }
124
128
  it { should be 4 }
125
129
  end
126
130
  end
127
131
 
128
- describe "#values" do
132
+ describe '#values' do
129
133
  subject { collection.values }
130
134
 
131
135
  it { should be_a Array }
132
136
  its(:length) { should be 3 }
133
137
 
134
- it "should contain ErrorMessageSet as elements" do
138
+ it 'should contain ErrorMessageSet as elements' do
135
139
  collection.values.each do |el|
136
- el.should be_a ActiveModel::ErrorCollecting::ErrorMessageSet
140
+ el.should be_a ActiveModel::BetterErrors::ErrorMessageSet
137
141
  end
138
142
  end
139
143
  end
140
144
 
141
- describe "#keys" do
145
+ describe '#keys' do
142
146
  subject { collection.keys }
143
147
  it { should == [:first_name, :last_name, :email] }
144
148
  end
145
149
 
146
- describe "#to_a" do
150
+ describe '#to_a' do
147
151
  subject { collection.to_a }
148
152
  its(:size) { should == 3 }
149
153
 
150
- describe "when adding one more error" do
151
- before { collection[:name] = "Not Valid" }
154
+ describe 'when adding one more error' do
155
+ before { collection[:name] = 'Not Valid' }
152
156
  its(:size) { should == 4 }
153
157
  end
154
158
 
155
- it "should contain ErrorMessage as elements" do
159
+ it 'should contain ErrorMessage as elements' do
156
160
  collection.to_a.each do |error|
157
- error.should be_a ActiveModel::ErrorCollecting::ErrorMessage
161
+ error.should be_a ActiveModel::BetterErrors::ErrorMessage
158
162
  end
159
163
  end
160
164
  end
161
165
 
162
- describe "#to_hash" do
166
+ describe '#to_hash' do
163
167
  subject { collection.to_hash }
164
168
 
165
169
  it { should be_a Hash }
@@ -167,38 +171,38 @@ describe ActiveModel::ErrorCollecting::ErrorCollection do
167
171
  it { should_not be collection.instance_variable_get(:@collection) }
168
172
  end
169
173
 
170
- describe "#empty?" do
174
+ describe '#empty?' do
171
175
  subject { collection.empty? }
172
- it{ should be false }
176
+ it { should be false }
173
177
 
174
- describe "after clearing the collection" do
178
+ describe 'after clearing the collection' do
175
179
  before { collection.clear }
176
180
 
177
181
  it { should be true }
178
182
  end
179
183
  end
180
184
 
181
- describe "#add" do
182
- it "should add error to collection" do
183
- expect {
184
- collection.add :name, "Invalid"
185
- }.to change { collection[:name].length }.by(1)
185
+ describe '#add' do
186
+ it 'should add error to collection' do
187
+ expect do
188
+ collection.add(:name, 'Invalid')
189
+ end.to change { collection[:name].length }.by(1)
186
190
  end
187
191
  end
188
192
 
189
- describe "#added?" do
190
- describe "when an error message is not added" do
193
+ describe '#added?' do
194
+ describe 'when an error message is not added' do
191
195
  subject { collection.added? :name, :not_there }
192
196
  it { should be false }
193
197
  end
194
198
 
195
- describe "when an error message with the same option is added" do
196
- subject { collection.added? :first_name, :too_long, { :count => 3 } }
199
+ describe 'when an error message with the same option is added' do
200
+ subject { collection.added? :first_name, :too_long, count: 3 }
197
201
  it { should be true }
198
202
  end
199
203
 
200
- describe "when an error message with the different option is added" do
201
- subject { collection.added? :first_name, :too_long, { :count => 4 } }
204
+ describe 'when an error message with the different option is added' do
205
+ subject { collection.added? :first_name, :too_long, count: 4 }
202
206
  it { should be false }
203
207
  end
204
208
  end
@@ -1,66 +1,68 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'spec_helper'
2
4
 
3
- describe ActiveModel::ErrorCollecting::ErrorMessageSet do
5
+ describe ActiveModel::BetterErrors::ErrorMessageSet do
4
6
  subject(:set) { klass.new base, attribute, errors }
5
- let(:klass) { ActiveModel::ErrorCollecting::ErrorMessageSet }
7
+ let(:klass) { ActiveModel::BetterErrors::ErrorMessageSet }
6
8
  let(:attribute) { :first_name }
7
9
  let(:errors) { [] }
8
10
  let(:base) { User.new }
9
11
 
10
- describe "#initialize" do
11
- context "with no errors" do
12
+ describe '#initialize' do
13
+ context 'with no errors' do
12
14
  its(:length) { should == 0 }
13
15
  end
14
16
 
15
- context "with one error" do
17
+ context 'with one error' do
16
18
  let(:errors) { [:invalid] }
17
19
  its(:length) { should == 1 }
18
20
  end
19
21
  end
20
22
 
21
- describe "#push" do
23
+ describe '#push' do
22
24
  before { set.push error, options }
23
25
  let(:error) { :invalid }
24
26
  let(:options) { nil }
25
27
  subject { set.first }
26
28
 
27
- describe "without options" do
28
- it { should be_a ActiveModel::ErrorCollecting::ErrorMessage }
29
- its(:message) { should == nil }
29
+ describe 'without options' do
30
+ it { should be_a ActiveModel::BetterErrors::ErrorMessage }
31
+ its(:message) { should be_nil }
30
32
  its(:type) { should == error }
31
33
  end
32
34
 
33
- describe "with options" do
35
+ describe 'with options' do
34
36
  let(:options) { { message: 'Invalid' } }
35
37
 
36
- it { should be_a ActiveModel::ErrorCollecting::ErrorMessage }
38
+ it { should be_a ActiveModel::BetterErrors::ErrorMessage }
37
39
  its(:message) { should == options[:message] }
38
40
  its(:type) { should == error }
39
41
  end
40
42
  end
41
43
 
42
- describe "#<<" do
44
+ describe '#<<' do
43
45
  before { set << error }
44
46
  subject { set.first }
45
47
 
46
- describe "when accepting error as a symbol" do
48
+ describe 'when accepting error as a symbol' do
47
49
  let(:error) { :invalid }
48
50
 
49
- it { should be_a ActiveModel::ErrorCollecting::ErrorMessage }
50
- its(:message) { should == nil }
51
+ it { should be_a ActiveModel::BetterErrors::ErrorMessage }
52
+ its(:message) { should be_nil }
51
53
  its(:type) { should == error }
52
54
  end
53
55
 
54
- describe "when accepting error as a tuple" do
55
- let(:error) { [ :invalid, { message: "OMG!!" } ]}
56
+ describe 'when accepting error as a tuple' do
57
+ let(:error) { [:invalid, { message: 'OMG!!' }] }
56
58
 
57
- it { should be_a ActiveModel::ErrorCollecting::ErrorMessage }
58
- its(:message) { should == "OMG!!" }
59
+ it { should be_a ActiveModel::BetterErrors::ErrorMessage }
60
+ its(:message) { should == 'OMG!!' }
59
61
  its(:type) { should == :invalid }
60
62
  end
61
63
  end
62
64
 
63
- describe "#to_a" do
65
+ describe '#to_a' do
64
66
  let(:errors) { [:invalid, :too_long] }
65
67
  subject { set.to_a }
66
68
 
@@ -68,23 +70,23 @@ describe ActiveModel::ErrorCollecting::ErrorMessageSet do
68
70
  its(:length) { should == 2 }
69
71
  end
70
72
 
71
- describe "#empty?" do
73
+ describe '#empty?' do
72
74
  subject { set.empty? }
73
75
 
74
- describe "when no error messages" do
76
+ describe 'when no error messages' do
75
77
  it { should be_true }
76
78
  end
77
79
 
78
- describe "when contains error messages" do
80
+ describe 'when contains error messages' do
79
81
  let(:errors) { [:invalid, :too_long] }
80
82
  it { should be_false }
81
83
  end
82
84
  end
83
85
 
84
- describe "#==" do
86
+ describe '#==' do
85
87
  subject { errors == set }
86
88
  let(:errors) { [:invalid] }
87
- let(:expected) { ["is invalid"] }
89
+ let(:expected) { ['is invalid'] }
88
90
  specify do
89
91
  set.should == expected
90
92
  end