serf 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/Guardfile +1 -2
- data/README.md +131 -15
- data/example/components/logger.serf +7 -0
- data/example/serfs/create_widget.serf +24 -0
- data/lib/serf/builder.rb +7 -6
- data/lib/serf/loader.rb +16 -0
- data/lib/serf/loader/loader.rb +103 -0
- data/lib/serf/loader/registry.rb +86 -0
- data/lib/serf/middleware/error_handler.rb +4 -4
- data/lib/serf/middleware/parcel_freezer.rb +3 -6
- data/lib/serf/middleware/parcel_masher.rb +3 -6
- data/lib/serf/middleware/policy_checker.rb +3 -5
- data/lib/serf/middleware/request_timer.rb +47 -0
- data/lib/serf/middleware/uuid_tagger.rb +3 -5
- data/lib/serf/parcel_builder.rb +3 -6
- data/lib/serf/serfer.rb +5 -7
- data/lib/serf/util/uuidable.rb +3 -6
- data/lib/serf/version.rb +1 -1
- data/serf.gemspec +1 -0
- data/spec/serf/builder_spec.rb +4 -5
- data/spec/serf/errors/policy_failure_spec.rb +1 -1
- data/spec/serf/loader/loader_spec.rb +73 -0
- data/spec/serf/loader/registry_spec.rb +62 -0
- data/spec/serf/loader_spec.rb +57 -0
- data/spec/serf/middleware/error_handler_spec.rb +2 -2
- data/spec/serf/middleware/parcel_freezer_spec.rb +2 -2
- data/spec/serf/middleware/parcel_masher_spec.rb +5 -5
- data/spec/serf/middleware/policy_checker_spec.rb +3 -3
- data/spec/serf/middleware/request_timer_spec.rb +43 -0
- data/spec/serf/middleware/uuid_tagger_spec.rb +4 -4
- data/spec/serf/parcel_builder_spec.rb +7 -7
- data/spec/serf/serfer_spec.rb +4 -4
- data/spec/serf/util/error_handling_spec.rb +3 -3
- data/spec/serf/util/null_object_spec.rb +4 -4
- data/spec/serf/util/protected_call_spec.rb +4 -4
- data/spec/serf/util/uuidable_spec.rb +15 -15
- data/spec/support/factories.rb +7 -0
- metadata +34 -9
- data/lib/serf/util/options_extraction.rb +0 -117
- data/spec/serf/util/options_extraction_spec.rb +0 -62
- data/spec/support/options_extraction_wrapper.rb +0 -10
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'serf/loader'
|
4
|
+
|
5
|
+
describe Serf::Loader do
|
6
|
+
let(:root_library_path) {
|
7
|
+
File.join(File.dirname(__FILE__), '../..')
|
8
|
+
}
|
9
|
+
|
10
|
+
context '.serfup' do
|
11
|
+
let(:random_message) {
|
12
|
+
FactoryGirl.create :random_message
|
13
|
+
}
|
14
|
+
subject {
|
15
|
+
Serf::Loader.serfup(
|
16
|
+
globs: [
|
17
|
+
'example/**/*.serf'
|
18
|
+
],
|
19
|
+
serfs: [
|
20
|
+
'subsystem/requests/create_widget'
|
21
|
+
],
|
22
|
+
base_path: root_library_path,
|
23
|
+
env: {
|
24
|
+
success_message: random_message
|
25
|
+
})
|
26
|
+
}
|
27
|
+
|
28
|
+
it 'loads the Serfs into a frozen Serf Map' do
|
29
|
+
expect(subject.frozen?).to be_true
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'loads our only serf into the map' do
|
33
|
+
expect(subject.size).to eq(1)
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'gives us a proper callable serf' do
|
37
|
+
serf = subject['subsystem/requests/create_widget']
|
38
|
+
expect(subject).to_not be_nil
|
39
|
+
|
40
|
+
results = serf.call({})
|
41
|
+
expect(results).to_not be_nil
|
42
|
+
expect(results.headers.kind).to_not eq('serf/events/caught_error')
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'returns nil on not found parcel kind' do
|
46
|
+
expect(subject[nil]).to be_nil
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'passes in a good environment' do
|
50
|
+
serf = subject['subsystem/requests/create_widget']
|
51
|
+
results = serf.call({})
|
52
|
+
expect(results.headers.kind).to eq('subsystem/events/mywidget_created')
|
53
|
+
expect(results.message.success_message).to eq(random_message)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -22,7 +22,7 @@ describe Serf::Middleware::ErrorHandler do
|
|
22
22
|
|
23
23
|
it 'has an error parcel kind' do
|
24
24
|
parcel = subject.call({})
|
25
|
-
parcel[:headers][:kind].
|
25
|
+
expect(parcel[:headers][:kind]).to eq('serf/events/caught_error')
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -38,7 +38,7 @@ describe Serf::Middleware::ErrorHandler do
|
|
38
38
|
|
39
39
|
it 'returns a good response parcel' do
|
40
40
|
parcel = subject.call({})
|
41
|
-
parcel.
|
41
|
+
expect(parcel).to eq(response_parcel)
|
42
42
|
end
|
43
43
|
|
44
44
|
end
|
@@ -9,10 +9,10 @@ describe Serf::Middleware::ParcelFreezer do
|
|
9
9
|
it 'freezes the parcel' do
|
10
10
|
parcel = {}
|
11
11
|
app = described_class.new proc { |parcel|
|
12
|
-
parcel.frozen
|
12
|
+
expect(parcel.frozen?).to be_true
|
13
13
|
}
|
14
14
|
app.call parcel
|
15
|
-
parcel.frozen
|
15
|
+
expect(parcel.frozen?).to be_true
|
16
16
|
end
|
17
17
|
|
18
18
|
end
|
@@ -8,19 +8,19 @@ describe Serf::Middleware::ParcelMasher do
|
|
8
8
|
|
9
9
|
describe '#call' do
|
10
10
|
|
11
|
-
it '
|
11
|
+
it 'makes Hashie::Mash of the parcel' do
|
12
12
|
parcel = nil
|
13
13
|
app = described_class.new proc { |parcel|
|
14
|
-
parcel.
|
14
|
+
expect(parcel).to be_a_kind_of(Hashie::Mash)
|
15
15
|
}
|
16
16
|
app.call parcel
|
17
17
|
end
|
18
18
|
|
19
|
-
it '
|
19
|
+
it 'autocreate headers and message' do
|
20
20
|
parcel = nil
|
21
21
|
app = described_class.new proc { |parcel|
|
22
|
-
parcel.headers.
|
23
|
-
parcel.message.
|
22
|
+
expect(parcel.headers).to be_a_kind_of(Hashie::Mash)
|
23
|
+
expect(parcel.message).to be_a_kind_of(Hashie::Mash)
|
24
24
|
}
|
25
25
|
app.call parcel
|
26
26
|
end
|
@@ -9,7 +9,7 @@ describe Serf::Middleware::PolicyChecker do
|
|
9
9
|
|
10
10
|
context 'when policy raises error' do
|
11
11
|
|
12
|
-
it '
|
12
|
+
it 'does not call app' do
|
13
13
|
uncalled_mock = double 'uncalled mock'
|
14
14
|
app = described_class.new(
|
15
15
|
uncalled_mock,
|
@@ -27,7 +27,7 @@ describe Serf::Middleware::PolicyChecker do
|
|
27
27
|
|
28
28
|
context 'when all policies pass' do
|
29
29
|
|
30
|
-
it '
|
30
|
+
it 'calls the app' do
|
31
31
|
parcel = double 'parcel'
|
32
32
|
parcel.should_receive :some_success
|
33
33
|
app = described_class.new(
|
@@ -43,7 +43,7 @@ describe Serf::Middleware::PolicyChecker do
|
|
43
43
|
|
44
44
|
end
|
45
45
|
|
46
|
-
it '
|
46
|
+
it 'iterates the policy chain' do
|
47
47
|
count = 10
|
48
48
|
policy_chain = (1..count).map { |i|
|
49
49
|
policy = double 'policy'
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'serf/middleware/request_timer'
|
4
|
+
|
5
|
+
describe Serf::Middleware::RequestTimer do
|
6
|
+
|
7
|
+
describe '#call' do
|
8
|
+
let(:empty_parcel) {
|
9
|
+
FactoryGirl.create :empty_parcel
|
10
|
+
}
|
11
|
+
let(:elapsed_time) {
|
12
|
+
rand(1000000)
|
13
|
+
}
|
14
|
+
|
15
|
+
it 'annotates the response parcel with the elapsed call time' do
|
16
|
+
# Mock Timer Ojbect
|
17
|
+
mock_timer_obj = double 'TimerObj'
|
18
|
+
mock_timer_obj.
|
19
|
+
should_receive(:mark).
|
20
|
+
and_return(elapsed_time)
|
21
|
+
|
22
|
+
# Mock Timer Class
|
23
|
+
mock_timer_class = double 'TimerClass'
|
24
|
+
mock_timer_class.
|
25
|
+
should_receive(:start).
|
26
|
+
and_return(mock_timer_obj)
|
27
|
+
|
28
|
+
# Mock App
|
29
|
+
mock_app = double 'MyApp'
|
30
|
+
mock_app.
|
31
|
+
should_receive(:call).
|
32
|
+
with({}).
|
33
|
+
and_return(empty_parcel)
|
34
|
+
|
35
|
+
# Execute the Test
|
36
|
+
request_timer = described_class.new mock_app, :timer => mock_timer_class
|
37
|
+
response_parcel = request_timer.call({})
|
38
|
+
expect(response_parcel.headers.elapsed_time).to eq(elapsed_time)
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
@@ -6,15 +6,15 @@ describe Serf::Middleware::UuidTagger do
|
|
6
6
|
|
7
7
|
describe '#call' do
|
8
8
|
|
9
|
-
it '
|
9
|
+
it 'adds uuid the parcel header' do
|
10
10
|
parcel = {}
|
11
11
|
app = described_class.new proc { |parcel|
|
12
|
-
parcel[:headers][:uuid].
|
12
|
+
expect(parcel[:headers][:uuid]).to_not be_nil
|
13
13
|
}
|
14
14
|
app.call parcel
|
15
15
|
end
|
16
16
|
|
17
|
-
it '
|
17
|
+
it 'does not change the existing uuid' do
|
18
18
|
uuid = '0d3eccaabcc46c3bcbe2a53c4505e352'
|
19
19
|
parcel = {
|
20
20
|
headers: {
|
@@ -22,7 +22,7 @@ describe Serf::Middleware::UuidTagger do
|
|
22
22
|
}
|
23
23
|
}
|
24
24
|
app = described_class.new proc { |parcel|
|
25
|
-
parcel[:headers][:uuid].
|
25
|
+
expect(parcel[:headers][:uuid]).to eq(uuid)
|
26
26
|
}
|
27
27
|
app.call parcel
|
28
28
|
end
|
@@ -16,29 +16,29 @@ describe Serf::ParcelBuilder do
|
|
16
16
|
|
17
17
|
it 'returns a Hashie' do
|
18
18
|
parcel = subject.build
|
19
|
-
parcel.
|
19
|
+
expect(parcel).to be_a_kind_of(Hashie::Mash)
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'sets default parcel headers' do
|
23
23
|
parcel = subject.build
|
24
|
-
parcel[:headers].
|
24
|
+
expect(parcel[:headers]).to eq({})
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'sets default parcel message' do
|
28
28
|
parcel = subject.build
|
29
|
-
parcel[:headers].
|
29
|
+
expect(parcel[:headers]).to eq({})
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'sets given headers and message' do
|
33
33
|
parcel = subject.build random_headers, random_message
|
34
|
-
parcel[:headers].
|
35
|
-
parcel[:message].
|
34
|
+
expect(parcel[:headers]).to eq(random_headers)
|
35
|
+
expect(parcel[:message]).to eq(random_message)
|
36
36
|
end
|
37
37
|
|
38
38
|
it 'will coerce headers and message into Hashie::Mash' do
|
39
39
|
parcel = subject.build nil, nil
|
40
|
-
parcel[:headers].
|
41
|
-
parcel[:message].
|
40
|
+
expect(parcel[:headers]).to be_a_kind_of(Hashie::Mash)
|
41
|
+
expect(parcel[:message]).to be_a_kind_of(Hashie::Mash)
|
42
42
|
end
|
43
43
|
|
44
44
|
end
|
data/spec/serf/serfer_spec.rb
CHANGED
@@ -26,12 +26,12 @@ describe Serf::Serfer do
|
|
26
26
|
mock_app.
|
27
27
|
should_receive(:call).
|
28
28
|
with(request_message).
|
29
|
-
and_return(response_message)
|
29
|
+
and_return([nil, response_message])
|
30
30
|
serfer = described_class.new mock_app
|
31
31
|
parcel = serfer.call(
|
32
32
|
headers: nil,
|
33
33
|
message: request_message)
|
34
|
-
parcel.message.
|
34
|
+
expect(parcel.message).to eq(response_message)
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'sets the kind header in response' do
|
@@ -39,12 +39,12 @@ describe Serf::Serfer do
|
|
39
39
|
mock_app.
|
40
40
|
should_receive(:call).
|
41
41
|
with(request_message).
|
42
|
-
and_return([
|
42
|
+
and_return(['KIND', response_message])
|
43
43
|
serfer = described_class.new mock_app
|
44
44
|
parcel = serfer.call(
|
45
45
|
headers: nil,
|
46
46
|
message: request_message)
|
47
|
-
parcel.headers.kind.
|
47
|
+
expect(parcel.headers.kind).to eq('KIND')
|
48
48
|
end
|
49
49
|
|
50
50
|
it 'generate uuids' do
|
@@ -9,7 +9,7 @@ describe Serf::Util::ErrorHandling do
|
|
9
9
|
result, error = subject.with_error_handling do
|
10
10
|
raise 'Some Error Message'
|
11
11
|
end
|
12
|
-
result.
|
12
|
+
expect(result).to be_nil
|
13
13
|
JsonSchemaTester.new.validate_for!(
|
14
14
|
'serf/events/caught_error',
|
15
15
|
error)
|
@@ -26,8 +26,8 @@ describe Serf::Util::ErrorHandling do
|
|
26
26
|
result, error = subject.with_error_handling do
|
27
27
|
response_parcel
|
28
28
|
end
|
29
|
-
result.
|
30
|
-
error.
|
29
|
+
expect(result).to eq(response_parcel)
|
30
|
+
expect(error).to be_nil
|
31
31
|
end
|
32
32
|
|
33
33
|
end
|
@@ -10,17 +10,17 @@ describe Serf::Util::NullObject do
|
|
10
10
|
}
|
11
11
|
|
12
12
|
it 'returns itself on any fuzzy method call' do
|
13
|
-
subject.send(random_method_name).
|
13
|
+
expect(subject.send(random_method_name)).to eq(subject)
|
14
14
|
end
|
15
15
|
|
16
16
|
it 'returns itself on a missing method' do
|
17
|
-
subject.my_missing_method.
|
17
|
+
expect(subject.my_missing_method).to eq(subject)
|
18
18
|
end
|
19
19
|
|
20
20
|
it 'returns itself on a missing method with params' do
|
21
|
-
subject.my_missing_method(1,2,3,4) {
|
21
|
+
expect(subject.my_missing_method(1,2,3,4) {
|
22
22
|
nil
|
23
|
-
}.
|
23
|
+
}).to eq(subject)
|
24
24
|
end
|
25
25
|
|
26
26
|
end
|
@@ -9,8 +9,8 @@ describe Serf::Util::ProtectedCall do
|
|
9
9
|
result, error = subject.pcall do
|
10
10
|
raise 'Some Error Message'
|
11
11
|
end
|
12
|
-
result.
|
13
|
-
error.
|
12
|
+
expect(result).to be_nil
|
13
|
+
expect(error).to be_a_kind_of(RuntimeError)
|
14
14
|
end
|
15
15
|
|
16
16
|
end
|
@@ -24,8 +24,8 @@ describe Serf::Util::ProtectedCall do
|
|
24
24
|
result, error = subject.pcall do
|
25
25
|
response_parcel
|
26
26
|
end
|
27
|
-
result.
|
28
|
-
error.
|
27
|
+
expect(result).to eq(response_parcel)
|
28
|
+
expect(error).to be_nil
|
29
29
|
end
|
30
30
|
|
31
31
|
end
|
@@ -3,14 +3,14 @@ require 'spec_helper'
|
|
3
3
|
require 'serf/util/uuidable'
|
4
4
|
|
5
5
|
##
|
6
|
-
# NOTE: Not really great tests here... I
|
6
|
+
# NOTE: Not really great tests here... I need to mock out
|
7
7
|
# the uuid_tool to really get at the meat of the work.
|
8
8
|
#
|
9
9
|
describe Serf::Util::Uuidable do
|
10
10
|
|
11
11
|
its(:create_coded_uuid) {
|
12
|
-
|
13
|
-
subject.size.
|
12
|
+
expect(subject).to_not be_nil
|
13
|
+
expect(subject.size).to eq(22)
|
14
14
|
}
|
15
15
|
|
16
16
|
describe '#parse_coded_uuid' do
|
@@ -25,30 +25,30 @@ describe Serf::Util::Uuidable do
|
|
25
25
|
|
26
26
|
it 'works with no parent' do
|
27
27
|
uuids = subject.create_uuids
|
28
|
-
uuids[:uuid].
|
29
|
-
uuids[:parent_uuid].
|
30
|
-
uuids[:origin_uuid].
|
28
|
+
expect(uuids[:uuid]).to_not be_nil
|
29
|
+
expect(uuids[:parent_uuid]).to be_nil
|
30
|
+
expect(uuids[:origin_uuid]).to be_nil
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'copies origin from parent' do
|
34
34
|
uuids = subject.create_uuids origin_uuid: 'MY_UUID'
|
35
|
-
uuids[:uuid].
|
36
|
-
uuids[:parent_uuid].
|
37
|
-
uuids[:origin_uuid].
|
35
|
+
expect(uuids[:uuid]).to_not be_nil
|
36
|
+
expect(uuids[:parent_uuid]).to be_nil
|
37
|
+
expect(uuids[:origin_uuid]).to eq('MY_UUID')
|
38
38
|
end
|
39
39
|
|
40
40
|
it 'sets origin from parent[:parent_uuid] if origin is nonexistent ' do
|
41
41
|
uuids = subject.create_uuids parent_uuid: 'MY_UUID'
|
42
|
-
uuids[:uuid].
|
43
|
-
uuids[:parent_uuid].
|
44
|
-
uuids[:origin_uuid].
|
42
|
+
expect(uuids[:uuid]).to_not be_nil
|
43
|
+
expect(uuids[:parent_uuid]).to be_nil
|
44
|
+
expect(uuids[:origin_uuid]).to eq('MY_UUID')
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'sets origin, parent from parent[:uuid] on missing origin and parent' do
|
48
48
|
uuids = subject.create_uuids uuid: 'MY_UUID'
|
49
|
-
uuids[:uuid].
|
50
|
-
uuids[:parent_uuid].
|
51
|
-
uuids[:origin_uuid].
|
49
|
+
expect(uuids[:uuid]).to_not be_nil
|
50
|
+
expect(uuids[:parent_uuid]).to eq('MY_UUID')
|
51
|
+
expect(uuids[:origin_uuid]).to eq('MY_UUID')
|
52
52
|
end
|
53
53
|
|
54
54
|
end
|
data/spec/support/factories.rb
CHANGED
@@ -5,6 +5,13 @@ require 'securerandom'
|
|
5
5
|
FactoryGirl.define do
|
6
6
|
sequence(:random_string) { SecureRandom.hex }
|
7
7
|
|
8
|
+
factory :empty_parcel, class: Hashie::Mash do
|
9
|
+
headers {{
|
10
|
+
}}
|
11
|
+
message {{
|
12
|
+
}}
|
13
|
+
end
|
14
|
+
|
8
15
|
factory :random_parcel, class: Hashie::Mash do
|
9
16
|
headers {{
|
10
17
|
uuid: generate(:random_string),
|
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.12.0
|
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: 2012-
|
12
|
+
date: 2012-12-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hashie
|
@@ -43,6 +43,22 @@ dependencies:
|
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 0.4.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: optser
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.1.0
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.1.0
|
46
62
|
- !ruby/object:Gem::Dependency
|
47
63
|
name: uuidtools
|
48
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -76,19 +92,24 @@ files:
|
|
76
92
|
- NOTICE.txt
|
77
93
|
- README.md
|
78
94
|
- Rakefile
|
95
|
+
- example/components/logger.serf
|
96
|
+
- example/serfs/create_widget.serf
|
79
97
|
- lib/serf.rb
|
80
98
|
- lib/serf/builder.rb
|
81
99
|
- lib/serf/errors/policy_failure.rb
|
100
|
+
- lib/serf/loader.rb
|
101
|
+
- lib/serf/loader/loader.rb
|
102
|
+
- lib/serf/loader/registry.rb
|
82
103
|
- lib/serf/middleware/error_handler.rb
|
83
104
|
- lib/serf/middleware/parcel_freezer.rb
|
84
105
|
- lib/serf/middleware/parcel_masher.rb
|
85
106
|
- lib/serf/middleware/policy_checker.rb
|
107
|
+
- lib/serf/middleware/request_timer.rb
|
86
108
|
- lib/serf/middleware/uuid_tagger.rb
|
87
109
|
- lib/serf/parcel_builder.rb
|
88
110
|
- lib/serf/serfer.rb
|
89
111
|
- lib/serf/util/error_handling.rb
|
90
112
|
- lib/serf/util/null_object.rb
|
91
|
-
- lib/serf/util/options_extraction.rb
|
92
113
|
- lib/serf/util/protected_call.rb
|
93
114
|
- lib/serf/util/uuidable.rb
|
94
115
|
- lib/serf/version.rb
|
@@ -96,16 +117,19 @@ files:
|
|
96
117
|
- serf.gemspec
|
97
118
|
- spec/serf/builder_spec.rb
|
98
119
|
- spec/serf/errors/policy_failure_spec.rb
|
120
|
+
- spec/serf/loader/loader_spec.rb
|
121
|
+
- spec/serf/loader/registry_spec.rb
|
122
|
+
- spec/serf/loader_spec.rb
|
99
123
|
- spec/serf/middleware/error_handler_spec.rb
|
100
124
|
- spec/serf/middleware/parcel_freezer_spec.rb
|
101
125
|
- spec/serf/middleware/parcel_masher_spec.rb
|
102
126
|
- spec/serf/middleware/policy_checker_spec.rb
|
127
|
+
- spec/serf/middleware/request_timer_spec.rb
|
103
128
|
- spec/serf/middleware/uuid_tagger_spec.rb
|
104
129
|
- spec/serf/parcel_builder_spec.rb
|
105
130
|
- spec/serf/serfer_spec.rb
|
106
131
|
- spec/serf/util/error_handling_spec.rb
|
107
132
|
- spec/serf/util/null_object_spec.rb
|
108
|
-
- spec/serf/util/options_extraction_spec.rb
|
109
133
|
- spec/serf/util/protected_call_spec.rb
|
110
134
|
- spec/serf/util/uuidable_spec.rb
|
111
135
|
- spec/serf_spec.rb
|
@@ -114,7 +138,6 @@ files:
|
|
114
138
|
- spec/support/factories.rb
|
115
139
|
- spec/support/failing_policy.rb
|
116
140
|
- spec/support/json_schema_tester.rb
|
117
|
-
- spec/support/options_extraction_wrapper.rb
|
118
141
|
- spec/support/passing_policy.rb
|
119
142
|
- spec/support/protected_call_wrapper.rb
|
120
143
|
homepage: http://github.com/byu/serf
|
@@ -132,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
155
|
version: '0'
|
133
156
|
segments:
|
134
157
|
- 0
|
135
|
-
hash:
|
158
|
+
hash: 3194185596279459247
|
136
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
160
|
none: false
|
138
161
|
requirements:
|
@@ -141,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
164
|
version: '0'
|
142
165
|
segments:
|
143
166
|
- 0
|
144
|
-
hash:
|
167
|
+
hash: 3194185596279459247
|
145
168
|
requirements: []
|
146
169
|
rubyforge_project:
|
147
170
|
rubygems_version: 1.8.23
|
@@ -151,16 +174,19 @@ summary: Interactors with policy protection
|
|
151
174
|
test_files:
|
152
175
|
- spec/serf/builder_spec.rb
|
153
176
|
- spec/serf/errors/policy_failure_spec.rb
|
177
|
+
- spec/serf/loader/loader_spec.rb
|
178
|
+
- spec/serf/loader/registry_spec.rb
|
179
|
+
- spec/serf/loader_spec.rb
|
154
180
|
- spec/serf/middleware/error_handler_spec.rb
|
155
181
|
- spec/serf/middleware/parcel_freezer_spec.rb
|
156
182
|
- spec/serf/middleware/parcel_masher_spec.rb
|
157
183
|
- spec/serf/middleware/policy_checker_spec.rb
|
184
|
+
- spec/serf/middleware/request_timer_spec.rb
|
158
185
|
- spec/serf/middleware/uuid_tagger_spec.rb
|
159
186
|
- spec/serf/parcel_builder_spec.rb
|
160
187
|
- spec/serf/serfer_spec.rb
|
161
188
|
- spec/serf/util/error_handling_spec.rb
|
162
189
|
- spec/serf/util/null_object_spec.rb
|
163
|
-
- spec/serf/util/options_extraction_spec.rb
|
164
190
|
- spec/serf/util/protected_call_spec.rb
|
165
191
|
- spec/serf/util/uuidable_spec.rb
|
166
192
|
- spec/serf_spec.rb
|
@@ -169,7 +195,6 @@ test_files:
|
|
169
195
|
- spec/support/factories.rb
|
170
196
|
- spec/support/failing_policy.rb
|
171
197
|
- spec/support/json_schema_tester.rb
|
172
|
-
- spec/support/options_extraction_wrapper.rb
|
173
198
|
- spec/support/passing_policy.rb
|
174
199
|
- spec/support/protected_call_wrapper.rb
|
175
200
|
has_rdoc:
|