raindrops 0.13.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,7 +1,6 @@
1
1
  README
2
2
  LICENSE
3
3
  NEWS
4
- ChangeLog
5
4
  lib
6
5
  ext/raindrops/raindrops.c
7
6
  ext/raindrops/linux_inet_diag.c
data/.gitignore CHANGED
@@ -5,7 +5,7 @@
5
5
  Makefile
6
6
  /GIT-VERSION-FILE
7
7
  /local.mk
8
- /NEWS
8
+ /NEWS*
9
9
  /ChangeLog
10
10
  /.manifest
11
11
  /man
@@ -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@librelist.org
5
+ public_email: raindrops-public@bogomips.org
6
6
  private_email: raindrops@bogomips.org
7
+ ml_url: http://bogomips.org/raindrops-public/
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
 
3
3
  GVF=GIT-VERSION-FILE
4
- DEF_VER=v0.13.0
4
+ DEF_VER=v0.14.0
5
5
 
6
6
  LF='
7
7
  '
@@ -1,5 +1,4 @@
1
1
  all::
2
2
  RSYNC_DEST := bogomips.org:/srv/raindrops
3
- rfproject := rainbows
4
3
  rfpackage := raindrops
5
4
  include pkg.mk
data/README CHANGED
@@ -1,11 +1,10 @@
1
1
  = raindrops - real-time stats for preforking Rack servers
2
2
 
3
- Raindrops is a real-time stats toolkit to show statistics for Rack HTTP
4
- servers. It is designed for preforking servers such as Rainbows! and
5
- Unicorn, but should support any Rack HTTP server under Ruby 2.0, 1.9,
6
- 1.8 and Rubinius on platforms supporting POSIX shared memory. It may
7
- also be used as a generic scoreboard for sharing atomic counters across
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@librelist.org) if you
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 currently dual-licensed under the LGPLv2.1 and LGPLv3. To
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@librelist.org
94
+ requests) go to the mailing list: mailto:raindrops-public@bogomips.org
100
95
 
101
- The mailing list is mirrored to Gmane, all information about the
102
- group is here:
96
+ Mailing list archives are available here:
103
97
 
104
- http://gmane.org/info.php?group=gmane.comp.lang.ruby.raindrops.general
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
@@ -1 +1,2 @@
1
1
  * pure Ruby version for non-forking servers (patches welcome!)
2
+ * unix_diag and udp_diag support
@@ -0,0 +1,3 @@
1
+ /data
2
+ /news
3
+ /requests
@@ -0,0 +1,4 @@
1
+ # group_name max expire headers_only
2
+ gmane.comp.lang.ruby.raindrops.general 1000000000 1000000000 0
3
+
4
+ # usage: slrnpull -d $PWD -h news.gmane.org --no-post
@@ -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 bug_warn(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@librelist.org\n");
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
- size_t keylen;
229
- size_t portlen = sizeof("65535");
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
- fprintf(stderr, "BUG: getnameinfo: %s\n", gai_strerror(rc));
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
- fprintf(stderr, "BUG: snprintf: %d\n", n);
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
- if (err && args->table) {
471
- st_foreach(args->table, st_free_data, 0);
472
- st_free_table(args->table);
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;
@@ -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@librelist.org
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
- WRONGDOC = wrongdoc
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 ChangeLog LATEST
52
- ChangeLog: GIT-VERSION-FILE .wrongdoc.yml
53
- $(WRONGDOC) prepare
54
- NEWS LATEST: ChangeLog
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 .wrongdoc.yml $(pkg_extra)
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
- $(WRONGDOC) all
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
- test-release:: verify package $(release_notes) $(release_changes)
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:: test
116
+ all:: check
146
117
  test_units := $(wildcard test/test_*.rb)
147
- test: test-unit
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 '^.*\.\(gif\|jpg\|png\|gz\)$$')
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
- .PHONY: all .FORCE-GIT-VERSION-FILE doc test $(test_units) manifest
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
@@ -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 'wrongdoc'
6
- extend Wrongdoc::Gemspec
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@librelist.org}
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 = Wrongdoc.config[:rdoc_url]
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('wrongdoc', ['~> 1.6.2', '>= 1.6.2'])
28
+ s.add_development_dependency('olddoc', '~> 1.0')
31
29
 
32
- s.licenses = %w(LGPLv2.1+)
30
+ s.licenses = %w(LGPL-2.1+)
33
31
  end
@@ -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: !binary |-
3
- cmFpbmRyb3Bz
2
+ name: raindrops
4
3
  version: !ruby/object:Gem::Version
5
- version: 0.13.0
6
- prerelease:
4
+ version: 0.14.0
7
5
  platform: ruby
8
6
  authors:
9
- - !binary |-
10
- cmFpbmRyb3BzIGhhY2tlcnM=
7
+ - raindrops hackers
11
8
  autorequire:
12
9
  bindir: bin
13
10
  cert_chain: []
14
- date: 2014-02-18 00:00:00.000000000 Z
11
+ date: 2015-06-25 00:00:00.000000000 Z
15
12
  dependencies:
16
13
  - !ruby/object:Gem::Dependency
17
- name: !binary |-
18
- YWdncmVnYXRl
14
+ name: aggregate
19
15
  requirement: !ruby/object:Gem::Requirement
20
- none: false
21
16
  requirements:
22
- - - !binary |-
23
- fj4=
17
+ - - "~>"
24
18
  - !ruby/object:Gem::Version
25
- version: !binary |-
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
- - - !binary |-
33
- fj4=
24
+ - - "~>"
34
25
  - !ruby/object:Gem::Version
35
- version: !binary |-
36
- MC4y
26
+ version: '0.2'
37
27
  - !ruby/object:Gem::Dependency
38
- name: !binary |-
39
- aW8tZXh0cmE=
28
+ name: test-unit
40
29
  requirement: !ruby/object:Gem::Requirement
41
- none: false
42
30
  requirements:
43
- - - !binary |-
44
- fj4=
31
+ - - "~>"
45
32
  - !ruby/object:Gem::Version
46
- version: !binary |-
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
- - - !binary |-
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: !binary |-
67
- MS4yLjM=
40
+ version: '3.0'
68
41
  - !ruby/object:Gem::Dependency
69
- name: !binary |-
70
- cG9zaXhfbXE=
42
+ name: io-extra
71
43
  requirement: !ruby/object:Gem::Requirement
72
- none: false
73
44
  requirements:
74
- - - !binary |-
75
- fj4=
45
+ - - "~>"
76
46
  - !ruby/object:Gem::Version
77
- version: !binary |-
78
- Mi4w
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
- - - !binary |-
85
- fj4=
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '1.2'
58
+ - - ">="
86
59
  - !ruby/object:Gem::Version
87
- version: !binary |-
88
- Mi4w
60
+ version: 1.2.3
89
61
  - !ruby/object:Gem::Dependency
90
- name: !binary |-
91
- cmFjaw==
62
+ name: posix_mq
92
63
  requirement: !ruby/object:Gem::Requirement
93
- none: false
94
64
  requirements:
95
- - - !binary |-
96
- fj4=
65
+ - - "~>"
97
66
  - !ruby/object:Gem::Version
98
- version: !binary |-
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
- - - !binary |-
106
- fj4=
72
+ - - "~>"
107
73
  - !ruby/object:Gem::Version
108
- version: !binary |-
109
- MS4y
74
+ version: '2.0'
110
75
  - !ruby/object:Gem::Dependency
111
- name: !binary |-
112
- dW5pY29ybg==
76
+ name: rack
113
77
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
78
  requirements:
116
- - - !binary |-
117
- Pj0=
79
+ - - "~>"
118
80
  - !ruby/object:Gem::Version
119
- version: !binary |-
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
- - - !binary |-
127
- Pj0=
86
+ - - "~>"
128
87
  - !ruby/object:Gem::Version
129
- version: !binary |-
130
- MC45OA==
88
+ version: '1.2'
131
89
  - !ruby/object:Gem::Dependency
132
- name: !binary |-
133
- d3Jvbmdkb2M=
90
+ name: unicorn
134
91
  requirement: !ruby/object:Gem::Requirement
135
- none: false
136
92
  requirements:
137
- - - !binary |-
138
- fj4=
93
+ - - ">="
139
94
  - !ruby/object:Gem::Version
140
- version: !binary |-
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
- - - !binary |-
153
- fj4=
100
+ - - ">="
154
101
  - !ruby/object:Gem::Version
155
- version: !binary |-
156
- MS42LjI=
157
- - - !binary |-
158
- Pj0=
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: !binary |-
161
- MS42LjI=
162
- description: ! 'Raindrops is a real-time stats toolkit to show statistics for Rack
163
- HTTP
164
-
165
- servers. It is designed for preforking servers such as Rainbows! and
166
-
167
- Unicorn, but should support any Rack HTTP server under Ruby 2.0, 1.9,
168
-
169
- 1.8 and Rubinius on platforms supporting POSIX shared memory. It may
170
-
171
- also be used as a generic scoreboard for sharing atomic counters across
172
-
173
- multiple processes.'
174
- email: !binary |-
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
- - !binary |-
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
- - .wrongdoc.yml
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
- - !binary |-
259
- TEdQTHYyLjEr
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: !binary |-
282
- cmFpbmJvd3M=
283
- rubygems_version: 1.8.23
221
+ rubyforge_project:
222
+ rubygems_version: 2.4.8
284
223
  signing_key:
285
- specification_version: 3
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