light-service 0.0.7 → 0.0.8
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.
- data/README.md +8 -9
- data/lib/light-service/organizer.rb +13 -0
- data/lib/light-service/version.rb +1 -1
- data/lib/light-service.rb +1 -0
- data/spec/acceptance/add_numbers_spec.rb +54 -0
- data/spec/{acceptance → sample}/calculates_order_tax_action_spec.rb +1 -1
- data/spec/sample/calculates_tax_spec.rb +24 -0
- data/spec/{acceptance → sample}/looks_up_tax_percentage_action.rb +1 -1
- data/spec/{acceptance → sample}/provides_free_shipping_action_spec.rb +1 -1
- data/spec/{acceptance/sample → sample/tax}/calculates_order_tax_action.rb +0 -0
- data/spec/sample/tax/calculates_tax.rb +12 -0
- data/spec/{acceptance/sample → sample/tax}/looks_up_tax_percentage_action.rb +0 -0
- data/spec/{acceptance/sample → sample/tax}/provides_free_shipping_action.rb +0 -0
- metadata +22 -19
- data/spec/acceptance/calculates_tax_spec.rb +0 -23
- data/spec/acceptance/sample/calculates_tax.rb +0 -13
data/README.md
CHANGED
@@ -60,16 +60,15 @@ and executes them one-by-one. Then you need to create the actions which will onl
|
|
60
60
|
|
61
61
|
```ruby
|
62
62
|
class CalculatesTax
|
63
|
-
|
64
|
-
context = LightService::Context.make(:order => order)
|
65
|
-
|
66
|
-
[
|
67
|
-
LooksUpTaxPercentageAction,
|
68
|
-
CalculatesOrderTaxAction,
|
69
|
-
ProvidesFreeShippingAction
|
70
|
-
].each{ |action| action.execute(context) }
|
63
|
+
extend LightService::Organizer
|
71
64
|
|
72
|
-
|
65
|
+
def self.for_order(order)
|
66
|
+
with(order: order).reduce \
|
67
|
+
[
|
68
|
+
LooksUpTaxPercentageAction,
|
69
|
+
CalculatesOrderTaxAction,
|
70
|
+
ProvidesFreeShippingAction
|
71
|
+
]
|
73
72
|
end
|
74
73
|
end
|
75
74
|
|
data/lib/light-service.rb
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class Organizer
|
4
|
+
extend LightService::Organizer
|
5
|
+
|
6
|
+
def self.add_number(number)
|
7
|
+
with(number: number).reduce \
|
8
|
+
[
|
9
|
+
AddsOneAction,
|
10
|
+
AddsTwoAction,
|
11
|
+
AddsThreeAction
|
12
|
+
]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class AddsOneAction
|
17
|
+
include LightService::Action
|
18
|
+
|
19
|
+
executed do |context|
|
20
|
+
number = context.fetch :number
|
21
|
+
number += 1
|
22
|
+
|
23
|
+
context[:number] = number
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class AddsTwoAction
|
28
|
+
include LightService::Action
|
29
|
+
|
30
|
+
executed do |context|
|
31
|
+
number = context.fetch :number
|
32
|
+
number += 2
|
33
|
+
|
34
|
+
context[:number] = number
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
class AddsThreeAction
|
39
|
+
include LightService::Action
|
40
|
+
|
41
|
+
executed do |context|
|
42
|
+
number = context.fetch :number
|
43
|
+
number += 3
|
44
|
+
|
45
|
+
context[:number] = number
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe Organizer do
|
50
|
+
it "Adds 1 2 3 and through to 1" do
|
51
|
+
result = Organizer.add_number 1
|
52
|
+
result.fetch(:number).should == 7
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require_relative 'tax/calculates_tax'
|
3
|
+
require_relative 'tax/looks_up_tax_percentage_action'
|
4
|
+
require_relative 'tax/calculates_order_tax_action'
|
5
|
+
require_relative 'tax/provides_free_shipping_action'
|
6
|
+
|
7
|
+
describe CalculatesTax do
|
8
|
+
let(:order) { double('order') }
|
9
|
+
let(:context) { double('context') }
|
10
|
+
|
11
|
+
it "calls the actions in order" do
|
12
|
+
::LightService::Context.stub(:make) \
|
13
|
+
.with(:order => order) \
|
14
|
+
.and_return context
|
15
|
+
|
16
|
+
LooksUpTaxPercentageAction.stub(:execute).with(context).and_return context
|
17
|
+
CalculatesOrderTaxAction.stub(:execute).with(context).and_return context
|
18
|
+
ProvidesFreeShippingAction.stub(:execute).with(context).and_return context
|
19
|
+
|
20
|
+
result = CalculatesTax.for_order(order)
|
21
|
+
|
22
|
+
result.should eq context
|
23
|
+
end
|
24
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: light-service
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
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:
|
12
|
+
date: 2013-04-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -60,19 +60,21 @@ files:
|
|
60
60
|
- lib/light-service.rb
|
61
61
|
- lib/light-service/action.rb
|
62
62
|
- lib/light-service/context.rb
|
63
|
+
- lib/light-service/organizer.rb
|
63
64
|
- lib/light-service/version.rb
|
64
65
|
- light-service.gemspec
|
65
66
|
- light-service.png
|
66
|
-
- spec/acceptance/
|
67
|
-
- spec/acceptance/calculates_tax_spec.rb
|
68
|
-
- spec/acceptance/looks_up_tax_percentage_action.rb
|
69
|
-
- spec/acceptance/provides_free_shipping_action_spec.rb
|
70
|
-
- spec/acceptance/sample/calculates_order_tax_action.rb
|
71
|
-
- spec/acceptance/sample/calculates_tax.rb
|
72
|
-
- spec/acceptance/sample/looks_up_tax_percentage_action.rb
|
73
|
-
- spec/acceptance/sample/provides_free_shipping_action.rb
|
67
|
+
- spec/acceptance/add_numbers_spec.rb
|
74
68
|
- spec/action_base_spec.rb
|
75
69
|
- spec/context_spec.rb
|
70
|
+
- spec/sample/calculates_order_tax_action_spec.rb
|
71
|
+
- spec/sample/calculates_tax_spec.rb
|
72
|
+
- spec/sample/looks_up_tax_percentage_action.rb
|
73
|
+
- spec/sample/provides_free_shipping_action_spec.rb
|
74
|
+
- spec/sample/tax/calculates_order_tax_action.rb
|
75
|
+
- spec/sample/tax/calculates_tax.rb
|
76
|
+
- spec/sample/tax/looks_up_tax_percentage_action.rb
|
77
|
+
- spec/sample/tax/provides_free_shipping_action.rb
|
76
78
|
- spec/spec_helper.rb
|
77
79
|
homepage: ''
|
78
80
|
licenses: []
|
@@ -94,19 +96,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
96
|
version: '0'
|
95
97
|
requirements: []
|
96
98
|
rubyforge_project:
|
97
|
-
rubygems_version: 1.8.
|
99
|
+
rubygems_version: 1.8.23
|
98
100
|
signing_key:
|
99
101
|
specification_version: 3
|
100
102
|
summary: A service skeleton with an emphasis on simplicity
|
101
103
|
test_files:
|
102
|
-
- spec/acceptance/
|
103
|
-
- spec/acceptance/calculates_tax_spec.rb
|
104
|
-
- spec/acceptance/looks_up_tax_percentage_action.rb
|
105
|
-
- spec/acceptance/provides_free_shipping_action_spec.rb
|
106
|
-
- spec/acceptance/sample/calculates_order_tax_action.rb
|
107
|
-
- spec/acceptance/sample/calculates_tax.rb
|
108
|
-
- spec/acceptance/sample/looks_up_tax_percentage_action.rb
|
109
|
-
- spec/acceptance/sample/provides_free_shipping_action.rb
|
104
|
+
- spec/acceptance/add_numbers_spec.rb
|
110
105
|
- spec/action_base_spec.rb
|
111
106
|
- spec/context_spec.rb
|
107
|
+
- spec/sample/calculates_order_tax_action_spec.rb
|
108
|
+
- spec/sample/calculates_tax_spec.rb
|
109
|
+
- spec/sample/looks_up_tax_percentage_action.rb
|
110
|
+
- spec/sample/provides_free_shipping_action_spec.rb
|
111
|
+
- spec/sample/tax/calculates_order_tax_action.rb
|
112
|
+
- spec/sample/tax/calculates_tax.rb
|
113
|
+
- spec/sample/tax/looks_up_tax_percentage_action.rb
|
114
|
+
- spec/sample/tax/provides_free_shipping_action.rb
|
112
115
|
- spec/spec_helper.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require_relative 'sample/calculates_tax'
|
3
|
-
require_relative 'sample/looks_up_tax_percentage_action'
|
4
|
-
require_relative 'sample/calculates_order_tax_action'
|
5
|
-
require_relative 'sample/provides_free_shipping_action'
|
6
|
-
|
7
|
-
describe CalculatesTax do
|
8
|
-
let(:order) { double('order') }
|
9
|
-
let(:context) { double('context') }
|
10
|
-
|
11
|
-
it "calls the actions in order" do
|
12
|
-
::LightService::Context.stub(:make) \
|
13
|
-
.with(:order => order) \
|
14
|
-
.and_return context
|
15
|
-
|
16
|
-
LooksUpTaxPercentageAction.stub(:execute).with(context)
|
17
|
-
CalculatesOrderTaxAction.stub(:execute).with(context)
|
18
|
-
ProvidesFreeShippingAction.stub(:execute).with(context)
|
19
|
-
|
20
|
-
result = CalculatesTax.for_order(order)
|
21
|
-
result.should eq context
|
22
|
-
end
|
23
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
class CalculatesTax
|
2
|
-
def self.for_order(order)
|
3
|
-
context = ::LightService::Context.make(:order => order)
|
4
|
-
|
5
|
-
[
|
6
|
-
LooksUpTaxPercentageAction,
|
7
|
-
CalculatesOrderTaxAction,
|
8
|
-
ProvidesFreeShippingAction
|
9
|
-
].each{ |action| action.execute(context) }
|
10
|
-
|
11
|
-
context
|
12
|
-
end
|
13
|
-
end
|