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 +4 -4
- data/.travis.yml +0 -1
- data/CHANGELOG.md +4 -0
- data/README.md +5 -2
- data/examples/test/controllers/appointments_controller_test.rb +1 -1
- data/lib/outbacker.rb +1 -0
- data/lib/outbacker/version.rb +1 -1
- data/lib/test_support/outbacker_stub.rb +8 -2
- data/outbacker.gemspec +5 -4
- data/test/outbacker_stub_test.rb +3 -3
- data/test/outbacker_test.rb +15 -0
- metadata +30 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0143dd842687048bc2076a78360252ad9302f8d8
|
4
|
+
data.tar.gz: 97490cf634e5ef6851fe836811f02fb7724510c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1672a59a420cf378b496293edda42a88197198e41e759e67cd572ab098cd888b73a119ce8adbcd7b78a65ad5b42679fb86764f39514a54b9b01d14405d3f46e
|
7
|
+
data.tar.gz: 2aac0eaf837d5ca42a91582ef0c412876040e93faa4bbf055a69bc93761e2ad0c7bfda5d591fc9c617cbc0be757331340c8614cf88fd400702dabbc6614f4583
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -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.
|
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.
|
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)
|
data/lib/outbacker.rb
CHANGED
data/lib/outbacker/version.rb
CHANGED
@@ -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
|
-
|
29
|
+
stub_outbacked_method(method_name, outcome_key, *block_args)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
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
|
data/outbacker.gemspec
CHANGED
@@ -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
|
30
|
-
spec.add_development_dependency
|
31
|
-
spec.add_development_dependency
|
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
|
data/test/outbacker_stub_test.rb
CHANGED
@@ -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.
|
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.
|
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.
|
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|
|
data/test/outbacker_test.rb
CHANGED
@@ -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.
|
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-
|
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:
|
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:
|
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:
|
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:
|
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
|