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.
Files changed (59) hide show
  1. data/.gitignore +21 -0
  2. data/.travis.yml +7 -0
  3. data/Gemfile +20 -26
  4. data/Guardfile +16 -0
  5. data/NOTICE.txt +1 -1
  6. data/README.md +223 -207
  7. data/Rakefile +3 -18
  8. data/lib/serf/builder.rb +31 -136
  9. data/lib/serf/errors/policy_failure.rb +10 -0
  10. data/lib/serf/middleware/error_handler.rb +53 -0
  11. data/lib/serf/middleware/parcel_freezer.rb +36 -0
  12. data/lib/serf/middleware/parcel_masher.rb +39 -0
  13. data/lib/serf/middleware/policy_checker.rb +31 -0
  14. data/lib/serf/middleware/uuid_tagger.rb +13 -11
  15. data/lib/serf/parcel_builder.rb +30 -0
  16. data/lib/serf/serfer.rb +27 -66
  17. data/lib/serf/util/error_handling.rb +13 -36
  18. data/lib/serf/util/protected_call.rb +2 -2
  19. data/lib/serf/util/uuidable.rb +14 -38
  20. data/lib/serf/version.rb +1 -1
  21. data/schemas/{caught_exception_event.json → serf/events/caught_error.json} +4 -7
  22. data/serf.gemspec +22 -101
  23. data/spec/serf/builder_spec.rb +44 -0
  24. data/spec/serf/errors/policy_failure_spec.rb +11 -0
  25. data/spec/serf/middleware/error_handler_spec.rb +48 -0
  26. data/spec/serf/middleware/parcel_freezer_spec.rb +20 -0
  27. data/spec/serf/middleware/parcel_masher_spec.rb +30 -0
  28. data/spec/serf/middleware/policy_checker_spec.rb +70 -0
  29. data/spec/serf/middleware/uuid_tagger_spec.rb +32 -0
  30. data/spec/serf/parcel_builder_spec.rb +46 -0
  31. data/spec/serf/serfer_spec.rb +61 -0
  32. data/spec/serf/util/error_handling_spec.rb +35 -0
  33. data/spec/serf/util/null_object_spec.rb +26 -0
  34. data/spec/serf/util/options_extraction_spec.rb +62 -0
  35. data/spec/serf/util/protected_call_spec.rb +33 -0
  36. data/spec/serf/util/uuidable_spec.rb +56 -0
  37. data/spec/serf_spec.rb +1 -4
  38. data/spec/spec_helper.rb +3 -0
  39. data/spec/support/error_handling_wrapper.rb +5 -0
  40. data/spec/support/factories.rb +32 -0
  41. data/spec/support/failing_policy.rb +9 -0
  42. data/spec/support/json_schema_tester.rb +14 -0
  43. data/spec/support/options_extraction_wrapper.rb +10 -0
  44. data/spec/support/passing_policy.rb +7 -0
  45. data/spec/support/protected_call_wrapper.rb +5 -0
  46. metadata +81 -131
  47. data/.document +0 -5
  48. data/.rspec +0 -1
  49. data/Gemfile.lock +0 -58
  50. data/docs/thread_pools.txt +0 -16
  51. data/lib/serf/command.rb +0 -79
  52. data/lib/serf/error.rb +0 -11
  53. data/lib/serf/errors/not_found.rb +0 -8
  54. data/lib/serf/middleware/girl_friday_async.rb +0 -39
  55. data/lib/serf/middleware/masherize.rb +0 -25
  56. data/lib/serf/routing/regexp_matcher.rb +0 -35
  57. data/lib/serf/routing/route.rb +0 -35
  58. data/lib/serf/routing/route_set.rb +0 -64
  59. 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
@@ -1,7 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require 'spec_helper'
2
2
 
3
3
  describe "Serf" do
4
- it "fails" do
5
- fail "hey buddy, you should probably rename this file and start specing for real"
6
- end
7
4
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ #require 'simplecov'
2
+ #SimpleCov.start
3
+
1
4
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
5
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
6
  require 'rspec'
@@ -0,0 +1,5 @@
1
+ require 'serf/util/error_handling'
2
+
3
+ class ErrorHandlingWrapper
4
+ include Serf::Util::ErrorHandling
5
+ end
@@ -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,9 @@
1
+ require 'serf/errors/policy_failure'
2
+
3
+ class FailingPolicy
4
+
5
+ def check!(parcel)
6
+ raise Serf::Errors::PolicyFailure, 'Failed Policy'
7
+ end
8
+
9
+ 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
@@ -0,0 +1,10 @@
1
+ require 'serf/util/options_extraction'
2
+
3
+ class OptionsExtractionWrapper
4
+ include Serf::Util::OptionsExtraction
5
+
6
+ def initialize(*args)
7
+ extract_options! args
8
+ end
9
+
10
+ end
@@ -0,0 +1,7 @@
1
+ class PassingPolicy
2
+
3
+ def check!(parcel)
4
+ nil
5
+ end
6
+
7
+ end
@@ -0,0 +1,5 @@
1
+ require 'serf/util/protected_call'
2
+
3
+ class ProtectedCallWrapper
4
+ include Serf::Util::ProtectedCall
5
+ 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.10.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-30 00:00:00.000000000 Z
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: &70327288843640 !ruby/object:Gem::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: *70327288843640
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: 2.1.2
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: log4r
115
- requirement: &70327288859780 !ruby/object:Gem::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: 1.1.10
121
- type: :development
37
+ version: 0.4.0
38
+ type: :runtime
122
39
  prerelease: false
123
- version_requirements: *70327288859780
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.6
132
- type: :development
133
- prerelease: false
134
- version_requirements: *70327288858080
45
+ version: 0.4.0
135
46
  - !ruby/object:Gem::Dependency
136
- name: eventmachine
137
- requirement: &70327288857320 !ruby/object:Gem::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: 0.12.10
143
- type: :development
53
+ version: 2.1.3
54
+ type: :runtime
144
55
  prerelease: false
145
- version_requirements: *70327288857320
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: 0.9.7
154
- type: :development
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
- - .document
166
- - .rspec
71
+ - .gitignore
72
+ - .travis.yml
167
73
  - Gemfile
168
- - Gemfile.lock
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/command.rb
177
- - lib/serf/error.rb
178
- - lib/serf/errors/not_found.rb
179
- - lib/serf/middleware/girl_friday_async.rb
180
- - lib/serf/middleware/masherize.rb
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/routing/regexp_matcher.rb
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/caught_exception_event.json
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: 2408210682612837552
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.17
147
+ rubygems_version: 1.8.23
222
148
  signing_key:
223
149
  specification_version: 3
224
- summary: Event-Driven SOA with CQRS
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
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
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)
@@ -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