raindrops 0.12.0 → 0.12.0.5.g821b
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.
- checksums.yaml +7 -0
- data/ChangeLog +47 -0
- data/GIT-VERSION-FILE +1 -1
- data/Rakefile +0 -37
- data/ext/raindrops/linux_inet_diag.c +41 -3
- data/lib/raindrops/last_data_recv.rb +3 -1
- data/raindrops.gemspec +1 -0
- metadata +71 -102
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7e0944aa1ddeeb4053cca3fcf100bf6dc24e1e19
|
4
|
+
data.tar.gz: d58d8bee09014bea7ead3fc3bcf4abff24c7d1c9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9deecb71c6a9393970d94069e3c4fe698a4035ac37d00b61967d30b39fb83f11bd76edb4e18a21dda055ed16bfead9bb1441b9d587d527944e363da1d908c8a3
|
7
|
+
data.tar.gz: bcac5e4baf4a6fd2de0aea7bd2b0799dae7632e900d018bb9aec25cff883f706f12c96c37f5ad8f837be60b65e16113b2d2d401ed484dab1103f3575abdece84
|
data/ChangeLog
CHANGED
@@ -1,5 +1,52 @@
|
|
1
1
|
ChangeLog from http://bogomips.org/raindrops.git
|
2
2
|
|
3
|
+
commit 821b190e39fa48496520eb8f7f782ead8419df58
|
4
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
5
|
+
Date: Tue Feb 18 06:48:36 2014 +0000
|
6
|
+
|
7
|
+
linux_inet_diag: fix Ruby 2.2 (dev) build
|
8
|
+
|
9
|
+
Do not define or use rb_thread_blocking_region if
|
10
|
+
rb_thread_io_blocking_region is available.
|
11
|
+
rb_thread_blocking_region is gone entirely in Ruby trunk.
|
12
|
+
|
13
|
+
commit 7c61c7cc7d2571d1778da2f6dd01ea56cdac0530
|
14
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
15
|
+
Date: Tue Feb 18 06:46:43 2014 +0000
|
16
|
+
|
17
|
+
raindrops.gemspec: add wrongdoc dev dependency
|
18
|
+
|
19
|
+
Ugh, I really need to work on an 80x24-friendly rdoc :P
|
20
|
+
|
21
|
+
commit 8297d1dc600e34db29bb071ff7b94f6aaa7b45c5
|
22
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
23
|
+
Date: Tue Nov 5 07:05:04 2013 +0000
|
24
|
+
|
25
|
+
last_data_recv: do not assume Unicorn includes all constants
|
26
|
+
|
27
|
+
Some projects may load parts of Unicorn and not others.
|
28
|
+
|
29
|
+
commit f76c6ba8aa64018fcfac6f1c1989ddc828bd180b
|
30
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
31
|
+
Date: Tue Nov 5 07:00:26 2013 +0000
|
32
|
+
|
33
|
+
Rakefile: remove raa_update task
|
34
|
+
|
35
|
+
RAA is dead
|
36
|
+
|
37
|
+
commit f952501c14316f8639949e3537aead6351224bcd
|
38
|
+
Author: Hleb Valoshka <375gnu@gmail.com>
|
39
|
+
Date: Thu Sep 12 16:31:13 2013 +0300
|
40
|
+
|
41
|
+
Remove Scope IDs from IPv6 addresses.
|
42
|
+
|
43
|
+
Scoped ipv6 addresses are defined in rfc4007.
|
44
|
+
Ruby doesn't support them yet and it's unknown whether it will
|
45
|
+
(see http://bugs.ruby-lang.org/issues/8464).
|
46
|
+
So we just remove scope ids.
|
47
|
+
|
48
|
+
Tested with MRI and Rubinius.
|
49
|
+
|
3
50
|
commit 05cde4657605caa2db2cb9bd3da611e4bc9d79f6
|
4
51
|
Author: Eric Wong <normalperson@yhbt.net>
|
5
52
|
Date: Mon Sep 2 10:30:39 2013 +0000
|
data/GIT-VERSION-FILE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
GIT_VERSION = 0.12.0
|
1
|
+
GIT_VERSION = 0.12.0.5.g821b
|
data/Rakefile
CHANGED
@@ -26,40 +26,3 @@ task :publish_news do
|
|
26
26
|
rf.login
|
27
27
|
rf.post_news('rainbows', subject, body)
|
28
28
|
end
|
29
|
-
|
30
|
-
desc "post to RAA"
|
31
|
-
task :raa_update do
|
32
|
-
require 'net/http'
|
33
|
-
require 'net/netrc'
|
34
|
-
rc = Net::Netrc.locate('raindrops-raa') or abort "~/.netrc not found"
|
35
|
-
password = rc.password
|
36
|
-
|
37
|
-
s = Gem::Specification.load('raindrops.gemspec')
|
38
|
-
desc = [ s.description.strip ]
|
39
|
-
desc << ""
|
40
|
-
desc << "* #{s.email}"
|
41
|
-
desc << "* #{git_url}"
|
42
|
-
desc << "* #{cgit_url}"
|
43
|
-
desc = desc.join("\n")
|
44
|
-
uri = URI.parse('http://raa.ruby-lang.org/regist.rhtml')
|
45
|
-
form = {
|
46
|
-
:name => s.name,
|
47
|
-
:short_description => s.summary,
|
48
|
-
:version => s.version.to_s,
|
49
|
-
:status => 'experimental',
|
50
|
-
:owner => s.authors.first,
|
51
|
-
:email => s.email,
|
52
|
-
:category_major => 'Library',
|
53
|
-
:category_minor => 'Rack',
|
54
|
-
:url => s.homepage,
|
55
|
-
:download => 'http://rubyforge.org/frs/?group_id=8977',
|
56
|
-
:license => 'LGPL', # LGPLv3, actually, but RAA is ancient...
|
57
|
-
:description_style => 'Plain',
|
58
|
-
:description => desc,
|
59
|
-
:pass => password,
|
60
|
-
:submit => 'Update',
|
61
|
-
}
|
62
|
-
res = Net::HTTP.post_form(uri, form)
|
63
|
-
p res
|
64
|
-
puts res.body
|
65
|
-
end
|
@@ -13,7 +13,8 @@
|
|
13
13
|
#endif
|
14
14
|
|
15
15
|
/* partial emulation of the 1.9 rb_thread_blocking_region under 1.8 */
|
16
|
-
#
|
16
|
+
#if !defined(HAVE_RB_THREAD_BLOCKING_REGION) && \
|
17
|
+
!defined(HAVE_RB_THREAD_IO_BLOCKING_REGION)
|
17
18
|
# include <rubysig.h>
|
18
19
|
# define RUBY_UBF_IO ((rb_unblock_function_t *)-1)
|
19
20
|
typedef void rb_unblock_function_t(void *);
|
@@ -134,12 +135,49 @@ static int st_free_data(st_data_t key, st_data_t value, st_data_t ignored)
|
|
134
135
|
return ST_DELETE;
|
135
136
|
}
|
136
137
|
|
138
|
+
/*
|
139
|
+
* call-seq:
|
140
|
+
* remove_scope_id(ip_address)
|
141
|
+
*
|
142
|
+
* Returns copy of IP address with Scope ID removed,
|
143
|
+
* if address has it (only IPv6 actually may have it).
|
144
|
+
*/
|
145
|
+
static VALUE remove_scope_id(const char *addr)
|
146
|
+
{
|
147
|
+
VALUE rv = rb_str_new2(addr);
|
148
|
+
long len = RSTRING_LEN(rv);
|
149
|
+
char *ptr = RSTRING_PTR(rv);
|
150
|
+
char *pct = memchr(ptr, '%', len);
|
151
|
+
|
152
|
+
/*
|
153
|
+
* remove scoped portion
|
154
|
+
* Ruby equivalent: rv.sub!(/%([^\]]*)\]/, "]")
|
155
|
+
*/
|
156
|
+
if (pct) {
|
157
|
+
size_t newlen = pct - ptr;
|
158
|
+
char *rbracket = memchr(pct, ']', len - newlen);
|
159
|
+
|
160
|
+
if (rbracket) {
|
161
|
+
size_t move = len - (rbracket - ptr);
|
162
|
+
|
163
|
+
memmove(pct, rbracket, move);
|
164
|
+
newlen += move;
|
165
|
+
|
166
|
+
rb_str_set_len(rv, newlen);
|
167
|
+
} else {
|
168
|
+
rb_raise(rb_eArgError,
|
169
|
+
"']' not found in IPv6 addr=%s", ptr);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
return rv;
|
173
|
+
}
|
174
|
+
|
137
175
|
static int st_to_hash(st_data_t key, st_data_t value, VALUE hash)
|
138
176
|
{
|
139
177
|
struct listen_stats *stats = (struct listen_stats *)value;
|
140
178
|
|
141
179
|
if (stats->listener_p) {
|
142
|
-
VALUE k =
|
180
|
+
VALUE k = remove_scope_id((const char *)key);
|
143
181
|
VALUE v = rb_listen_stats(stats);
|
144
182
|
|
145
183
|
OBJ_FREEZE(k);
|
@@ -153,7 +191,7 @@ static int st_AND_hash(st_data_t key, st_data_t value, VALUE hash)
|
|
153
191
|
struct listen_stats *stats = (struct listen_stats *)value;
|
154
192
|
|
155
193
|
if (stats->listener_p) {
|
156
|
-
VALUE k =
|
194
|
+
VALUE k = remove_scope_id((const char *)key);
|
157
195
|
|
158
196
|
if (rb_hash_lookup(hash, k) == Qtrue) {
|
159
197
|
VALUE v = rb_listen_stats(stats);
|
@@ -73,7 +73,9 @@ class Raindrops::LastDataRecv
|
|
73
73
|
# :startdoc
|
74
74
|
|
75
75
|
def initialize(opts = {})
|
76
|
-
|
76
|
+
if defined?(Unicorn::HttpServer::LISTENERS)
|
77
|
+
Raindrops::Aggregate::LastDataRecv.cornify!
|
78
|
+
end
|
77
79
|
@aggregate =
|
78
80
|
opts[:aggregate] || Raindrops::Aggregate::LastDataRecv.default_aggregate
|
79
81
|
end
|
data/raindrops.gemspec
CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency('posix_mq', '~> 2.0')
|
28
28
|
s.add_development_dependency('rack', '~> 1.2')
|
29
29
|
s.add_development_dependency('unicorn', '>= 0.98')
|
30
|
+
s.add_development_dependency('wrongdoc', ['~> 1.6.2', '>= 1.6.2'])
|
30
31
|
|
31
32
|
# s.licenses = %w(LGPLv3) # accessor not compatible with older RubyGems
|
32
33
|
end
|
metadata
CHANGED
@@ -1,151 +1,122 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
name:
|
3
|
-
cmFpbmRyb3Bz
|
2
|
+
name: raindrops
|
4
3
|
version: !ruby/object:Gem::Version
|
5
|
-
version: 0.12.0
|
6
|
-
prerelease:
|
4
|
+
version: 0.12.0.5.g821b
|
7
5
|
platform: ruby
|
8
6
|
authors:
|
9
|
-
-
|
10
|
-
cmFpbmRyb3BzIGhhY2tlcnM=
|
7
|
+
- raindrops hackers
|
11
8
|
autorequire:
|
12
9
|
bindir: bin
|
13
10
|
cert_chain: []
|
14
|
-
date:
|
11
|
+
date: 2014-02-18 00:00:00.000000000 Z
|
15
12
|
dependencies:
|
16
13
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
18
|
-
YWdncmVnYXRl
|
14
|
+
name: aggregate
|
19
15
|
requirement: !ruby/object:Gem::Requirement
|
20
|
-
none: false
|
21
16
|
requirements:
|
22
|
-
- -
|
23
|
-
fj4=
|
17
|
+
- - "~>"
|
24
18
|
- !ruby/object:Gem::Version
|
25
|
-
version:
|
26
|
-
MC4y
|
19
|
+
version: '0.2'
|
27
20
|
type: :development
|
28
21
|
prerelease: false
|
29
22
|
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
none: false
|
31
23
|
requirements:
|
32
|
-
- -
|
33
|
-
fj4=
|
24
|
+
- - "~>"
|
34
25
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
36
|
-
MC4y
|
26
|
+
version: '0.2'
|
37
27
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
39
|
-
aW8tZXh0cmE=
|
28
|
+
name: io-extra
|
40
29
|
requirement: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
30
|
requirements:
|
43
|
-
- -
|
44
|
-
fj4=
|
31
|
+
- - "~>"
|
45
32
|
- !ruby/object:Gem::Version
|
46
|
-
version:
|
47
|
-
|
48
|
-
- - !binary |-
|
49
|
-
Pj0=
|
33
|
+
version: '1.2'
|
34
|
+
- - ">="
|
50
35
|
- !ruby/object:Gem::Version
|
51
|
-
version:
|
52
|
-
MS4yLjM=
|
36
|
+
version: 1.2.3
|
53
37
|
type: :development
|
54
38
|
prerelease: false
|
55
39
|
version_requirements: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
40
|
requirements:
|
58
|
-
- -
|
59
|
-
fj4=
|
41
|
+
- - "~>"
|
60
42
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
62
|
-
|
63
|
-
- - !binary |-
|
64
|
-
Pj0=
|
43
|
+
version: '1.2'
|
44
|
+
- - ">="
|
65
45
|
- !ruby/object:Gem::Version
|
66
|
-
version:
|
67
|
-
MS4yLjM=
|
46
|
+
version: 1.2.3
|
68
47
|
- !ruby/object:Gem::Dependency
|
69
|
-
name:
|
70
|
-
cG9zaXhfbXE=
|
48
|
+
name: posix_mq
|
71
49
|
requirement: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
50
|
requirements:
|
74
|
-
- -
|
75
|
-
fj4=
|
51
|
+
- - "~>"
|
76
52
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
78
|
-
Mi4w
|
53
|
+
version: '2.0'
|
79
54
|
type: :development
|
80
55
|
prerelease: false
|
81
56
|
version_requirements: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
57
|
requirements:
|
84
|
-
- -
|
85
|
-
fj4=
|
58
|
+
- - "~>"
|
86
59
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
88
|
-
Mi4w
|
60
|
+
version: '2.0'
|
89
61
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
91
|
-
cmFjaw==
|
62
|
+
name: rack
|
92
63
|
requirement: !ruby/object:Gem::Requirement
|
93
|
-
none: false
|
94
64
|
requirements:
|
95
|
-
- -
|
96
|
-
fj4=
|
65
|
+
- - "~>"
|
97
66
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
99
|
-
MS4y
|
67
|
+
version: '1.2'
|
100
68
|
type: :development
|
101
69
|
prerelease: false
|
102
70
|
version_requirements: !ruby/object:Gem::Requirement
|
103
|
-
none: false
|
104
71
|
requirements:
|
105
|
-
- -
|
106
|
-
fj4=
|
72
|
+
- - "~>"
|
107
73
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
109
|
-
MS4y
|
74
|
+
version: '1.2'
|
110
75
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
112
|
-
dW5pY29ybg==
|
76
|
+
name: unicorn
|
113
77
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
78
|
requirements:
|
116
|
-
- -
|
117
|
-
Pj0=
|
79
|
+
- - ">="
|
118
80
|
- !ruby/object:Gem::Version
|
119
|
-
version:
|
120
|
-
MC45OA==
|
81
|
+
version: '0.98'
|
121
82
|
type: :development
|
122
83
|
prerelease: false
|
123
84
|
version_requirements: !ruby/object:Gem::Requirement
|
124
|
-
none: false
|
125
85
|
requirements:
|
126
|
-
- -
|
127
|
-
Pj0=
|
86
|
+
- - ">="
|
128
87
|
- !ruby/object:Gem::Version
|
129
|
-
version:
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
88
|
+
version: '0.98'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: wrongdoc
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: 1.6.2
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 1.6.2
|
99
|
+
type: :development
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: 1.6.2
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: 1.6.2
|
109
|
+
description: |-
|
110
|
+
Raindrops is a real-time stats toolkit to show statistics for Rack HTTP
|
134
111
|
servers. It is designed for preforking servers such as Rainbows! and
|
135
|
-
|
136
112
|
Unicorn, but should support any Rack HTTP server under Ruby 2.0, 1.9,
|
137
|
-
|
138
113
|
1.8 and Rubinius on platforms supporting POSIX shared memory. It may
|
139
|
-
|
140
114
|
also be used as a generic scoreboard for sharing atomic counters across
|
141
|
-
|
142
|
-
|
143
|
-
email: !binary |-
|
144
|
-
cmFpbmRyb3BzQGxpYnJlbGlzdC5vcmc=
|
115
|
+
multiple processes.
|
116
|
+
email: raindrops@librelist.org
|
145
117
|
executables: []
|
146
118
|
extensions:
|
147
|
-
-
|
148
|
-
ZXh0L3JhaW5kcm9wcy9leHRjb25mLnJi
|
119
|
+
- ext/raindrops/extconf.rb
|
149
120
|
extra_rdoc_files:
|
150
121
|
- README
|
151
122
|
- LICENSE
|
@@ -165,10 +136,10 @@ extra_rdoc_files:
|
|
165
136
|
- ext/raindrops/linux_inet_diag.c
|
166
137
|
- ext/raindrops/linux_tcp_info.c
|
167
138
|
files:
|
168
|
-
- .document
|
169
|
-
- .gitignore
|
170
|
-
- .manifest
|
171
|
-
- .wrongdoc.yml
|
139
|
+
- ".document"
|
140
|
+
- ".gitignore"
|
141
|
+
- ".manifest"
|
142
|
+
- ".wrongdoc.yml"
|
172
143
|
- COPYING
|
173
144
|
- ChangeLog
|
174
145
|
- GIT-VERSION-FILE
|
@@ -224,32 +195,30 @@ files:
|
|
224
195
|
- test/test_watcher.rb
|
225
196
|
homepage: http://raindrops.bogomips.org/
|
226
197
|
licenses: []
|
198
|
+
metadata: {}
|
227
199
|
post_install_message:
|
228
200
|
rdoc_options:
|
229
|
-
- -t
|
201
|
+
- "-t"
|
230
202
|
- raindrops - real-time stats for preforking Rack servers
|
231
|
-
- -W
|
203
|
+
- "-W"
|
232
204
|
- http://bogomips.org/raindrops.git/tree/%s
|
233
205
|
require_paths:
|
234
206
|
- lib
|
235
207
|
required_ruby_version: !ruby/object:Gem::Requirement
|
236
|
-
none: false
|
237
208
|
requirements:
|
238
|
-
- -
|
209
|
+
- - ">="
|
239
210
|
- !ruby/object:Gem::Version
|
240
211
|
version: '0'
|
241
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
242
|
-
none: false
|
243
213
|
requirements:
|
244
|
-
- -
|
214
|
+
- - ">"
|
245
215
|
- !ruby/object:Gem::Version
|
246
|
-
version:
|
216
|
+
version: 1.3.1
|
247
217
|
requirements: []
|
248
|
-
rubyforge_project:
|
249
|
-
|
250
|
-
rubygems_version: 1.8.23
|
218
|
+
rubyforge_project: rainbows
|
219
|
+
rubygems_version: 2.2.2
|
251
220
|
signing_key:
|
252
|
-
specification_version:
|
221
|
+
specification_version: 4
|
253
222
|
summary: real-time stats for preforking Rack servers
|
254
223
|
test_files:
|
255
224
|
- test/test_aggregate_pmq.rb
|