outbacker 0.1.1 → 0.1.2

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: 75b6426d3f64c62516541550bd341193474249e7
4
- data.tar.gz: 57a542ea46bf9c35e4b6e2a353640f78a74f6aea
3
+ metadata.gz: 0143dd842687048bc2076a78360252ad9302f8d8
4
+ data.tar.gz: 97490cf634e5ef6851fe836811f02fb7724510c0
5
5
  SHA512:
6
- metadata.gz: f6c04602dee484578e756c6c8f6c663af69fddd4f398b73a4e386b42ea6ad983405b7e479f492c5c713dd85f3ddd1e73932f7eacaa02f367e226a3d178a238f6
7
- data.tar.gz: 71ee9b9aef806fed79fc4f81e1bc37368125f37d877277387e310e731a678fe5c0dfb50616e4e67c0ea88932eeb2d813fcd0b2b40dfd51900eb4e912eaff5fc3
6
+ metadata.gz: e1672a59a420cf378b496293edda42a88197198e41e759e67cd572ab098cd888b73a119ce8adbcd7b78a65ad5b42679fb86764f39514a54b9b01d14405d3f46e
7
+ data.tar.gz: 2aac0eaf837d5ca42a91582ef0c412876040e93faa4bbf055a69bc93761e2ad0c7bfda5d591fc9c617cbc0be757331340c8614cf88fd400702dabbc6614f4583
@@ -6,7 +6,6 @@ rvm:
6
6
  - 2.0.0
7
7
  - 2.1
8
8
  - 2.2.2
9
- - ruby-head
10
9
  - jruby
11
10
  - rbx-2
12
11
 
@@ -2,6 +2,10 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
+ ## 0.1.2 2015-08-17
6
+ [changed] Change to allow 'and return' syntax following 'outcomes.handle...' in an outbacked method, e.g.: 'outcomes.handle :success and return
7
+ [changed] In OutbackerStub, rename stub method to stub_outbacked_method, add stub_simple_method.
8
+
5
9
  ## 0.1.1 2015-07-27
6
10
  [changed] Updated README and examples.
7
11
 
data/README.md CHANGED
@@ -1,9 +1,12 @@
1
1
  # Outbacker
2
2
 
3
3
  [![Build Status](https://travis-ci.org/polypressure/outbacker.svg?branch=master)](https://travis-ci.org/polypressure/outbacker)
4
- [![Code Climate](https://codeclimate.com/github/polypressure/outbacker/badges/gpa.svg)](https://codeclimate.com/github/polypressure/outbacker)
5
4
  [![Test Coverage](https://codeclimate.com/github/polypressure/outbacker/badges/coverage.svg)](https://codeclimate.com/github/polypressure/outbacker/coverage)
5
+ [![Code Climate](https://codeclimate.com/github/polypressure/outbacker/badges/gpa.svg)](https://codeclimate.com/github/polypressure/outbacker)
6
6
  [![Gem Version](https://badge.fury.io/rb/outbacker.svg)](http://badge.fury.io/rb/outbacker)
7
+ [![security](https://hakiri.io/github/polypressure/outbacker/master.svg)](https://hakiri.io/github/polypressure/outbacker/master)
8
+ [![Dependency Status](https://gemnasium.com/polypressure/outbacker.svg)](https://gemnasium.com/polypressure/outbacker)
9
+
7
10
 
8
11
  Rails developers have long known how important it is to keep controllers "skinny" and free of business logic. Our controllers are supposed to be dumb dispatchers that take results from the model layer and turn them into redirects, flash messages, form re-renderings, session state updates, JSON responses, HTTP status codes, and so on.
9
12
 
@@ -301,7 +304,7 @@ require 'test_support/outbacker_stub'
301
304
 
302
305
  test "user is redirected to the credits purchase page when they lack sufficient credits" do
303
306
  calendar_stub = Outbacker::OutbackerStub.new
304
- calendar_stub.stub('book_appointment', :insufficient_credits, stubbed_appointment)
307
+ calendar_stub.stub_outbacked_method('book_appointment', :insufficient_credits, stubbed_appointment)
305
308
 
306
309
  # This is a method we added to our controller to inject dependencies:
307
310
  @controller.inject_calendar(calendar_stub)
@@ -21,7 +21,7 @@ class AppointmentsControllerTest < ActionController::TestCase
21
21
  # it will have an outcome of :insufficient_credits.
22
22
  #
23
23
  calendar_stub = Outbacker::OutbackerStub.new
24
- calendar_stub.stub('book_appointment', :insufficient_credits, stubbed_appointment)
24
+ calendar_stub.stub_outbacked_method('book_appointment', :insufficient_credits, stubbed_appointment)
25
25
 
26
26
  # This is a method we added to our controller to inject dependencies:
27
27
  @controller.inject_calendar(calendar_stub)
@@ -54,6 +54,7 @@ module Outbacker
54
54
  outcome_handlers.call(self)
55
55
  raise "No outcome handler for outcome #{outcome_key}" unless outcome_handled?
56
56
  end
57
+ true
57
58
  end
58
59
 
59
60
  #
@@ -1,3 +1,3 @@
1
1
  module Outbacker
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -26,11 +26,11 @@ module Outbacker
26
26
 
27
27
  def initialize(method_name=nil, outcome_key=nil, *block_args)
28
28
  if method_name && outcome_key
29
- stub(method_name, outcome_key, *block_args)
29
+ stub_outbacked_method(method_name, outcome_key, *block_args)
30
30
  end
31
31
  end
32
32
 
33
- def stub(method_name, outcome_key, *block_args)
33
+ def stub_outbacked_method(method_name, outcome_key, *block_args)
34
34
  define_singleton_method(method_name, ->(*args, &outcome_handlers) {
35
35
  with(outcome_handlers) do |outcomes|
36
36
  outcomes.handle outcome_key, *block_args
@@ -38,5 +38,11 @@ module Outbacker
38
38
  })
39
39
  end
40
40
 
41
+ def stub_simple_method(method_name, result)
42
+ define_singleton_method(method_name) do
43
+ result
44
+ end
45
+ end
46
+
41
47
  end
42
48
  end
@@ -22,11 +22,12 @@ Gem::Specification.new do |spec|
22
22
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_runtime_dependency 'configurations', '~> 2.2.0'
25
+ spec.add_runtime_dependency 'configurations', '~> 2.2', '>= 2.2.0'
26
+
26
27
  spec.add_development_dependency "bundler", "~> 1.7"
27
28
  spec.add_development_dependency "rake", "~> 10.0"
28
29
  spec.add_development_dependency "minitest", "~> 5.5"
29
- spec.add_development_dependency "m", "~> 1.3.1"
30
- spec.add_development_dependency "simplecov"
31
- spec.add_development_dependency "codeclimate-test-reporter"
30
+ spec.add_development_dependency 'm', '~> 1.3', '>= 1.3.1'
31
+ spec.add_development_dependency 'simplecov', '~> 0.10', '>= 0.10.0'
32
+ spec.add_development_dependency 'codeclimate-test-reporter', '~> 0.4', '>= 0.4.7'
32
33
  end
@@ -6,7 +6,7 @@ class OutbackerStubTest < Minitest::Test
6
6
  test "#stub defines the specified method on the stub instance" do
7
7
  outbacker_stub = Outbacker::OutbackerStub.new
8
8
 
9
- outbacker_stub.stub('register_user', :successful_registration, Object.new)
9
+ outbacker_stub.stub_outbacked_method('register_user', :successful_registration, Object.new)
10
10
 
11
11
  assert_respond_to outbacker_stub, 'register_user'
12
12
  end
@@ -15,7 +15,7 @@ class OutbackerStubTest < Minitest::Test
15
15
  outbacker_stub = Outbacker::OutbackerStub.new
16
16
  correct_block_executed = false
17
17
 
18
- outbacker_stub.stub('register_user', :successful_registration, Object.new)
18
+ outbacker_stub.stub_outbacked_method('register_user', :successful_registration, Object.new)
19
19
 
20
20
  outbacker_stub.register_user do |on_outcome|
21
21
  on_outcome.of(:successful_registration) do |user|
@@ -40,7 +40,7 @@ class OutbackerStubTest < Minitest::Test
40
40
  block_arg_2 = Object.new
41
41
  block_args_passed = []
42
42
 
43
- outbacker_stub.stub('register_user', :successful_registration, block_arg_1, block_arg_2)
43
+ outbacker_stub.stub_outbacked_method('register_user', :successful_registration, block_arg_1, block_arg_2)
44
44
 
45
45
  outbacker_stub.register_user do |on_outcome|
46
46
  on_outcome.of(:successful_registration) do |arg1, arg2|
@@ -185,6 +185,14 @@ class OutbackerTest < Minitest::Test
185
185
  assert_equal expected_return_values, actual_return_values
186
186
  end
187
187
 
188
+ test "can use 'and return' syntax following 'outcomes.handle...' in outbacked method '" do
189
+ outbacked_domain_object.domain_method_with_chained_return do |on_outcome|
190
+ on_outcome.of(:outcome_1) do
191
+ pass "Successfully handled outcome and chained return"
192
+ end
193
+ end
194
+ end
195
+
188
196
 
189
197
 
190
198
  test "including within a subclass of ActiveRecord raises an exception" do
@@ -301,6 +309,13 @@ class SomeDomainObject
301
309
  end
302
310
  end
303
311
 
312
+ def domain_method_with_chained_return(&outcome_handlers)
313
+ with(outcome_handlers) do |outcomes|
314
+ outcomes.handle :outcome_1 and return
315
+ fail "Should have returned"
316
+ end
317
+ end
318
+
304
319
  def domain_method_with_no_outcome(arg, &outcome_handlers)
305
320
  with(outcome_handlers) do |outcomes|
306
321
  end
metadata CHANGED
@@ -1,20 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: outbacker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Garcia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-27 00:00:00.000000000 Z
11
+ date: 2015-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: configurations
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '2.2'
20
+ - - '>='
18
21
  - !ruby/object:Gem::Version
19
22
  version: 2.2.0
20
23
  type: :runtime
@@ -22,6 +25,9 @@ dependencies:
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '2.2'
30
+ - - '>='
25
31
  - !ruby/object:Gem::Version
26
32
  version: 2.2.0
27
33
  - !ruby/object:Gem::Dependency
@@ -71,6 +77,9 @@ dependencies:
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - ~>
80
+ - !ruby/object:Gem::Version
81
+ version: '1.3'
82
+ - - '>='
74
83
  - !ruby/object:Gem::Version
75
84
  version: 1.3.1
76
85
  type: :development
@@ -78,36 +87,51 @@ dependencies:
78
87
  version_requirements: !ruby/object:Gem::Requirement
79
88
  requirements:
80
89
  - - ~>
90
+ - !ruby/object:Gem::Version
91
+ version: '1.3'
92
+ - - '>='
81
93
  - !ruby/object:Gem::Version
82
94
  version: 1.3.1
83
95
  - !ruby/object:Gem::Dependency
84
96
  name: simplecov
85
97
  requirement: !ruby/object:Gem::Requirement
86
98
  requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: '0.10'
87
102
  - - '>='
88
103
  - !ruby/object:Gem::Version
89
- version: '0'
104
+ version: 0.10.0
90
105
  type: :development
91
106
  prerelease: false
92
107
  version_requirements: !ruby/object:Gem::Requirement
93
108
  requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: '0.10'
94
112
  - - '>='
95
113
  - !ruby/object:Gem::Version
96
- version: '0'
114
+ version: 0.10.0
97
115
  - !ruby/object:Gem::Dependency
98
116
  name: codeclimate-test-reporter
99
117
  requirement: !ruby/object:Gem::Requirement
100
118
  requirements:
119
+ - - ~>
120
+ - !ruby/object:Gem::Version
121
+ version: '0.4'
101
122
  - - '>='
102
123
  - !ruby/object:Gem::Version
103
- version: '0'
124
+ version: 0.4.7
104
125
  type: :development
105
126
  prerelease: false
106
127
  version_requirements: !ruby/object:Gem::Requirement
107
128
  requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: '0.4'
108
132
  - - '>='
109
133
  - !ruby/object:Gem::Version
110
- version: '0'
134
+ version: 0.4.7
111
135
  description: |2
112
136
  A micro library to keep conditional logic out of your Rails
113
137
  controllers and help you write more intention-revealing