sinatra-synchrony 0.0.3 → 0.1.0.beta.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +7 -6
- data/lib/sinatra/synchrony.rb +0 -5
- metadata +73 -31
data/README.markdown
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
## Announcement ##
|
2
|
-
|
3
|
-
**There is work underway to make this a Rack middleware, and integrate that middleware with this plugin. That way, many other frameworks can take advantage of this. There is also work underway to provide support for non-EventMachine Reactor pattern implementations with this approach. Stay tuned, amazing stuff coming very soon!**
|
4
|
-
|
5
1
|
Sinatra::Synchrony
|
6
2
|
===
|
7
3
|
|
@@ -99,11 +95,16 @@ Let's try a simple blocking IO example to prove it works. 100 hits to google.com
|
|
99
95
|
|
100
96
|
For a perspective, this operation takes __33 seconds__ without this extension. That's __26x__ faster!
|
101
97
|
|
98
|
+
Geoloqi
|
99
|
+
---
|
100
|
+
This gem was designed to help us develop faster games and internal applications for [Geoloqi](http://geoloqi.org): a private, real-time mobile and web platform for securely sharing location data. We wanted to share with you how we deal with concurrency issues, and also make it easy to utilize this for our other projects. One of these projects is our recently released [Geoloqi ruby adapter](http://github.com/kyledrake/geoloqi-ruby), which utilizes [Faraday](http://github.com/technoweenie/faraday) and sinatra-synchrony to provide massive concurrency with almost no changes required to your code. Geoloqi is production ready right now, and we have a lot of major features and enhancements in store for this summer. Keep an eye on us! We won't disappoint.
|
101
|
+
|
102
102
|
TODO / Thoughts
|
103
103
|
---
|
104
|
-
* This is fairly
|
104
|
+
* This is fairly new, though we are using it in production without any problems. Test before deploying anything with it.
|
105
105
|
* Provide better method for patching Rack::Test that's less fragile to version changes. This is a big priority and I intend to improve this. Pull requests here welcome!
|
106
106
|
* Research way to run tests with Rack::FiberPool enabled.
|
107
|
+
* There is work underway to make this a Rack middleware, and integrate that middleware with this plugin. That way, many other frameworks can take advantage of this. There is also work exploratory work to provide support for non-EventMachine Reactor pattern implementations with this approach, but it's beyond the scope of this extension.
|
107
108
|
|
108
109
|
Author
|
109
110
|
---
|
@@ -113,6 +114,6 @@ Thanks
|
|
113
114
|
---
|
114
115
|
* [Ilya Grigorik](http://www.igvita.com) and [PostRank](http://www.postrank.com) for their amazing work on em-synchrony, em-http-request, and countless articles explaining this.
|
115
116
|
* [Mike Perham](http://www.mikeperham.com) and [Carbon Five](http://carbonfive.com). For rack-fiber_pool, em-resolv-replace, and many blog posts and presentations on this.
|
116
|
-
* [Konstantin Haase](http://rkh.im/) for
|
117
|
+
* [Konstantin Haase](http://rkh.im/) for session overload suggestion.
|
117
118
|
* [Steeve Morin](http://github.com/steeve)
|
118
119
|
* The many Sinatra developers that liberated me from framework hell, and EventMachine developers that liberated me from blocking IO hell.
|
data/lib/sinatra/synchrony.rb
CHANGED
@@ -6,11 +6,6 @@ require 'em-synchrony'
|
|
6
6
|
require 'em-resolv-replace'
|
7
7
|
require 'net/http'
|
8
8
|
|
9
|
-
original_verbosity = $VERBOSE
|
10
|
-
$VERBOSE = nil
|
11
|
-
TCPSocket = EventMachine::Synchrony::TCPSocket
|
12
|
-
$VERBOSE = original_verbosity
|
13
|
-
|
14
9
|
module Sinatra
|
15
10
|
module Synchrony
|
16
11
|
def setup_sessions(builder)
|
metadata
CHANGED
@@ -1,8 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-synchrony
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
hash: 62196407
|
5
|
+
prerelease: 6
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
- beta
|
11
|
+
- 2
|
12
|
+
version: 0.1.0.beta.2
|
6
13
|
platform: ruby
|
7
14
|
authors:
|
8
15
|
- Kyle Drake
|
@@ -10,8 +17,7 @@ autorequire:
|
|
10
17
|
bindir: bin
|
11
18
|
cert_chain: []
|
12
19
|
|
13
|
-
date: 2011-
|
14
|
-
default_executable:
|
20
|
+
date: 2011-07-11 00:00:00 Z
|
15
21
|
dependencies:
|
16
22
|
- !ruby/object:Gem::Dependency
|
17
23
|
name: sinatra
|
@@ -21,6 +27,10 @@ dependencies:
|
|
21
27
|
requirements:
|
22
28
|
- - ">="
|
23
29
|
- !ruby/object:Gem::Version
|
30
|
+
hash: 15
|
31
|
+
segments:
|
32
|
+
- 1
|
33
|
+
- 0
|
24
34
|
version: "1.0"
|
25
35
|
type: :runtime
|
26
36
|
version_requirements: *id001
|
@@ -32,97 +42,122 @@ dependencies:
|
|
32
42
|
requirements:
|
33
43
|
- - "="
|
34
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 57
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 9
|
49
|
+
- 1
|
35
50
|
version: 0.9.1
|
36
51
|
type: :runtime
|
37
52
|
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: async-rack
|
40
|
-
prerelease: false
|
41
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- - "="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 0.5.1
|
47
|
-
type: :runtime
|
48
|
-
version_requirements: *id003
|
49
53
|
- !ruby/object:Gem::Dependency
|
50
54
|
name: em-http-request
|
51
55
|
prerelease: false
|
52
|
-
requirement: &
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
57
|
none: false
|
54
58
|
requirements:
|
55
59
|
- - "="
|
56
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 19
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
- 3
|
65
|
+
- 0
|
57
66
|
version: 0.3.0
|
58
67
|
type: :runtime
|
59
|
-
version_requirements: *
|
68
|
+
version_requirements: *id003
|
60
69
|
- !ruby/object:Gem::Dependency
|
61
70
|
name: em-synchrony
|
62
71
|
prerelease: false
|
63
|
-
requirement: &
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
64
73
|
none: false
|
65
74
|
requirements:
|
66
75
|
- - "="
|
67
76
|
- !ruby/object:Gem::Version
|
77
|
+
hash: 23
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
- 2
|
81
|
+
- 0
|
68
82
|
version: 0.2.0
|
69
83
|
type: :runtime
|
70
|
-
version_requirements: *
|
84
|
+
version_requirements: *id004
|
71
85
|
- !ruby/object:Gem::Dependency
|
72
86
|
name: em-resolv-replace
|
73
87
|
prerelease: false
|
74
|
-
requirement: &
|
88
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
75
89
|
none: false
|
76
90
|
requirements:
|
77
91
|
- - "="
|
78
92
|
- !ruby/object:Gem::Version
|
93
|
+
hash: 17
|
94
|
+
segments:
|
95
|
+
- 1
|
96
|
+
- 1
|
97
|
+
- 1
|
79
98
|
version: 1.1.1
|
80
99
|
type: :runtime
|
81
|
-
version_requirements: *
|
100
|
+
version_requirements: *id005
|
82
101
|
- !ruby/object:Gem::Dependency
|
83
102
|
name: rake
|
84
103
|
prerelease: false
|
85
|
-
requirement: &
|
104
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
86
105
|
none: false
|
87
106
|
requirements:
|
88
107
|
- - ">="
|
89
108
|
- !ruby/object:Gem::Version
|
109
|
+
hash: 3
|
110
|
+
segments:
|
111
|
+
- 0
|
90
112
|
version: "0"
|
91
113
|
type: :development
|
92
|
-
version_requirements: *
|
114
|
+
version_requirements: *id006
|
93
115
|
- !ruby/object:Gem::Dependency
|
94
116
|
name: rack-test
|
95
117
|
prerelease: false
|
96
|
-
requirement: &
|
118
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
97
119
|
none: false
|
98
120
|
requirements:
|
99
121
|
- - "="
|
100
122
|
- !ruby/object:Gem::Version
|
123
|
+
hash: 5
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
- 5
|
127
|
+
- 7
|
101
128
|
version: 0.5.7
|
102
129
|
type: :development
|
103
|
-
version_requirements: *
|
130
|
+
version_requirements: *id007
|
104
131
|
- !ruby/object:Gem::Dependency
|
105
132
|
name: wrong
|
106
133
|
prerelease: false
|
107
|
-
requirement: &
|
134
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
108
135
|
none: false
|
109
136
|
requirements:
|
110
137
|
- - "="
|
111
138
|
- !ruby/object:Gem::Version
|
139
|
+
hash: 11
|
140
|
+
segments:
|
141
|
+
- 0
|
142
|
+
- 5
|
143
|
+
- 0
|
112
144
|
version: 0.5.0
|
113
145
|
type: :development
|
114
|
-
version_requirements: *
|
146
|
+
version_requirements: *id008
|
115
147
|
- !ruby/object:Gem::Dependency
|
116
148
|
name: minitest
|
117
149
|
prerelease: false
|
118
|
-
requirement: &
|
150
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
119
151
|
none: false
|
120
152
|
requirements:
|
121
153
|
- - ">="
|
122
154
|
- !ruby/object:Gem::Version
|
155
|
+
hash: 3
|
156
|
+
segments:
|
157
|
+
- 0
|
123
158
|
version: "0"
|
124
159
|
type: :development
|
125
|
-
version_requirements: *
|
160
|
+
version_requirements: *id009
|
126
161
|
description: Bootstraps in code required to take advantage of EventMachine/EM-Synchrony's concurrency enhancements for slow IO. Patches TCPSocket, which makes anything based on it EM-aware (including RestClient). Includes patch for tests. Requires ruby 1.9.
|
127
162
|
email:
|
128
163
|
- kyledrake@gmail.com
|
@@ -140,7 +175,6 @@ files:
|
|
140
175
|
- Gemfile.lock
|
141
176
|
- Rakefile
|
142
177
|
- README.markdown
|
143
|
-
has_rdoc: true
|
144
178
|
homepage: https://github.com/kyledrake/sinatra-synchrony
|
145
179
|
licenses: []
|
146
180
|
|
@@ -154,17 +188,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
154
188
|
requirements:
|
155
189
|
- - ">="
|
156
190
|
- !ruby/object:Gem::Version
|
191
|
+
hash: 3
|
192
|
+
segments:
|
193
|
+
- 0
|
157
194
|
version: "0"
|
158
195
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
196
|
none: false
|
160
197
|
requirements:
|
161
198
|
- - ">="
|
162
199
|
- !ruby/object:Gem::Version
|
200
|
+
hash: 19
|
201
|
+
segments:
|
202
|
+
- 1
|
203
|
+
- 3
|
204
|
+
- 4
|
163
205
|
version: 1.3.4
|
164
206
|
requirements: []
|
165
207
|
|
166
208
|
rubyforge_project: sinatra-synchrony
|
167
|
-
rubygems_version: 1.
|
209
|
+
rubygems_version: 1.8.5
|
168
210
|
signing_key:
|
169
211
|
specification_version: 3
|
170
212
|
summary: Bootstraps Sinatra with EM-Synchrony code, make TCPSocket EM-aware, provides support for tests
|