lev 2.0.4 → 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.9.3-p392"
4
+ install:
5
+ - bundle install
6
+ script:
7
+ - bundle exec rake
8
+ notifications:
9
+ email: false
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lev (2.0.4)
4
+ lev (2.0.5)
5
5
  actionpack (>= 3.0)
6
6
  active_attr
7
7
  activemodel (>= 3.0)
@@ -13,8 +13,8 @@ PATH
13
13
  GEM
14
14
  remote: https://rubygems.org/
15
15
  specs:
16
- actionpack (4.0.0)
17
- activesupport (= 4.0.0)
16
+ actionpack (4.0.3)
17
+ activesupport (= 4.0.3)
18
18
  builder (~> 3.1.0)
19
19
  erubis (~> 2.7.0)
20
20
  rack (~> 1.5.2)
@@ -22,23 +22,23 @@ GEM
22
22
  active_attr (0.8.2)
23
23
  activemodel (>= 3.0.2, < 4.1)
24
24
  activesupport (>= 3.0.2, < 4.1)
25
- activemodel (4.0.0)
26
- activesupport (= 4.0.0)
25
+ activemodel (4.0.3)
26
+ activesupport (= 4.0.3)
27
27
  builder (~> 3.1.0)
28
- activerecord (4.0.0)
29
- activemodel (= 4.0.0)
28
+ activerecord (4.0.3)
29
+ activemodel (= 4.0.3)
30
30
  activerecord-deprecated_finders (~> 1.0.2)
31
- activesupport (= 4.0.0)
31
+ activesupport (= 4.0.3)
32
32
  arel (~> 4.0.0)
33
33
  activerecord-deprecated_finders (1.0.3)
34
- activesupport (4.0.0)
34
+ activesupport (4.0.3)
35
35
  i18n (~> 0.6, >= 0.6.4)
36
36
  minitest (~> 4.2)
37
37
  multi_json (~> 1.3)
38
38
  thread_safe (~> 0.1)
39
39
  tzinfo (~> 0.3.37)
40
- arel (4.0.0)
41
- atomic (1.1.14)
40
+ arel (4.0.2)
41
+ atomic (1.1.15)
42
42
  builder (3.1.4)
43
43
  columnize (0.3.6)
44
44
  debugger (1.6.2)
@@ -50,9 +50,9 @@ GEM
50
50
  diff-lcs (1.2.4)
51
51
  erubis (2.7.0)
52
52
  hashie (2.0.5)
53
- i18n (0.6.5)
53
+ i18n (0.6.9)
54
54
  minitest (4.7.5)
55
- multi_json (1.8.0)
55
+ multi_json (1.8.4)
56
56
  rack (1.5.2)
57
57
  rack-test (0.6.2)
58
58
  rack (>= 1.0)
@@ -65,14 +65,15 @@ GEM
65
65
  rspec-expectations (2.14.3)
66
66
  diff-lcs (>= 1.1.3, < 2.0)
67
67
  rspec-mocks (2.14.3)
68
- thread_safe (0.1.3)
69
- atomic
68
+ sqlite3 (1.3.9)
69
+ thread_safe (0.2.0)
70
+ atomic (>= 1.1.7, < 2)
70
71
  transaction_isolation (1.0.3)
71
72
  activerecord (>= 3.0.11)
72
73
  transaction_retry (1.0.2)
73
74
  activerecord (>= 3.0.11)
74
75
  transaction_isolation (>= 1.0.2)
75
- tzinfo (0.3.37)
76
+ tzinfo (0.3.38)
76
77
 
77
78
  PLATFORMS
78
79
  ruby
@@ -83,3 +84,4 @@ DEPENDENCIES
83
84
  lev!
84
85
  rake
85
86
  rspec
87
+ sqlite3
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task default: :spec
7
+ task test: :spec
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency "bundler", "~> 1.3"
30
30
  spec.add_development_dependency "rake"
31
31
  spec.add_development_dependency "rspec"
32
+ spec.add_development_dependency "sqlite3"
32
33
  spec.add_development_dependency "debugger"
33
34
 
34
35
  end
@@ -11,10 +11,11 @@ module Lev
11
11
  message = error.message || Lev::BetterActiveModelErrors.generate_message(model, attribute, error.code)
12
12
  Lev::BetterActiveModelErrors.full_message(model, attribute, message)
13
13
  else
14
- error.code.to_s
14
+ message = error.message.to_s
15
+ message.empty? ? error.code.to_s : message
15
16
  end
16
17
  end
17
18
 
18
19
  end
19
20
 
20
- end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module Lev
2
- VERSION = "2.0.4"
2
+ VERSION = "2.0.5"
3
3
  end
@@ -3,7 +3,12 @@ require 'spec_helper'
3
3
  describe CreateSprocket do
4
4
 
5
5
  it "should transfer errors appropriately" do
6
- results, errors = CreateSprocket.call(1,"42")
6
+ result = CreateSprocket.call(1,"42")
7
+ errors = result.errors.collect { |error| error.translate }
8
+ expect(errors).to eq([
9
+ 'Integer gt 2 must be greater than or equal to 3',
10
+ 'Text only letters can only contain letters',
11
+ ])
7
12
  end
8
13
 
9
- end
14
+ end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Routine do
3
+ describe Lev::Routine do
4
4
 
5
5
 
6
6
 
7
- end
7
+ end
@@ -19,4 +19,20 @@ end
19
19
 
20
20
  require 'lev'
21
21
 
22
- Dir[(File.expand_path('../support', __FILE__)) + ("/**/*.rb")].each { |f| require f }
22
+ Dir[(File.expand_path('../support', __FILE__)) + ("/**/*.rb")].each { |f| require f }
23
+
24
+ ActiveRecord::Base.establish_connection(
25
+ adapter: :sqlite3,
26
+ database: ':memory:',
27
+ )
28
+ ActiveRecord::ConnectionAdapters::SQLiteAdapter = ActiveRecord::ConnectionAdapters::SQLite3Adapter
29
+ TransactionIsolation.apply_activerecord_patch
30
+
31
+ unless Sprocket.table_exists?
32
+ ActiveRecord::Schema.define do
33
+ create_table 'sprockets', force: true do |t|
34
+ t.integer 'integer_gt_2'
35
+ t.string 'text_only_letters'
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe SprocketHandler do
4
+ it 'should return fatal error messages' do
5
+ SprocketHandler.any_instance.stub(:params).and_return({
6
+ sprocket: {
7
+ integer_gt_2: '1',
8
+ text_only_letters: '42',
9
+ }
10
+ })
11
+ result = SprocketHandler.handle
12
+ errors = result.errors.collect { |error| error.translate }
13
+ expect(errors).to eq(['Code cannot be blank'])
14
+ end
15
+
16
+ it 'should return fatal error codes if messages are missing' do
17
+ SprocketHandler.any_instance.stub(:params).and_return({
18
+ sprocket: {
19
+ integer_gt_2: '1',
20
+ text_only_letters: '42',
21
+ },
22
+ code: '1111',
23
+ })
24
+ result = SprocketHandler.handle
25
+ errors = result.errors.collect { |error| error.translate }
26
+ expect(errors).to eq(['invalid_code'])
27
+ end
28
+ end
@@ -1,6 +1,6 @@
1
1
  class CreateSprocket
2
2
 
3
- lev_routine
3
+ include Lev::Routine
4
4
 
5
5
  protected
6
6
 
@@ -8,7 +8,7 @@ protected
8
8
  sprocket = Sprocket.new(integer_gt_2: number, text_only_letters: text)
9
9
  sprocket.valid?
10
10
 
11
- transfer_errors_from(sprocket)
11
+ transfer_errors_from(sprocket, {scope: :sprocket})
12
12
  end
13
13
 
14
- end
14
+ end
@@ -1,10 +1,7 @@
1
- class Sprocket
2
- include ActiveAttr::Model
1
+ class Sprocket < ActiveRecord::Base
3
2
 
4
- attribute :integer_gt_2, type: Integer
5
3
  validates :integer_gt_2, numericality: { only_integer: true,
6
4
  greater_than_or_equal_to: 3 }
7
- attribute :text_only_letters, type: String
8
5
  validates :text_only_letters, allow_blank: true,
9
6
  format: { with: /\A[a-zA-Z]+\z/, message: "can only contain letters" }
10
- end
7
+ end
@@ -0,0 +1,20 @@
1
+ class SprocketHandler
2
+
3
+ include Lev::Handler
4
+
5
+ uses_routine CreateSprocket
6
+
7
+ protected
8
+
9
+ def authorized?
10
+ true
11
+ end
12
+
13
+ def handle
14
+ fatal_error(code: :no_code, message: 'Code cannot be blank') if params[:code].nil?
15
+ fatal_error(code: :invalid_code) if params[:code] != 'code'
16
+ run(CreateSprocket, params[:sprocket][:integer_gt_2],
17
+ params[:sprocket][:text_only_letters])
18
+ end
19
+
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lev
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 2.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-12 00:00:00.000000000 Z
12
+ date: 2014-03-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -171,6 +171,22 @@ dependencies:
171
171
  - - ! '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: sqlite3
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
174
190
  - !ruby/object:Gem::Dependency
175
191
  name: debugger
176
192
  requirement: !ruby/object:Gem::Requirement
@@ -198,6 +214,7 @@ files:
198
214
  - .rspec
199
215
  - .ruby-gemset
200
216
  - .ruby-version
217
+ - .travis.yml
201
218
  - Gemfile
202
219
  - Gemfile.lock
203
220
  - LICENSE.txt
@@ -228,9 +245,11 @@ files:
228
245
  - spec/outputs_spec.rb
229
246
  - spec/routine_spec.rb
230
247
  - spec/spec_helper.rb
248
+ - spec/sprocket_handler_spec.rb
231
249
  - spec/sprocket_spec.rb
232
250
  - spec/support/create_sprocket.rb
233
251
  - spec/support/sprocket.rb
252
+ - spec/support/sprocket_handler.rb
234
253
  homepage: http://github.com/lml/lev
235
254
  licenses:
236
255
  - MIT
@@ -246,7 +265,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
246
265
  version: '0'
247
266
  segments:
248
267
  - 0
249
- hash: 1726460375409349289
268
+ hash: -2969297821958856203
250
269
  required_rubygems_version: !ruby/object:Gem::Requirement
251
270
  none: false
252
271
  requirements:
@@ -255,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
255
274
  version: '0'
256
275
  segments:
257
276
  - 0
258
- hash: 1726460375409349289
277
+ hash: -2969297821958856203
259
278
  requirements: []
260
279
  rubyforge_project:
261
280
  rubygems_version: 1.8.25
@@ -268,6 +287,8 @@ test_files:
268
287
  - spec/outputs_spec.rb
269
288
  - spec/routine_spec.rb
270
289
  - spec/spec_helper.rb
290
+ - spec/sprocket_handler_spec.rb
271
291
  - spec/sprocket_spec.rb
272
292
  - spec/support/create_sprocket.rb
273
293
  - spec/support/sprocket.rb
294
+ - spec/support/sprocket_handler.rb