serf 0.10.0 → 0.11.0
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/.gitignore +21 -0
- data/.travis.yml +7 -0
- data/Gemfile +20 -26
- data/Guardfile +16 -0
- data/NOTICE.txt +1 -1
- data/README.md +223 -207
- data/Rakefile +3 -18
- data/lib/serf/builder.rb +31 -136
- data/lib/serf/errors/policy_failure.rb +10 -0
- data/lib/serf/middleware/error_handler.rb +53 -0
- data/lib/serf/middleware/parcel_freezer.rb +36 -0
- data/lib/serf/middleware/parcel_masher.rb +39 -0
- data/lib/serf/middleware/policy_checker.rb +31 -0
- data/lib/serf/middleware/uuid_tagger.rb +13 -11
- data/lib/serf/parcel_builder.rb +30 -0
- data/lib/serf/serfer.rb +27 -66
- data/lib/serf/util/error_handling.rb +13 -36
- data/lib/serf/util/protected_call.rb +2 -2
- data/lib/serf/util/uuidable.rb +14 -38
- data/lib/serf/version.rb +1 -1
- data/schemas/{caught_exception_event.json → serf/events/caught_error.json} +4 -7
- data/serf.gemspec +22 -101
- data/spec/serf/builder_spec.rb +44 -0
- data/spec/serf/errors/policy_failure_spec.rb +11 -0
- data/spec/serf/middleware/error_handler_spec.rb +48 -0
- data/spec/serf/middleware/parcel_freezer_spec.rb +20 -0
- data/spec/serf/middleware/parcel_masher_spec.rb +30 -0
- data/spec/serf/middleware/policy_checker_spec.rb +70 -0
- data/spec/serf/middleware/uuid_tagger_spec.rb +32 -0
- data/spec/serf/parcel_builder_spec.rb +46 -0
- data/spec/serf/serfer_spec.rb +61 -0
- data/spec/serf/util/error_handling_spec.rb +35 -0
- data/spec/serf/util/null_object_spec.rb +26 -0
- data/spec/serf/util/options_extraction_spec.rb +62 -0
- data/spec/serf/util/protected_call_spec.rb +33 -0
- data/spec/serf/util/uuidable_spec.rb +56 -0
- data/spec/serf_spec.rb +1 -4
- data/spec/spec_helper.rb +3 -0
- data/spec/support/error_handling_wrapper.rb +5 -0
- data/spec/support/factories.rb +32 -0
- data/spec/support/failing_policy.rb +9 -0
- data/spec/support/json_schema_tester.rb +14 -0
- data/spec/support/options_extraction_wrapper.rb +10 -0
- data/spec/support/passing_policy.rb +7 -0
- data/spec/support/protected_call_wrapper.rb +5 -0
- metadata +81 -131
- data/.document +0 -5
- data/.rspec +0 -1
- data/Gemfile.lock +0 -58
- data/docs/thread_pools.txt +0 -16
- data/lib/serf/command.rb +0 -79
- data/lib/serf/error.rb +0 -11
- data/lib/serf/errors/not_found.rb +0 -8
- data/lib/serf/middleware/girl_friday_async.rb +0 -39
- data/lib/serf/middleware/masherize.rb +0 -25
- data/lib/serf/routing/regexp_matcher.rb +0 -35
- data/lib/serf/routing/route.rb +0 -35
- data/lib/serf/routing/route_set.rb +0 -64
- data/schemas/message_accepted_event.json +0 -14
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'securerandom'
|
4
|
+
|
5
|
+
require 'serf/util/null_object'
|
6
|
+
|
7
|
+
describe Serf::Util::NullObject do
|
8
|
+
let(:random_method_name) {
|
9
|
+
SecureRandom.hex.to_sym
|
10
|
+
}
|
11
|
+
|
12
|
+
it 'returns itself on any fuzzy method call' do
|
13
|
+
subject.send(random_method_name).should == subject
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'returns itself on a missing method' do
|
17
|
+
subject.my_missing_method.should == subject
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'returns itself on a missing method with params' do
|
21
|
+
subject.my_missing_method(1,2,3,4) {
|
22
|
+
nil
|
23
|
+
}.should == subject
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
shared_examples '#opts with nonexistent option' do
|
4
|
+
context 'with missing option' do
|
5
|
+
|
6
|
+
it 'returns default data' do
|
7
|
+
subject.opts(:nonexistent_option, 'DEFAULT').should == 'DEFAULT'
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'returns nil data on no default' do
|
11
|
+
subject.opts(:nonexistent_option).should be_nil
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'returns block data' do
|
15
|
+
calculator = double('calculator')
|
16
|
+
calculator.should_receive(:calculate).and_return('DEFAULT')
|
17
|
+
subject.opts(:nonexistent_option) {
|
18
|
+
calculator.calculate
|
19
|
+
}.should == 'DEFAULT'
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
describe Serf::Util::OptionsExtraction do
|
27
|
+
let(:given_options) {
|
28
|
+
FactoryGirl.create :random_options
|
29
|
+
}
|
30
|
+
subject { OptionsExtractionWrapper.new given_options }
|
31
|
+
|
32
|
+
describe '#opts!' do
|
33
|
+
|
34
|
+
it 'returns given data' do
|
35
|
+
subject.opts!(:option_a).should == given_options.option_a
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'fails for missing option' do
|
39
|
+
expect {
|
40
|
+
subject.opts! :nonexistent_option
|
41
|
+
}.to raise_error
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
describe '#opts' do
|
47
|
+
|
48
|
+
it 'returns given data' do
|
49
|
+
subject.opts(:option_a).should == given_options.option_a
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
it_behaves_like '#opts with nonexistent option'
|
55
|
+
|
56
|
+
context 'with no options given' do
|
57
|
+
subject { OptionsExtractionWrapper.new }
|
58
|
+
|
59
|
+
it_behaves_like '#opts with nonexistent option'
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Serf::Util::ProtectedCall do
|
4
|
+
subject { ProtectedCallWrapper.new }
|
5
|
+
|
6
|
+
context 'has a raised error' do
|
7
|
+
|
8
|
+
it 'returns an error message' do
|
9
|
+
result, error = subject.pcall do
|
10
|
+
raise 'Some Error Message'
|
11
|
+
end
|
12
|
+
result.should be_nil
|
13
|
+
error.should be_a_kind_of(RuntimeError)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'has a succeeding app' do
|
19
|
+
let(:response_parcel) {
|
20
|
+
FactoryGirl.create :random_parcel
|
21
|
+
}
|
22
|
+
|
23
|
+
it 'returns a good response parcel' do
|
24
|
+
result, error = subject.pcall do
|
25
|
+
response_parcel
|
26
|
+
end
|
27
|
+
result.should == response_parcel
|
28
|
+
error.should be_nil
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'serf/util/uuidable'
|
4
|
+
|
5
|
+
##
|
6
|
+
# NOTE: Not really great tests here... I really should mock out
|
7
|
+
# the uuid_tool to really get at the meat of the work.
|
8
|
+
#
|
9
|
+
describe Serf::Util::Uuidable do
|
10
|
+
|
11
|
+
its(:create_coded_uuid) {
|
12
|
+
should_not be_nil
|
13
|
+
subject.size.should == 22
|
14
|
+
}
|
15
|
+
|
16
|
+
describe '#parse_coded_uuid' do
|
17
|
+
|
18
|
+
it 'works' do
|
19
|
+
subject.parse_coded_uuid subject.create_coded_uuid
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#create_uuids' do
|
25
|
+
|
26
|
+
it 'works with no parent' do
|
27
|
+
uuids = subject.create_uuids
|
28
|
+
uuids[:uuid].should_not be_nil
|
29
|
+
uuids[:parent_uuid].should be_nil
|
30
|
+
uuids[:origin_uuid].should be_nil
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'copies origin from parent' do
|
34
|
+
uuids = subject.create_uuids origin_uuid: 'MY_UUID'
|
35
|
+
uuids[:uuid].should_not be_nil
|
36
|
+
uuids[:parent_uuid].should be_nil
|
37
|
+
uuids[:origin_uuid].should == 'MY_UUID'
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'sets origin from parent[:parent_uuid] if origin is nonexistent ' do
|
41
|
+
uuids = subject.create_uuids parent_uuid: 'MY_UUID'
|
42
|
+
uuids[:uuid].should_not be_nil
|
43
|
+
uuids[:parent_uuid].should be_nil
|
44
|
+
uuids[:origin_uuid].should == 'MY_UUID'
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'sets origin, parent from parent[:uuid] on missing origin and parent' do
|
48
|
+
uuids = subject.create_uuids uuid: 'MY_UUID'
|
49
|
+
uuids[:uuid].should_not be_nil
|
50
|
+
uuids[:parent_uuid].should == 'MY_UUID'
|
51
|
+
uuids[:origin_uuid].should == 'MY_UUID'
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
data/spec/serf_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'factory_girl'
|
2
|
+
require 'hashie'
|
3
|
+
require 'securerandom'
|
4
|
+
|
5
|
+
FactoryGirl.define do
|
6
|
+
sequence(:random_string) { SecureRandom.hex }
|
7
|
+
|
8
|
+
factory :random_parcel, class: Hashie::Mash do
|
9
|
+
headers {{
|
10
|
+
uuid: generate(:random_string),
|
11
|
+
kind: generate(:random_string)
|
12
|
+
}}
|
13
|
+
message {{
|
14
|
+
some_data: generate(:random_string)
|
15
|
+
}}
|
16
|
+
end
|
17
|
+
|
18
|
+
factory :random_headers, class: Hashie::Mash do
|
19
|
+
uuid { generate(:random_string) }
|
20
|
+
kind { generate(:random_string) }
|
21
|
+
end
|
22
|
+
|
23
|
+
factory :random_message, class: Hashie::Mash do
|
24
|
+
data { generate(:random_string) }
|
25
|
+
end
|
26
|
+
|
27
|
+
factory :random_options, class: Hashie::Mash do
|
28
|
+
option_a { generate(:random_string) }
|
29
|
+
option_b { generate(:random_string) }
|
30
|
+
option_c { generate(:random_string) }
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'json-schema'
|
2
|
+
|
3
|
+
class JsonSchemaTester
|
4
|
+
SCHEMA_ROOT = File.join(File.dirname(__FILE__), '..', '..', 'schemas')
|
5
|
+
|
6
|
+
def path_for(kind)
|
7
|
+
"#{SCHEMA_ROOT}/#{kind}.json"
|
8
|
+
end
|
9
|
+
|
10
|
+
def validate_for!(kind, data)
|
11
|
+
JSON::Validator.validate! path_for(kind), data
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,33 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05
|
12
|
+
date: 2012-11-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: activesupport
|
16
|
-
requirement: &70327288822860 !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 3.2.0
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: *70327288822860
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: i18n
|
27
|
-
requirement: &70327288821320 !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
|
-
requirements:
|
30
|
-
- - ! '>='
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 0.6.0
|
33
|
-
type: :runtime
|
34
|
-
prerelease: false
|
35
|
-
version_requirements: *70327288821320
|
36
14
|
- !ruby/object:Gem::Dependency
|
37
15
|
name: hashie
|
38
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
39
17
|
none: false
|
40
18
|
requirements:
|
41
19
|
- - ! '>='
|
@@ -43,145 +21,70 @@ dependencies:
|
|
43
21
|
version: 1.2.0
|
44
22
|
type: :runtime
|
45
23
|
prerelease: false
|
46
|
-
version_requirements:
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: uuidtools
|
49
|
-
requirement: &70327288842560 !ruby/object:Gem::Requirement
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
25
|
none: false
|
51
26
|
requirements:
|
52
27
|
- - ! '>='
|
53
28
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
type: :runtime
|
56
|
-
prerelease: false
|
57
|
-
version_requirements: *70327288842560
|
58
|
-
- !ruby/object:Gem::Dependency
|
59
|
-
name: rspec
|
60
|
-
requirement: &70327288841020 !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
|
-
requirements:
|
63
|
-
- - ~>
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: 2.8.0
|
66
|
-
type: :development
|
67
|
-
prerelease: false
|
68
|
-
version_requirements: *70327288841020
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: yard
|
71
|
-
requirement: &70327288839480 !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
|
-
requirements:
|
74
|
-
- - ~>
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 0.7.5
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: *70327288839480
|
80
|
-
- !ruby/object:Gem::Dependency
|
81
|
-
name: bundler
|
82
|
-
requirement: &70327288837820 !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
|
-
requirements:
|
85
|
-
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
version: 1.1.3
|
88
|
-
type: :development
|
89
|
-
prerelease: false
|
90
|
-
version_requirements: *70327288837820
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: jeweler
|
93
|
-
requirement: &70327288847420 !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
95
|
-
requirements:
|
96
|
-
- - ~>
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: 1.8.3
|
99
|
-
type: :development
|
100
|
-
prerelease: false
|
101
|
-
version_requirements: *70327288847420
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: simplecov
|
104
|
-
requirement: &70327288845020 !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
type: :development
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: *70327288845020
|
29
|
+
version: 1.2.0
|
113
30
|
- !ruby/object:Gem::Dependency
|
114
|
-
name:
|
115
|
-
requirement:
|
31
|
+
name: ice_nine
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
116
33
|
none: false
|
117
34
|
requirements:
|
118
35
|
- - ! '>='
|
119
36
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
121
|
-
type: :
|
37
|
+
version: 0.4.0
|
38
|
+
type: :runtime
|
122
39
|
prerelease: false
|
123
|
-
version_requirements:
|
124
|
-
- !ruby/object:Gem::Dependency
|
125
|
-
name: msgpack
|
126
|
-
requirement: &70327288858080 !ruby/object:Gem::Requirement
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
41
|
none: false
|
128
42
|
requirements:
|
129
43
|
- - ! '>='
|
130
44
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0.4.
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: *70327288858080
|
45
|
+
version: 0.4.0
|
135
46
|
- !ruby/object:Gem::Dependency
|
136
|
-
name:
|
137
|
-
requirement:
|
47
|
+
name: uuidtools
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
138
49
|
none: false
|
139
50
|
requirements:
|
140
51
|
- - ! '>='
|
141
52
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
143
|
-
type: :
|
53
|
+
version: 2.1.3
|
54
|
+
type: :runtime
|
144
55
|
prerelease: false
|
145
|
-
version_requirements:
|
146
|
-
- !ruby/object:Gem::Dependency
|
147
|
-
name: girl_friday
|
148
|
-
requirement: &70327288856640 !ruby/object:Gem::Requirement
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
57
|
none: false
|
150
58
|
requirements:
|
151
59
|
- - ! '>='
|
152
60
|
- !ruby/object:Gem::Version
|
153
|
-
version:
|
154
|
-
|
155
|
-
prerelease: false
|
156
|
-
version_requirements: *70327288856640
|
157
|
-
description: Event-Driven SOA with CQRS
|
61
|
+
version: 2.1.3
|
62
|
+
description: Interactors with policy protection
|
158
63
|
email: benjaminlyu@gmail.com
|
159
64
|
executables: []
|
160
65
|
extensions: []
|
161
66
|
extra_rdoc_files:
|
162
67
|
- LICENSE.txt
|
68
|
+
- NOTICE.txt
|
163
69
|
- README.md
|
164
70
|
files:
|
165
|
-
- .
|
166
|
-
- .
|
71
|
+
- .gitignore
|
72
|
+
- .travis.yml
|
167
73
|
- Gemfile
|
168
|
-
-
|
74
|
+
- Guardfile
|
169
75
|
- LICENSE.txt
|
170
76
|
- NOTICE.txt
|
171
77
|
- README.md
|
172
78
|
- Rakefile
|
173
|
-
- docs/thread_pools.txt
|
174
79
|
- lib/serf.rb
|
175
80
|
- lib/serf/builder.rb
|
176
|
-
- lib/serf/
|
177
|
-
- lib/serf/
|
178
|
-
- lib/serf/
|
179
|
-
- lib/serf/middleware/
|
180
|
-
- lib/serf/middleware/
|
81
|
+
- lib/serf/errors/policy_failure.rb
|
82
|
+
- lib/serf/middleware/error_handler.rb
|
83
|
+
- lib/serf/middleware/parcel_freezer.rb
|
84
|
+
- lib/serf/middleware/parcel_masher.rb
|
85
|
+
- lib/serf/middleware/policy_checker.rb
|
181
86
|
- lib/serf/middleware/uuid_tagger.rb
|
182
|
-
- lib/serf/
|
183
|
-
- lib/serf/routing/route.rb
|
184
|
-
- lib/serf/routing/route_set.rb
|
87
|
+
- lib/serf/parcel_builder.rb
|
185
88
|
- lib/serf/serfer.rb
|
186
89
|
- lib/serf/util/error_handling.rb
|
187
90
|
- lib/serf/util/null_object.rb
|
@@ -189,11 +92,31 @@ files:
|
|
189
92
|
- lib/serf/util/protected_call.rb
|
190
93
|
- lib/serf/util/uuidable.rb
|
191
94
|
- lib/serf/version.rb
|
192
|
-
- schemas/
|
193
|
-
- schemas/message_accepted_event.json
|
95
|
+
- schemas/serf/events/caught_error.json
|
194
96
|
- serf.gemspec
|
97
|
+
- spec/serf/builder_spec.rb
|
98
|
+
- spec/serf/errors/policy_failure_spec.rb
|
99
|
+
- spec/serf/middleware/error_handler_spec.rb
|
100
|
+
- spec/serf/middleware/parcel_freezer_spec.rb
|
101
|
+
- spec/serf/middleware/parcel_masher_spec.rb
|
102
|
+
- spec/serf/middleware/policy_checker_spec.rb
|
103
|
+
- spec/serf/middleware/uuid_tagger_spec.rb
|
104
|
+
- spec/serf/parcel_builder_spec.rb
|
105
|
+
- spec/serf/serfer_spec.rb
|
106
|
+
- spec/serf/util/error_handling_spec.rb
|
107
|
+
- spec/serf/util/null_object_spec.rb
|
108
|
+
- spec/serf/util/options_extraction_spec.rb
|
109
|
+
- spec/serf/util/protected_call_spec.rb
|
110
|
+
- spec/serf/util/uuidable_spec.rb
|
195
111
|
- spec/serf_spec.rb
|
196
112
|
- spec/spec_helper.rb
|
113
|
+
- spec/support/error_handling_wrapper.rb
|
114
|
+
- spec/support/factories.rb
|
115
|
+
- spec/support/failing_policy.rb
|
116
|
+
- spec/support/json_schema_tester.rb
|
117
|
+
- spec/support/options_extraction_wrapper.rb
|
118
|
+
- spec/support/passing_policy.rb
|
119
|
+
- spec/support/protected_call_wrapper.rb
|
197
120
|
homepage: http://github.com/byu/serf
|
198
121
|
licenses:
|
199
122
|
- Apache 2.0
|
@@ -209,17 +132,44 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
209
132
|
version: '0'
|
210
133
|
segments:
|
211
134
|
- 0
|
212
|
-
hash:
|
135
|
+
hash: 3096022116459469640
|
213
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
214
137
|
none: false
|
215
138
|
requirements:
|
216
139
|
- - ! '>='
|
217
140
|
- !ruby/object:Gem::Version
|
218
141
|
version: '0'
|
142
|
+
segments:
|
143
|
+
- 0
|
144
|
+
hash: 3096022116459469640
|
219
145
|
requirements: []
|
220
146
|
rubyforge_project:
|
221
|
-
rubygems_version: 1.8.
|
147
|
+
rubygems_version: 1.8.23
|
222
148
|
signing_key:
|
223
149
|
specification_version: 3
|
224
|
-
summary:
|
225
|
-
test_files:
|
150
|
+
summary: Interactors with policy protection
|
151
|
+
test_files:
|
152
|
+
- spec/serf/builder_spec.rb
|
153
|
+
- spec/serf/errors/policy_failure_spec.rb
|
154
|
+
- spec/serf/middleware/error_handler_spec.rb
|
155
|
+
- spec/serf/middleware/parcel_freezer_spec.rb
|
156
|
+
- spec/serf/middleware/parcel_masher_spec.rb
|
157
|
+
- spec/serf/middleware/policy_checker_spec.rb
|
158
|
+
- spec/serf/middleware/uuid_tagger_spec.rb
|
159
|
+
- spec/serf/parcel_builder_spec.rb
|
160
|
+
- spec/serf/serfer_spec.rb
|
161
|
+
- spec/serf/util/error_handling_spec.rb
|
162
|
+
- spec/serf/util/null_object_spec.rb
|
163
|
+
- spec/serf/util/options_extraction_spec.rb
|
164
|
+
- spec/serf/util/protected_call_spec.rb
|
165
|
+
- spec/serf/util/uuidable_spec.rb
|
166
|
+
- spec/serf_spec.rb
|
167
|
+
- spec/spec_helper.rb
|
168
|
+
- spec/support/error_handling_wrapper.rb
|
169
|
+
- spec/support/factories.rb
|
170
|
+
- spec/support/failing_policy.rb
|
171
|
+
- spec/support/json_schema_tester.rb
|
172
|
+
- spec/support/options_extraction_wrapper.rb
|
173
|
+
- spec/support/passing_policy.rb
|
174
|
+
- spec/support/protected_call_wrapper.rb
|
175
|
+
has_rdoc:
|
data/.document
DELETED
data/.rspec
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--color
|
data/Gemfile.lock
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
activesupport (3.2.2)
|
5
|
-
i18n (~> 0.6)
|
6
|
-
multi_json (~> 1.0)
|
7
|
-
connection_pool (0.1.0)
|
8
|
-
diff-lcs (1.1.3)
|
9
|
-
eventmachine (0.12.10)
|
10
|
-
girl_friday (0.9.7)
|
11
|
-
connection_pool (~> 0.1.0)
|
12
|
-
git (1.2.5)
|
13
|
-
hashie (1.2.0)
|
14
|
-
i18n (0.6.0)
|
15
|
-
jeweler (1.8.3)
|
16
|
-
bundler (~> 1.0)
|
17
|
-
git (>= 1.2.5)
|
18
|
-
rake
|
19
|
-
rdoc
|
20
|
-
json (1.6.5)
|
21
|
-
log4r (1.1.10)
|
22
|
-
msgpack (0.4.6)
|
23
|
-
multi_json (1.1.0)
|
24
|
-
rake (0.9.2.2)
|
25
|
-
rdoc (3.12)
|
26
|
-
json (~> 1.4)
|
27
|
-
rspec (2.8.0)
|
28
|
-
rspec-core (~> 2.8.0)
|
29
|
-
rspec-expectations (~> 2.8.0)
|
30
|
-
rspec-mocks (~> 2.8.0)
|
31
|
-
rspec-core (2.8.0)
|
32
|
-
rspec-expectations (2.8.0)
|
33
|
-
diff-lcs (~> 1.1.2)
|
34
|
-
rspec-mocks (2.8.0)
|
35
|
-
simplecov (0.6.1)
|
36
|
-
multi_json (~> 1.0)
|
37
|
-
simplecov-html (~> 0.5.3)
|
38
|
-
simplecov-html (0.5.3)
|
39
|
-
uuidtools (2.1.2)
|
40
|
-
yard (0.7.5)
|
41
|
-
|
42
|
-
PLATFORMS
|
43
|
-
ruby
|
44
|
-
|
45
|
-
DEPENDENCIES
|
46
|
-
activesupport (>= 3.2.0)
|
47
|
-
bundler (~> 1.1.3)
|
48
|
-
eventmachine (>= 0.12.10)
|
49
|
-
girl_friday (>= 0.9.7)
|
50
|
-
hashie (>= 1.2.0)
|
51
|
-
i18n (>= 0.6.0)
|
52
|
-
jeweler (~> 1.8.3)
|
53
|
-
log4r (>= 1.1.10)
|
54
|
-
msgpack (>= 0.4.6)
|
55
|
-
rspec (~> 2.8.0)
|
56
|
-
simplecov
|
57
|
-
uuidtools (>= 2.1.2)
|
58
|
-
yard (~> 0.7.5)
|
data/docs/thread_pools.txt
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
Serf drives the incoming requests using runners. Each runner
|
2
|
-
is implemented to either perform tasks synchronously or asynchronously.
|
3
|
-
For asynchronous background processing, we rely on third party
|
4
|
-
libraries. The following is a list of current and (hopefully) future
|
5
|
-
libraries we hope to support.
|
6
|
-
|
7
|
-
Implemented Runners:
|
8
|
-
* EventMachine http://rubyeventmachine.com/
|
9
|
-
* GirlFriday https://github.com/mperham/girl_friday
|
10
|
-
|
11
|
-
TBD ThreadPool Libraries:
|
12
|
-
* ThreadPool https://github.com/danielbush/ThreadPool
|
13
|
-
* Threadz https://github.com/nanodeath/threadz
|
14
|
-
* Celluloid https://github.com/tarcieri/celluloid
|
15
|
-
* Resque https://github.com/defunkt/resque
|
16
|
-
* DelayedJob https://github.com/tobi/delayed_job
|