raindrops 0.13.0 → 0.14.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.
- checksums.yaml +7 -0
- data/.document +0 -1
- data/.gitignore +1 -1
- data/{.wrongdoc.yml → .olddoc.yml} +2 -1
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +0 -1
- data/README +11 -21
- data/TODO +1 -0
- data/archive/.gitignore +3 -0
- data/archive/slrnpull.conf +4 -0
- data/ext/raindrops/linux_inet_diag.c +26 -17
- data/lib/raindrops.rb +1 -1
- data/pkg.mk +23 -48
- data/raindrops.gemspec +7 -9
- data/test/test_linux_ipv6.rb +8 -0
- metadata +75 -136
- data/Rakefile +0 -28
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9413298de2e3b79dcdd95b54b8643d305dd8df8e
|
4
|
+
data.tar.gz: f969dad93eeed763d11a19411ec20cc3ad49fd56
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1af7ba8bd776a9232d16bd5ae72d542793d85a88a1573fbd61e21a6a95781b202eba0aaec2d184720e0f951e45c6f8c25715f3e117fb078739576bcd5519ce0c
|
7
|
+
data.tar.gz: 775e05d7953b009a8cb36cd4f8f937a5c164d3b485f110779c6fa706e76b7f43844d8e4bc9ea50024d20a46b77d58250efab88b9a6ad545e9031505014a6b2f8
|
data/.document
CHANGED
data/.gitignore
CHANGED
@@ -2,5 +2,6 @@
|
|
2
2
|
cgit_url: http://bogomips.org/raindrops.git
|
3
3
|
git_url: git://bogomips.org/raindrops.git
|
4
4
|
rdoc_url: http://raindrops.bogomips.org/
|
5
|
-
public_email: raindrops@
|
5
|
+
public_email: raindrops-public@bogomips.org
|
6
6
|
private_email: raindrops@bogomips.org
|
7
|
+
ml_url: http://bogomips.org/raindrops-public/
|
data/GIT-VERSION-GEN
CHANGED
data/GNUmakefile
CHANGED
data/README
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
= raindrops - real-time stats for preforking Rack servers
|
2
2
|
|
3
|
-
|
4
|
-
servers. It is designed for preforking servers such as
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
multiple processes.
|
3
|
+
raindrops is a real-time stats toolkit to show statistics for Rack HTTP
|
4
|
+
servers. It is designed for preforking servers such as unicorn, but
|
5
|
+
should support any Rack HTTP server on platforms supporting POSIX shared
|
6
|
+
memory. It may also be used as a generic scoreboard for sharing atomic
|
7
|
+
counters across multiple processes.
|
9
8
|
|
10
9
|
== Features
|
11
10
|
|
@@ -62,8 +61,8 @@ Unpack it, and run "ruby setup.rb"
|
|
62
61
|
|
63
62
|
See Raindrops::Middleware and Raindrops::LastDataRecv documentation for
|
64
63
|
use Rack servers. The entire library is fully-documented and we are
|
65
|
-
responsive on the mailing list (mailto:raindrops@
|
66
|
-
have any questions or comments.
|
64
|
+
responsive on the mailing list (mailto:raindrops-public@bogomips.org) if
|
65
|
+
you have any questions or comments.
|
67
66
|
|
68
67
|
== Development
|
69
68
|
|
@@ -87,22 +86,13 @@ git itself. See the Documentation/SubmittingPatches document
|
|
87
86
|
distributed with git on on patch submission guidelines to follow. Just
|
88
87
|
don't email the git mailing list or maintainer with raindrops patches.
|
89
88
|
|
90
|
-
raindrops is
|
91
|
-
allow for a transition to future versions of the LGPL, contributors are
|
92
|
-
required to sign-off changes allowing allowing the project leader to
|
93
|
-
relicense raindrops under newer versions of the LGPL (which should be
|
94
|
-
similar in spirit to the existing LGPL).
|
89
|
+
raindrops is licensed under the LGPL+2.1 or later:
|
95
90
|
|
96
91
|
== Contact
|
97
92
|
|
98
93
|
All feedback (bug reports, user/development discussion, patches, pull
|
99
|
-
requests) go to the mailing list: mailto:raindrops@
|
94
|
+
requests) go to the mailing list: mailto:raindrops-public@bogomips.org
|
100
95
|
|
101
|
-
|
102
|
-
group is here:
|
96
|
+
Mailing list archives are available here:
|
103
97
|
|
104
|
-
http://
|
105
|
-
|
106
|
-
Mailing list archives in mbox format may be downloaded here:
|
107
|
-
|
108
|
-
http://raindrops.bogomips.org/archives/
|
98
|
+
http://bogomips.org/raindrops-public/
|
data/TODO
CHANGED
data/archive/.gitignore
ADDED
@@ -1,4 +1,5 @@
|
|
1
1
|
#include <ruby.h>
|
2
|
+
#include <stdarg.h>
|
2
3
|
#ifdef HAVE_RUBY_ST_H
|
3
4
|
# include <ruby/st.h>
|
4
5
|
#else
|
@@ -213,10 +214,16 @@ static const char *addr_any(sa_family_t family)
|
|
213
214
|
return ipv6;
|
214
215
|
}
|
215
216
|
|
216
|
-
static void
|
217
|
+
static void bug_warn_nogvl(const char *fmt, ...)
|
217
218
|
{
|
219
|
+
va_list ap;
|
220
|
+
|
221
|
+
va_start(ap, fmt);
|
222
|
+
vfprintf(stderr, fmt, ap);
|
223
|
+
va_end(ap);
|
224
|
+
|
218
225
|
fprintf(stderr, "Please report how you produced this at "\
|
219
|
-
"raindrops@
|
226
|
+
"raindrops-public@bogomips.org\n");
|
220
227
|
fflush(stderr);
|
221
228
|
}
|
222
229
|
|
@@ -225,8 +232,8 @@ static struct listen_stats *stats_for(st_table *table, struct inet_diag_msg *r)
|
|
225
232
|
char *key, *port, *old_key;
|
226
233
|
size_t alloca_len;
|
227
234
|
struct listen_stats *stats;
|
228
|
-
|
229
|
-
|
235
|
+
socklen_t keylen;
|
236
|
+
socklen_t portlen = (socklen_t)sizeof("65535");
|
230
237
|
union any_addr sa;
|
231
238
|
socklen_t len = sizeof(struct sockaddr_storage);
|
232
239
|
int rc;
|
@@ -263,13 +270,12 @@ static struct listen_stats *stats_for(st_table *table, struct inet_diag_msg *r)
|
|
263
270
|
assert(0 && "unsupported address family, could that be IPv7?!");
|
264
271
|
}
|
265
272
|
if (rc != 0) {
|
266
|
-
|
267
|
-
bug_warn();
|
273
|
+
bug_warn_nogvl("BUG: getnameinfo: %s\n", gai_strerror(rc));
|
268
274
|
*key = 0;
|
269
275
|
}
|
270
276
|
|
271
|
-
keylen = strlen(key);
|
272
|
-
portlen = strlen(port);
|
277
|
+
keylen = (socklen_t)strlen(key);
|
278
|
+
portlen = (socklen_t)strlen(port);
|
273
279
|
|
274
280
|
switch (sa.ss.ss_family) {
|
275
281
|
case AF_INET:
|
@@ -296,8 +302,7 @@ static struct listen_stats *stats_for(st_table *table, struct inet_diag_msg *r)
|
|
296
302
|
addr_any(sa.ss.ss_family),
|
297
303
|
ntohs(r->id.idiag_sport));
|
298
304
|
if (n <= 0) {
|
299
|
-
|
300
|
-
bug_warn();
|
305
|
+
bug_warn_nogvl("BUG: snprintf: %d\n", n);
|
301
306
|
}
|
302
307
|
if (st_lookup(table, (st_data_t)key, (st_data_t *)&stats))
|
303
308
|
return stats;
|
@@ -391,8 +396,8 @@ static void prep_diag_args(
|
|
391
396
|
|
392
397
|
nladdr->nl_family = AF_NETLINK;
|
393
398
|
|
394
|
-
req->nlh.nlmsg_len = sizeof(struct diag_req) +
|
395
|
-
RTA_LENGTH(args->iov[2].iov_len);
|
399
|
+
req->nlh.nlmsg_len = (unsigned int)(sizeof(struct diag_req) +
|
400
|
+
RTA_LENGTH(args->iov[2].iov_len));
|
396
401
|
req->nlh.nlmsg_type = TCPDIAG_GETSOCK;
|
397
402
|
req->nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
|
398
403
|
req->nlh.nlmsg_pid = getpid();
|
@@ -465,12 +470,12 @@ static VALUE diag(void *ptr)
|
|
465
470
|
}
|
466
471
|
}
|
467
472
|
out:
|
468
|
-
|
473
|
+
/* prepare to raise, free memory before reacquiring GVL */
|
474
|
+
if (err && args->table) {
|
469
475
|
int save_errno = errno;
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
}
|
476
|
+
|
477
|
+
st_foreach(args->table, st_free_data, 0);
|
478
|
+
st_free_table(args->table);
|
474
479
|
errno = save_errno;
|
475
480
|
}
|
476
481
|
return (VALUE)err;
|
@@ -584,6 +589,10 @@ static void gen_bytecode(struct iovec *iov, union any_addr *inet)
|
|
584
589
|
}
|
585
590
|
}
|
586
591
|
|
592
|
+
/*
|
593
|
+
* n.b. we may safely raise here because an error will cause diag()
|
594
|
+
* to free args->table
|
595
|
+
*/
|
587
596
|
static void nl_errcheck(VALUE r)
|
588
597
|
{
|
589
598
|
const char *err = (const char *)r;
|
data/lib/raindrops.rb
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
# Unlike many classes in this package, the core Raindrops class is
|
13
13
|
# intended to be portable to all reasonably modern *nix systems
|
14
14
|
# supporting mmap(). Please let us know if you have portability
|
15
|
-
# issues, patches or pull requests at mailto:raindrops@
|
15
|
+
# issues, patches or pull requests at mailto:raindrops-public@bogomips.org
|
16
16
|
class Raindrops
|
17
17
|
|
18
18
|
# Used to represent the number of +active+ and +queued+ sockets for
|
data/pkg.mk
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
RUBY = ruby
|
2
2
|
RAKE = rake
|
3
3
|
RSYNC = rsync
|
4
|
-
|
4
|
+
OLDDOC = olddoc
|
5
|
+
RDOC = rdoc
|
5
6
|
|
6
7
|
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
|
7
8
|
@./GIT-VERSION-GEN
|
@@ -12,14 +13,6 @@ RUBY_VERSION := $(shell $(RUBY) -e 'puts RUBY_VERSION')
|
|
12
13
|
RUBY_ENGINE := $(shell $(RUBY) -e 'puts((RUBY_ENGINE rescue "ruby"))')
|
13
14
|
lib := lib
|
14
15
|
|
15
|
-
ifeq ($(shell test -f script/isolate_for_tests && echo t),t)
|
16
|
-
isolate_libs := tmp/isolate/$(RUBY_ENGINE)-$(RUBY_VERSION)/isolate.mk
|
17
|
-
$(isolate_libs): script/isolate_for_tests
|
18
|
-
@$(RUBY) script/isolate_for_tests
|
19
|
-
-include $(isolate_libs)
|
20
|
-
lib := $(lib):$(ISOLATE_LIBS)
|
21
|
-
endif
|
22
|
-
|
23
16
|
ext := $(firstword $(wildcard ext/*))
|
24
17
|
ifneq ($(ext),)
|
25
18
|
ext_pfx := tmp/ext/$(RUBY_ENGINE)-$(RUBY_VERSION)
|
@@ -36,7 +29,7 @@ $(ext_pfx)/$(ext)/%: $(ext)/% $(ext_d)
|
|
36
29
|
install -m 644 $< $@
|
37
30
|
$(ext_pfx)/$(ext)/Makefile: $(ext)/extconf.rb $(ext_d) $(ext_h)
|
38
31
|
$(RM) -f $(@D)/*.o
|
39
|
-
cd $(@D) && $(RUBY) $(CURDIR)/$(ext)/extconf.rb
|
32
|
+
cd $(@D) && $(RUBY) $(CURDIR)/$(ext)/extconf.rb $(EXTCONF_ARGS)
|
40
33
|
ext_sfx := _ext.$(DLEXT)
|
41
34
|
ext_dl := $(ext_pfx)/$(ext)/$(notdir $(ext)_ext.$(DLEXT))
|
42
35
|
$(ext_dl): $(ext_src) $(ext_pfx_src) $(ext_pfx)/$(ext)/Makefile
|
@@ -48,10 +41,10 @@ else
|
|
48
41
|
build:
|
49
42
|
endif
|
50
43
|
|
51
|
-
pkg_extra += GIT-VERSION-FILE NEWS
|
52
|
-
|
53
|
-
$(
|
54
|
-
|
44
|
+
pkg_extra += GIT-VERSION-FILE NEWS LATEST
|
45
|
+
NEWS: GIT-VERSION-FILE .olddoc.yml
|
46
|
+
$(OLDDOC) prepare
|
47
|
+
LATEST: NEWS
|
55
48
|
|
56
49
|
manifest:
|
57
50
|
$(RM) .manifest
|
@@ -63,28 +56,20 @@ manifest:
|
|
63
56
|
cmp $@+ $@ || mv $@+ $@
|
64
57
|
$(RM) $@+
|
65
58
|
|
66
|
-
doc:: .document .
|
59
|
+
doc:: .document .olddoc.yml $(pkg_extra) $(PLACEHOLDERS)
|
67
60
|
-find lib -type f -name '*.rbc' -exec rm -f '{}' ';'
|
68
61
|
-find ext -type f -name '*.rbc' -exec rm -f '{}' ';'
|
69
62
|
$(RM) -r doc
|
70
|
-
$(
|
63
|
+
$(RDOC) -f oldweb
|
64
|
+
$(OLDDOC) merge
|
71
65
|
install -m644 COPYING doc/COPYING
|
66
|
+
install -m644 NEWS doc/NEWS
|
67
|
+
install -m644 NEWS.atom.xml doc/NEWS.atom.xml
|
72
68
|
install -m644 $(shell LC_ALL=C grep '^[A-Z]' .document) doc/
|
73
69
|
|
74
70
|
ifneq ($(VERSION),)
|
75
71
|
pkggem := pkg/$(rfpackage)-$(VERSION).gem
|
76
72
|
pkgtgz := pkg/$(rfpackage)-$(VERSION).tgz
|
77
|
-
release_notes := release_notes-$(VERSION)
|
78
|
-
release_changes := release_changes-$(VERSION)
|
79
|
-
|
80
|
-
release-notes: $(release_notes)
|
81
|
-
release-changes: $(release_changes)
|
82
|
-
$(release_changes):
|
83
|
-
$(WRONGDOC) release_changes > $@+
|
84
|
-
$(VISUAL) $@+ && test -s $@+ && mv $@+ $@
|
85
|
-
$(release_notes):
|
86
|
-
$(WRONGDOC) release_notes > $@+
|
87
|
-
$(VISUAL) $@+ && test -s $@+ && mv $@+ $@
|
88
73
|
|
89
74
|
# ensures we're actually on the tagged $(VERSION), only used for release
|
90
75
|
verify:
|
@@ -120,31 +105,18 @@ $(pkgtgz): manifest fix-perms
|
|
120
105
|
|
121
106
|
package: $(pkgtgz) $(pkggem)
|
122
107
|
|
123
|
-
|
124
|
-
# make tgz release on RubyForge
|
125
|
-
@echo rubyforge add_release -f \
|
126
|
-
-n $(release_notes) -a $(release_changes) \
|
127
|
-
$(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
|
128
|
-
@echo gem push $(pkggem)
|
129
|
-
@echo rubyforge add_file \
|
130
|
-
$(rfproject) $(rfpackage) $(VERSION) $(pkggem)
|
131
|
-
release:: verify package $(release_notes) $(release_changes)
|
132
|
-
# make tgz release on RubyForge
|
133
|
-
rubyforge add_release -f -n $(release_notes) -a $(release_changes) \
|
134
|
-
$(rfproject) $(rfpackage) $(VERSION) $(pkgtgz)
|
108
|
+
release:: verify package
|
135
109
|
# push gem to RubyGems.org
|
136
110
|
gem push $(pkggem)
|
137
|
-
# in case of gem downloads from RubyForge releases page
|
138
|
-
rubyforge add_file \
|
139
|
-
$(rfproject) $(rfpackage) $(VERSION) $(pkggem)
|
140
111
|
else
|
141
112
|
gem install-gem: GIT-VERSION-FILE
|
142
113
|
$(MAKE) $@ VERSION=$(GIT_VERSION)
|
143
114
|
endif
|
144
115
|
|
145
|
-
all::
|
116
|
+
all:: check
|
146
117
|
test_units := $(wildcard test/test_*.rb)
|
147
|
-
test:
|
118
|
+
test: check
|
119
|
+
check: test-unit
|
148
120
|
test-unit: $(test_units)
|
149
121
|
$(test_units): build
|
150
122
|
$(RUBY) -I $(lib) $@ $(RUBY_TEST_OPTS)
|
@@ -154,8 +126,6 @@ ifneq ($(RSYNC_DEST),)
|
|
154
126
|
publish_doc:
|
155
127
|
-git set-file-times
|
156
128
|
$(MAKE) doc
|
157
|
-
find doc/images -type f | \
|
158
|
-
TZ=UTC xargs touch -d '1970-01-01 00:00:06' doc/rdoc.css
|
159
129
|
$(MAKE) doc_gz
|
160
130
|
$(RSYNC) -av doc/ $(RSYNC_DEST)/
|
161
131
|
git ls-files | xargs touch
|
@@ -163,7 +133,7 @@ endif
|
|
163
133
|
|
164
134
|
# Create gzip variants of the same timestamp as the original so nginx
|
165
135
|
# "gzip_static on" can serve the gzipped versions directly.
|
166
|
-
doc_gz: docs = $(shell find doc -type f ! -regex '
|
136
|
+
doc_gz: docs = $(shell find doc -type f ! -regex '^.*\.gz$$')
|
167
137
|
doc_gz:
|
168
138
|
for i in $(docs); do \
|
169
139
|
gzip --rsyncable -9 < $$i > $$i.gz; touch -r $$i $$i.gz; done
|
@@ -171,5 +141,10 @@ check-warnings:
|
|
171
141
|
@(for i in $$(git ls-files '*.rb'| grep -v '^setup\.rb$$'); \
|
172
142
|
do $(RUBY) -d -W2 -c $$i; done) | grep -v '^Syntax OK$$' || :
|
173
143
|
|
174
|
-
|
144
|
+
ifneq ($(PLACEHOLDERS),)
|
145
|
+
$(PLACEHOLDERS):
|
146
|
+
echo olddoc_placeholder > $@
|
147
|
+
endif
|
148
|
+
|
149
|
+
.PHONY: all .FORCE-GIT-VERSION-FILE doc check test $(test_units) manifest
|
175
150
|
.PHONY: check-warnings
|
data/raindrops.gemspec
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
ENV["VERSION"] or abort "VERSION= must be specified"
|
3
3
|
manifest = File.readlines('.manifest').map! { |x| x.chomp! }
|
4
4
|
test_files = manifest.grep(%r{\Atest/test_.*\.rb\z})
|
5
|
-
require '
|
6
|
-
extend
|
5
|
+
require 'olddoc'
|
6
|
+
extend Olddoc::Gemspec
|
7
7
|
name, summary, title = readme_metadata
|
8
8
|
|
9
9
|
Gem::Specification.new do |s|
|
@@ -11,23 +11,21 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.version = ENV["VERSION"].dup
|
12
12
|
|
13
13
|
s.authors = ["raindrops hackers"]
|
14
|
-
s.date = Time.now.utc.strftime('%Y-%m-%d')
|
15
14
|
s.description = readme_description
|
16
|
-
s.email = %q{raindrops@
|
15
|
+
s.email = %q{raindrops@bogomips.org}
|
17
16
|
s.extensions = %w(ext/raindrops/extconf.rb)
|
18
17
|
s.extra_rdoc_files = extra_rdoc_files(manifest)
|
19
18
|
s.files = manifest
|
20
|
-
s.homepage =
|
19
|
+
s.homepage = Olddoc.config['rdoc_url']
|
21
20
|
s.summary = summary
|
22
|
-
s.rdoc_options = rdoc_options
|
23
|
-
s.rubyforge_project = %q{rainbows}
|
24
21
|
s.test_files = test_files
|
25
22
|
s.add_development_dependency('aggregate', '~> 0.2')
|
23
|
+
s.add_development_dependency('test-unit', '~> 3.0')
|
26
24
|
s.add_development_dependency('io-extra', [ '~> 1.2', '>= 1.2.3'])
|
27
25
|
s.add_development_dependency('posix_mq', '~> 2.0')
|
28
26
|
s.add_development_dependency('rack', '~> 1.2')
|
29
27
|
s.add_development_dependency('unicorn', '>= 0.98')
|
30
|
-
s.add_development_dependency('
|
28
|
+
s.add_development_dependency('olddoc', '~> 1.0')
|
31
29
|
|
32
|
-
s.licenses = %w(
|
30
|
+
s.licenses = %w(LGPL-2.1+)
|
33
31
|
end
|
data/test/test_linux_ipv6.rb
CHANGED
@@ -12,6 +12,14 @@ class TestLinuxIPv6 < Test::Unit::TestCase
|
|
12
12
|
|
13
13
|
TEST_ADDR = ENV["TEST_HOST6"] || "::1"
|
14
14
|
|
15
|
+
def setup
|
16
|
+
@to_close = []
|
17
|
+
end
|
18
|
+
|
19
|
+
def teardown
|
20
|
+
@to_close.each { |io| io.close unless io.closed? }
|
21
|
+
end
|
22
|
+
|
15
23
|
def test_tcp
|
16
24
|
s = TCPServer.new(TEST_ADDR, 0)
|
17
25
|
port = s.addr[1]
|
metadata
CHANGED
@@ -1,187 +1,133 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
name:
|
3
|
-
cmFpbmRyb3Bz
|
2
|
+
name: raindrops
|
4
3
|
version: !ruby/object:Gem::Version
|
5
|
-
version: 0.
|
6
|
-
prerelease:
|
4
|
+
version: 0.14.0
|
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: 2015-06-25 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: test-unit
|
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
|
-
MS4y
|
48
|
-
- - !binary |-
|
49
|
-
Pj0=
|
50
|
-
- !ruby/object:Gem::Version
|
51
|
-
version: !binary |-
|
52
|
-
MS4yLjM=
|
33
|
+
version: '3.0'
|
53
34
|
type: :development
|
54
35
|
prerelease: false
|
55
36
|
version_requirements: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
37
|
requirements:
|
58
|
-
- -
|
59
|
-
fj4=
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: !binary |-
|
62
|
-
MS4y
|
63
|
-
- - !binary |-
|
64
|
-
Pj0=
|
38
|
+
- - "~>"
|
65
39
|
- !ruby/object:Gem::Version
|
66
|
-
version:
|
67
|
-
MS4yLjM=
|
40
|
+
version: '3.0'
|
68
41
|
- !ruby/object:Gem::Dependency
|
69
|
-
name:
|
70
|
-
cG9zaXhfbXE=
|
42
|
+
name: io-extra
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
44
|
requirements:
|
74
|
-
- -
|
75
|
-
fj4=
|
45
|
+
- - "~>"
|
76
46
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
78
|
-
|
47
|
+
version: '1.2'
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 1.2.3
|
79
51
|
type: :development
|
80
52
|
prerelease: false
|
81
53
|
version_requirements: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
54
|
requirements:
|
84
|
-
- -
|
85
|
-
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '1.2'
|
58
|
+
- - ">="
|
86
59
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
88
|
-
Mi4w
|
60
|
+
version: 1.2.3
|
89
61
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
91
|
-
cmFjaw==
|
62
|
+
name: posix_mq
|
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: '2.0'
|
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: '2.0'
|
110
75
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
112
|
-
dW5pY29ybg==
|
76
|
+
name: rack
|
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: '1.2'
|
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
|
-
MC45OA==
|
88
|
+
version: '1.2'
|
131
89
|
- !ruby/object:Gem::Dependency
|
132
|
-
name:
|
133
|
-
d3Jvbmdkb2M=
|
90
|
+
name: unicorn
|
134
91
|
requirement: !ruby/object:Gem::Requirement
|
135
|
-
none: false
|
136
92
|
requirements:
|
137
|
-
- -
|
138
|
-
fj4=
|
93
|
+
- - ">="
|
139
94
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
141
|
-
MS42LjI=
|
142
|
-
- - !binary |-
|
143
|
-
Pj0=
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: !binary |-
|
146
|
-
MS42LjI=
|
95
|
+
version: '0.98'
|
147
96
|
type: :development
|
148
97
|
prerelease: false
|
149
98
|
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
none: false
|
151
99
|
requirements:
|
152
|
-
- -
|
153
|
-
fj4=
|
100
|
+
- - ">="
|
154
101
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
156
|
-
|
157
|
-
|
158
|
-
|
102
|
+
version: '0.98'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: olddoc
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
159
108
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
multiple processes.
|
174
|
-
email:
|
175
|
-
cmFpbmRyb3BzQGxpYnJlbGlzdC5vcmc=
|
109
|
+
version: '1.0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '1.0'
|
117
|
+
description: |-
|
118
|
+
raindrops is a real-time stats toolkit to show statistics for Rack HTTP
|
119
|
+
servers. It is designed for preforking servers such as unicorn, but
|
120
|
+
should support any Rack HTTP server on platforms supporting POSIX shared
|
121
|
+
memory. It may also be used as a generic scoreboard for sharing atomic
|
122
|
+
counters across multiple processes.
|
123
|
+
email: raindrops@bogomips.org
|
176
124
|
executables: []
|
177
125
|
extensions:
|
178
|
-
-
|
179
|
-
ZXh0L3JhaW5kcm9wcy9leHRjb25mLnJi
|
126
|
+
- ext/raindrops/extconf.rb
|
180
127
|
extra_rdoc_files:
|
181
128
|
- README
|
182
129
|
- LICENSE
|
183
130
|
- NEWS
|
184
|
-
- ChangeLog
|
185
131
|
- lib/raindrops.rb
|
186
132
|
- lib/raindrops/aggregate.rb
|
187
133
|
- lib/raindrops/aggregate/last_data_recv.rb
|
@@ -196,12 +142,11 @@ extra_rdoc_files:
|
|
196
142
|
- ext/raindrops/linux_inet_diag.c
|
197
143
|
- ext/raindrops/linux_tcp_info.c
|
198
144
|
files:
|
199
|
-
- .document
|
200
|
-
- .gitignore
|
201
|
-
- .manifest
|
202
|
-
- .
|
145
|
+
- ".document"
|
146
|
+
- ".gitignore"
|
147
|
+
- ".manifest"
|
148
|
+
- ".olddoc.yml"
|
203
149
|
- COPYING
|
204
|
-
- ChangeLog
|
205
150
|
- GIT-VERSION-FILE
|
206
151
|
- GIT-VERSION-GEN
|
207
152
|
- GNUmakefile
|
@@ -209,8 +154,9 @@ files:
|
|
209
154
|
- LICENSE
|
210
155
|
- NEWS
|
211
156
|
- README
|
212
|
-
- Rakefile
|
213
157
|
- TODO
|
158
|
+
- archive/.gitignore
|
159
|
+
- archive/slrnpull.conf
|
214
160
|
- examples/linux-listener-stats.rb
|
215
161
|
- examples/middleware.ru
|
216
162
|
- examples/watcher.ru
|
@@ -255,34 +201,27 @@ files:
|
|
255
201
|
- test/test_watcher.rb
|
256
202
|
homepage: http://raindrops.bogomips.org/
|
257
203
|
licenses:
|
258
|
-
-
|
259
|
-
|
204
|
+
- LGPL-2.1+
|
205
|
+
metadata: {}
|
260
206
|
post_install_message:
|
261
|
-
rdoc_options:
|
262
|
-
- -t
|
263
|
-
- raindrops - real-time stats for preforking Rack servers
|
264
|
-
- -W
|
265
|
-
- http://bogomips.org/raindrops.git/tree/%s
|
207
|
+
rdoc_options: []
|
266
208
|
require_paths:
|
267
209
|
- lib
|
268
210
|
required_ruby_version: !ruby/object:Gem::Requirement
|
269
|
-
none: false
|
270
211
|
requirements:
|
271
|
-
- -
|
212
|
+
- - ">="
|
272
213
|
- !ruby/object:Gem::Version
|
273
214
|
version: '0'
|
274
215
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
|
-
none: false
|
276
216
|
requirements:
|
277
|
-
- -
|
217
|
+
- - ">="
|
278
218
|
- !ruby/object:Gem::Version
|
279
219
|
version: '0'
|
280
220
|
requirements: []
|
281
|
-
rubyforge_project:
|
282
|
-
|
283
|
-
rubygems_version: 1.8.23
|
221
|
+
rubyforge_project:
|
222
|
+
rubygems_version: 2.4.8
|
284
223
|
signing_key:
|
285
|
-
specification_version:
|
224
|
+
specification_version: 4
|
286
225
|
summary: real-time stats for preforking Rack servers
|
287
226
|
test_files:
|
288
227
|
- test/test_aggregate_pmq.rb
|
data/Rakefile
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
desc "read news article from STDIN and post to rubyforge"
|
2
|
-
task :publish_news do
|
3
|
-
require 'rubyforge'
|
4
|
-
spec = Gem::Specification.load('raindrops.gemspec')
|
5
|
-
tmp = Tempfile.new('rf-news')
|
6
|
-
_, subject, body = `git cat-file tag v#{spec.version}`.split(/\n\n/, 3)
|
7
|
-
tmp.puts subject
|
8
|
-
tmp.puts
|
9
|
-
tmp.puts spec.description.strip
|
10
|
-
tmp.puts ""
|
11
|
-
tmp.puts "* #{spec.homepage}"
|
12
|
-
tmp.puts "* #{spec.email}"
|
13
|
-
tmp.puts "* #{git_url}"
|
14
|
-
tmp.print "\nChanges:\n\n"
|
15
|
-
tmp.puts body
|
16
|
-
tmp.flush
|
17
|
-
system(ENV["VISUAL"], tmp.path) or abort "#{ENV["VISUAL"]} failed: #$?"
|
18
|
-
msg = File.readlines(tmp.path)
|
19
|
-
subject = msg.shift
|
20
|
-
blank = msg.shift
|
21
|
-
blank == "\n" or abort "no newline after subject!"
|
22
|
-
subject.strip!
|
23
|
-
body = msg.join("").strip!
|
24
|
-
|
25
|
-
rf = RubyForge.new.configure
|
26
|
-
rf.login
|
27
|
-
rf.post_news('rainbows', subject, body)
|
28
|
-
end
|