sync_service 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/.autotest +5 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +13 -0
  5. data/Guardfile +5 -0
  6. data/README.md +66 -0
  7. data/Rakefile +29 -0
  8. data/examples/application.rb +17 -0
  9. data/examples/client.rb +29 -0
  10. data/examples/config.ru +7 -0
  11. data/examples/php/client.php +17 -0
  12. data/examples/php/jsonRPCClient.php +165 -0
  13. data/examples/python/README +5 -0
  14. data/examples/python/client.py +16 -0
  15. data/examples/server.rb +4 -0
  16. data/lib/mobme/infrastructure/rpc/adaptor.rb +31 -0
  17. data/lib/mobme/infrastructure/rpc/base.rb +15 -0
  18. data/lib/mobme/infrastructure/rpc/error.rb +3 -0
  19. data/lib/mobme/infrastructure/rpc/runner.rb +21 -0
  20. data/lib/mobme/infrastructure/rpc/version.rb +14 -0
  21. data/lib/rpc/.gitignore +2 -0
  22. data/lib/rpc/CHANGELOG +10 -0
  23. data/lib/rpc/Gemfile +19 -0
  24. data/lib/rpc/LICENSE +20 -0
  25. data/lib/rpc/README.textile +7 -0
  26. data/lib/rpc/examples/em-http-request-json/client.rb +39 -0
  27. data/lib/rpc/examples/helpers.rb +15 -0
  28. data/lib/rpc/examples/net-http-json/client.rb +34 -0
  29. data/lib/rpc/examples/net-http-json/console.rb +13 -0
  30. data/lib/rpc/examples/server.ru +42 -0
  31. data/lib/rpc/examples/socket-json/client.rb +36 -0
  32. data/lib/rpc/examples/socket-json/server.rb +41 -0
  33. data/lib/rpc/lib/rpc.rb +166 -0
  34. data/lib/rpc/lib/rpc/clients/amqp/coolio.rb +0 -0
  35. data/lib/rpc/lib/rpc/clients/amqp/eventmachine.rb +0 -0
  36. data/lib/rpc/lib/rpc/clients/amqp/socket.rb +0 -0
  37. data/lib/rpc/lib/rpc/clients/em-http-request.rb +58 -0
  38. data/lib/rpc/lib/rpc/clients/net-http.rb +55 -0
  39. data/lib/rpc/lib/rpc/clients/redis.rb +0 -0
  40. data/lib/rpc/lib/rpc/clients/socket.rb +50 -0
  41. data/lib/rpc/lib/rpc/encoders/json.rb +142 -0
  42. data/lib/rpc/lib/rpc/encoders/xml.rb +0 -0
  43. data/lib/rpc/rpc.gemspec +34 -0
  44. data/lib/sync_service.rb +20 -0
  45. data/spec/adaptor_spec.rb +104 -0
  46. data/spec/base_spec.rb +61 -0
  47. data/spec/error_spec.rb +14 -0
  48. data/spec/runner_spec.rb +31 -0
  49. data/spec/spec_helper.rb +9 -0
  50. data/sync_service.gemspec +32 -0
  51. metadata +218 -0
data/spec/base_spec.rb ADDED
@@ -0,0 +1,61 @@
1
+ # Gems
2
+ require 'rspec'
3
+
4
+ # Local
5
+ require_relative 'spec_helper'
6
+ require_relative '../lib/async_service'
7
+
8
+ module MobME::Infrastructure::RPC
9
+ class DummyRPCService < Base
10
+ @service_name = "mobme.infrastructure.dummy.rpc.service"
11
+ end
12
+
13
+ describe Base do
14
+ it "possesses a service_name class method" do
15
+ Base.should respond_to(:service_name)
16
+ end
17
+ end
18
+
19
+ describe DummyRPCService do
20
+
21
+ it { should respond_to(:logger) }
22
+
23
+ before(:each) do
24
+ if Syslog.opened?
25
+ Syslog.close
26
+ end
27
+ end
28
+
29
+ describe "#self.service_name" do
30
+ it "returns the service name assigned to the class" do
31
+ subject.class.service_name.should == "mobme.infrastructure.dummy.rpc.service"
32
+ end
33
+ end
34
+
35
+ describe "#logger" do
36
+ it "checks whether Syslog is already open" do
37
+ Syslog.should_receive(:opened?)
38
+ subject.logger
39
+ end
40
+
41
+ context "when Syslog is not open" do
42
+ it "opens Syslog with service name" do
43
+ Syslog.should_receive(:open).with(subject.class.service_name, Syslog::LOG_PID | Syslog::LOG_CONS)
44
+ subject.logger
45
+ end
46
+ end
47
+
48
+ context "when Syslog is already open" do
49
+ it "does not attempt to open Syslog" do
50
+ Syslog.open(subject.class.service_name, Syslog::LOG_PID | Syslog::LOG_CONS)
51
+ Syslog.should_not_receive(:open)
52
+ subject.logger
53
+ end
54
+ end
55
+
56
+ it "returns Syslog" do
57
+ subject.logger.should be Syslog
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,14 @@
1
+ # Gems
2
+ require "rspec"
3
+
4
+ # Local
5
+ require_relative 'spec_helper'
6
+ require_relative '../lib/async_service'
7
+
8
+ module MobME::Infrastructure::RPC
9
+ describe Error do
10
+ it "inherits from StandardError" do
11
+ Error.superclass.should == StandardError
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,31 @@
1
+ # Gems
2
+ require 'rspec'
3
+
4
+ # Local
5
+ require_relative 'spec_helper'
6
+ require_relative '../lib/async_service'
7
+
8
+ module MobME::Infrastructure::RPC
9
+ describe Runner do
10
+ it "should respond to class method 'run' with 4 arguments" do
11
+ Runner.should respond_to(:start).with(4).arguments
12
+ end
13
+
14
+ describe "#run" do
15
+ let(:application) { double("Application") }
16
+ before :each do
17
+ Thin::Server.stub(:start)
18
+ end
19
+
20
+ it "starts thin server" do
21
+ Thin::Server.should_receive(:start).with('0.0.0.0', 8080)
22
+ Runner.start(application, '0.0.0.0', 8080, '/application')
23
+ end
24
+
25
+ # it "uses Rack::CommonLogger" do
26
+ # RPCRunner.should_receive(:use)
27
+ # RPCRunner.start(application, '0.0.0.0', 8080, '/application')
28
+ # end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,9 @@
1
+ require 'simplecov'
2
+ require 'simplecov-rcov'
3
+
4
+ SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
5
+ SimpleCov.start do
6
+ add_filter 'vendor'
7
+ add_filter 'spec'
8
+ end if ENV["COVERAGE"]
9
+
@@ -0,0 +1,32 @@
1
+ lib = File.expand_path('../lib/', __FILE__)
2
+ $:.unshift lib unless $:.include?(lib)
3
+
4
+ require 'mobme/infrastructure/rpc/version'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "sync_service"
8
+ s.version = SyncService::VERSION
9
+ s.platform = Gem::Platform::RUBY
10
+ s.authors = ["MobME"]
11
+ s.email = ["engineering@mobme.in"]
12
+ s.homepage = "http://mobme.in/"
13
+ s.summary = %q{Generic wrapper for a synchronous service.}
14
+ s.description = %q{sync_service is a library to create synchronous SOA daemons. It has wrappers around both the client and server end.}
15
+
16
+ s.add_development_dependency "rspec"
17
+ s.add_development_dependency "rake"
18
+ s.add_development_dependency "guard"
19
+ s.add_development_dependency "guard-rspec"
20
+ s.add_development_dependency "simplecov"
21
+ s.add_development_dependency "simplecov-rcov"
22
+ s.add_development_dependency "flog"
23
+ s.add_development_dependency "yard"
24
+ s.add_development_dependency "ci_reporter"
25
+ s.add_development_dependency "thin"
26
+
27
+ s.add_dependency "rack"
28
+
29
+ s.files = `git ls-files`.split("\n") - ["Gemfile.lock", ".rvmrc"]
30
+ s.test_files = `git ls-files -- {spec}/*`.split("\n")
31
+ s.require_paths = ["lib"]
32
+ end
metadata ADDED
@@ -0,0 +1,218 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sync_service
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.8
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - MobME
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70140788527580 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70140788527580
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70140788527120 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70140788527120
36
+ - !ruby/object:Gem::Dependency
37
+ name: guard
38
+ requirement: &70140788526680 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70140788526680
47
+ - !ruby/object:Gem::Dependency
48
+ name: guard-rspec
49
+ requirement: &70140788526200 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70140788526200
58
+ - !ruby/object:Gem::Dependency
59
+ name: simplecov
60
+ requirement: &70140788525760 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70140788525760
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov-rcov
71
+ requirement: &70140788525300 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70140788525300
80
+ - !ruby/object:Gem::Dependency
81
+ name: flog
82
+ requirement: &70140788524780 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70140788524780
91
+ - !ruby/object:Gem::Dependency
92
+ name: yard
93
+ requirement: &70140788524140 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70140788524140
102
+ - !ruby/object:Gem::Dependency
103
+ name: ci_reporter
104
+ requirement: &70140788523560 !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: *70140788523560
113
+ - !ruby/object:Gem::Dependency
114
+ name: thin
115
+ requirement: &70140788522960 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *70140788522960
124
+ - !ruby/object:Gem::Dependency
125
+ name: rack
126
+ requirement: &70140788522380 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: *70140788522380
135
+ description: sync_service is a library to create synchronous SOA daemons. It has wrappers
136
+ around both the client and server end.
137
+ email:
138
+ - engineering@mobme.in
139
+ executables: []
140
+ extensions: []
141
+ extra_rdoc_files: []
142
+ files:
143
+ - .autotest
144
+ - .bundle/config
145
+ - .gitignore
146
+ - .rspec
147
+ - Gemfile
148
+ - Guardfile
149
+ - README.md
150
+ - Rakefile
151
+ - examples/application.rb
152
+ - examples/client.rb
153
+ - examples/config.ru
154
+ - examples/php/client.php
155
+ - examples/php/jsonRPCClient.php
156
+ - examples/python/README
157
+ - examples/python/client.py
158
+ - examples/server.rb
159
+ - lib/mobme/infrastructure/rpc/adaptor.rb
160
+ - lib/mobme/infrastructure/rpc/base.rb
161
+ - lib/mobme/infrastructure/rpc/error.rb
162
+ - lib/mobme/infrastructure/rpc/runner.rb
163
+ - lib/mobme/infrastructure/rpc/version.rb
164
+ - lib/rpc/.gitignore
165
+ - lib/rpc/CHANGELOG
166
+ - lib/rpc/Gemfile
167
+ - lib/rpc/LICENSE
168
+ - lib/rpc/README.textile
169
+ - lib/rpc/examples/em-http-request-json/client.rb
170
+ - lib/rpc/examples/helpers.rb
171
+ - lib/rpc/examples/net-http-json/client.rb
172
+ - lib/rpc/examples/net-http-json/console.rb
173
+ - lib/rpc/examples/server.ru
174
+ - lib/rpc/examples/socket-json/client.rb
175
+ - lib/rpc/examples/socket-json/server.rb
176
+ - lib/rpc/lib/rpc.rb
177
+ - lib/rpc/lib/rpc/clients/amqp/coolio.rb
178
+ - lib/rpc/lib/rpc/clients/amqp/eventmachine.rb
179
+ - lib/rpc/lib/rpc/clients/amqp/socket.rb
180
+ - lib/rpc/lib/rpc/clients/em-http-request.rb
181
+ - lib/rpc/lib/rpc/clients/net-http.rb
182
+ - lib/rpc/lib/rpc/clients/redis.rb
183
+ - lib/rpc/lib/rpc/clients/socket.rb
184
+ - lib/rpc/lib/rpc/encoders/json.rb
185
+ - lib/rpc/lib/rpc/encoders/xml.rb
186
+ - lib/rpc/rpc.gemspec
187
+ - lib/sync_service.rb
188
+ - spec/adaptor_spec.rb
189
+ - spec/base_spec.rb
190
+ - spec/error_spec.rb
191
+ - spec/runner_spec.rb
192
+ - spec/spec_helper.rb
193
+ - sync_service.gemspec
194
+ homepage: http://mobme.in/
195
+ licenses: []
196
+ post_install_message:
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ required_rubygems_version: !ruby/object:Gem::Requirement
207
+ none: false
208
+ requirements:
209
+ - - ! '>='
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ requirements: []
213
+ rubyforge_project:
214
+ rubygems_version: 1.8.10
215
+ signing_key:
216
+ specification_version: 3
217
+ summary: Generic wrapper for a synchronous service.
218
+ test_files: []