sync_service 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.
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: []