fnf 0.0.1 → 0.0.2
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.
- data/Gemfile +2 -0
- data/Makefile +213 -0
- data/README.markdown +49 -8
- data/Rakefile +7 -0
- data/ext/fifowriter/extconf.rb +2 -0
- data/ext/fifowriter/fifowriter.c +21 -0
- data/fnf.gemspec +6 -4
- data/fnf_test.rb +8 -1
- data/lib/fifowriter/fifowriter.bundle +0 -0
- data/lib/fnf.rb +6 -1
- data/lib/fnf/client.rb +4 -2
- data/lib/fnf/version.rb +1 -1
- data/lib/fnf/worker.rb +21 -6
- metadata +41 -12
data/Gemfile
CHANGED
data/Makefile
ADDED
@@ -0,0 +1,213 @@
|
|
1
|
+
|
2
|
+
SHELL = /bin/sh
|
3
|
+
|
4
|
+
#### Start of system configuration section. ####
|
5
|
+
|
6
|
+
srcdir = .
|
7
|
+
topdir = /home/capotej/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1
|
8
|
+
hdrdir = /home/capotej/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1
|
9
|
+
arch_hdrdir = /home/capotej/.rvm/rubies/ruby-1.9.2-p180/include/ruby-1.9.1/$(arch)
|
10
|
+
VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
|
11
|
+
prefix = $(DESTDIR)/home/capotej/.rvm/rubies/ruby-1.9.2-p180
|
12
|
+
rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
|
13
|
+
exec_prefix = $(prefix)
|
14
|
+
vendorhdrdir = $(rubyhdrdir)/vendor_ruby
|
15
|
+
sitehdrdir = $(rubyhdrdir)/site_ruby
|
16
|
+
rubyhdrdir = $(includedir)/$(RUBY_BASE_NAME)-$(ruby_version)
|
17
|
+
vendordir = $(rubylibprefix)/vendor_ruby
|
18
|
+
sitedir = $(rubylibprefix)/site_ruby
|
19
|
+
ridir = $(datarootdir)/$(RI_BASE_NAME)
|
20
|
+
mandir = $(datarootdir)/man
|
21
|
+
localedir = $(datarootdir)/locale
|
22
|
+
libdir = $(exec_prefix)/lib
|
23
|
+
psdir = $(docdir)
|
24
|
+
pdfdir = $(docdir)
|
25
|
+
dvidir = $(docdir)
|
26
|
+
htmldir = $(docdir)
|
27
|
+
infodir = $(datarootdir)/info
|
28
|
+
docdir = $(datarootdir)/doc/$(PACKAGE)
|
29
|
+
oldincludedir = $(DESTDIR)/usr/include
|
30
|
+
includedir = $(prefix)/include
|
31
|
+
localstatedir = $(prefix)/var
|
32
|
+
sharedstatedir = $(prefix)/com
|
33
|
+
sysconfdir = $(prefix)/etc
|
34
|
+
datadir = $(datarootdir)
|
35
|
+
datarootdir = $(prefix)/share
|
36
|
+
libexecdir = $(exec_prefix)/libexec
|
37
|
+
sbindir = $(exec_prefix)/sbin
|
38
|
+
bindir = $(exec_prefix)/bin
|
39
|
+
rubylibdir = $(rubylibprefix)/$(ruby_version)
|
40
|
+
archdir = $(rubylibdir)/$(arch)
|
41
|
+
sitelibdir = $(sitedir)/$(ruby_version)
|
42
|
+
sitearchdir = $(sitelibdir)/$(sitearch)
|
43
|
+
vendorlibdir = $(vendordir)/$(ruby_version)
|
44
|
+
vendorarchdir = $(vendorlibdir)/$(sitearch)
|
45
|
+
|
46
|
+
CC = gcc
|
47
|
+
CXX = g++
|
48
|
+
LIBRUBY = $(LIBRUBY_SO)
|
49
|
+
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
50
|
+
LIBRUBYARG_SHARED = -Wl,-R -Wl,$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)
|
51
|
+
LIBRUBYARG_STATIC = -Wl,-R -Wl,$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)-static
|
52
|
+
OUTFLAG = -o
|
53
|
+
COUTFLAG = -o
|
54
|
+
|
55
|
+
RUBY_EXTCONF_H =
|
56
|
+
cflags = $(optflags) $(debugflags) $(warnflags)
|
57
|
+
optflags = -O3
|
58
|
+
debugflags = -ggdb
|
59
|
+
warnflags = -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long
|
60
|
+
CFLAGS = -fPIC $(cflags) -fPIC
|
61
|
+
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
|
62
|
+
DEFS = -D_FILE_OFFSET_BITS=64
|
63
|
+
CPPFLAGS = $(DEFS) $(cppflags)
|
64
|
+
CXXFLAGS = $(CFLAGS) $(cxxflags)
|
65
|
+
ldflags = -L. -rdynamic -Wl,-export-dynamic
|
66
|
+
dldflags =
|
67
|
+
ARCH_FLAG =
|
68
|
+
DLDFLAGS = $(ldflags) $(dldflags)
|
69
|
+
LDSHARED = $(CC) -shared
|
70
|
+
LDSHAREDXX = $(CXX) -shared
|
71
|
+
AR = ar
|
72
|
+
EXEEXT =
|
73
|
+
|
74
|
+
RUBY_BASE_NAME = ruby
|
75
|
+
RUBY_INSTALL_NAME = ruby
|
76
|
+
RUBY_SO_NAME = ruby
|
77
|
+
arch = i686-linux
|
78
|
+
sitearch = $(arch)
|
79
|
+
ruby_version = 1.9.1
|
80
|
+
ruby = /home/capotej/.rvm/rubies/ruby-1.9.2-p180/bin/ruby
|
81
|
+
RUBY = $(ruby)
|
82
|
+
RM = rm -f
|
83
|
+
RM_RF = $(RUBY) -run -e rm -- -rf
|
84
|
+
RMDIRS = $(RUBY) -run -e rmdir -- -p
|
85
|
+
MAKEDIRS = /bin/mkdir -p
|
86
|
+
INSTALL = /usr/bin/install -c
|
87
|
+
INSTALL_PROG = $(INSTALL) -m 0755
|
88
|
+
INSTALL_DATA = $(INSTALL) -m 644
|
89
|
+
COPY = cp
|
90
|
+
|
91
|
+
#### End of system configuration section. ####
|
92
|
+
|
93
|
+
preload =
|
94
|
+
|
95
|
+
libpath = . $(libdir)
|
96
|
+
LIBPATH = -L. -L$(libdir) -Wl,-R$(libdir)
|
97
|
+
DEFFILE =
|
98
|
+
|
99
|
+
CLEANFILES = mkmf.log
|
100
|
+
DISTCLEANFILES =
|
101
|
+
DISTCLEANDIRS =
|
102
|
+
|
103
|
+
extout =
|
104
|
+
extout_prefix =
|
105
|
+
target_prefix =
|
106
|
+
LOCAL_LIBS =
|
107
|
+
LIBS = $(LIBRUBYARG_SHARED) -lpthread -lrt -ldl -lcrypt -lm -lc
|
108
|
+
SRCS = FifoWriter.c
|
109
|
+
OBJS = FifoWriter.o
|
110
|
+
TARGET = fifowriter
|
111
|
+
DLLIB = $(TARGET).so
|
112
|
+
EXTSTATIC =
|
113
|
+
STATIC_LIB =
|
114
|
+
|
115
|
+
BINDIR = $(bindir)
|
116
|
+
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
117
|
+
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
118
|
+
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
119
|
+
HDRDIR = $(rubyhdrdir)/ruby$(target_prefix)
|
120
|
+
ARCHHDRDIR = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)
|
121
|
+
|
122
|
+
TARGET_SO = $(DLLIB)
|
123
|
+
CLEANLIBS = $(TARGET).so
|
124
|
+
CLEANOBJS = *.o *.bak
|
125
|
+
|
126
|
+
all: $(DLLIB)
|
127
|
+
static: $(STATIC_LIB)
|
128
|
+
.PHONY: all install static install-so install-rb
|
129
|
+
.PHONY: clean clean-so clean-rb
|
130
|
+
|
131
|
+
clean-rb-default::
|
132
|
+
clean-rb::
|
133
|
+
clean-so::
|
134
|
+
clean: clean-so clean-rb-default clean-rb
|
135
|
+
@-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
|
136
|
+
|
137
|
+
distclean-rb-default::
|
138
|
+
distclean-rb::
|
139
|
+
distclean-so::
|
140
|
+
distclean: clean distclean-so distclean-rb-default distclean-rb
|
141
|
+
@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
|
142
|
+
@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
|
143
|
+
@-$(RMDIRS) $(DISTCLEANDIRS)
|
144
|
+
|
145
|
+
realclean: distclean
|
146
|
+
install: install-so install-rb
|
147
|
+
|
148
|
+
install-so: $(RUBYARCHDIR)
|
149
|
+
install-so: $(RUBYARCHDIR)/$(DLLIB)
|
150
|
+
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
|
151
|
+
@-$(MAKEDIRS) $(@D)
|
152
|
+
$(INSTALL_PROG) $(DLLIB) $(@D)
|
153
|
+
install-rb: pre-install-rb install-rb-default
|
154
|
+
install-rb-default: pre-install-rb-default
|
155
|
+
pre-install-rb: Makefile
|
156
|
+
pre-install-rb-default: Makefile
|
157
|
+
pre-install-rb-default: $(RUBYLIBDIR)/fnf
|
158
|
+
install-rb-default: $(RUBYLIBDIR)/fnf/connection.rb
|
159
|
+
$(RUBYLIBDIR)/fnf/connection.rb: $(srcdir)/lib/fnf/connection.rb
|
160
|
+
@-$(MAKEDIRS) $(@D)
|
161
|
+
$(INSTALL_DATA) $(srcdir)/lib/fnf/connection.rb $(@D)
|
162
|
+
install-rb-default: $(RUBYLIBDIR)/fnf/worker.rb
|
163
|
+
$(RUBYLIBDIR)/fnf/worker.rb: $(srcdir)/lib/fnf/worker.rb
|
164
|
+
@-$(MAKEDIRS) $(@D)
|
165
|
+
$(INSTALL_DATA) $(srcdir)/lib/fnf/worker.rb $(@D)
|
166
|
+
install-rb-default: $(RUBYLIBDIR)/fnf/client.rb
|
167
|
+
$(RUBYLIBDIR)/fnf/client.rb: $(srcdir)/lib/fnf/client.rb
|
168
|
+
@-$(MAKEDIRS) $(@D)
|
169
|
+
$(INSTALL_DATA) $(srcdir)/lib/fnf/client.rb $(@D)
|
170
|
+
install-rb-default: $(RUBYLIBDIR)/fnf/version.rb
|
171
|
+
$(RUBYLIBDIR)/fnf/version.rb: $(srcdir)/lib/fnf/version.rb
|
172
|
+
@-$(MAKEDIRS) $(@D)
|
173
|
+
$(INSTALL_DATA) $(srcdir)/lib/fnf/version.rb $(@D)
|
174
|
+
pre-install-rb-default: $(RUBYLIBDIR)
|
175
|
+
install-rb-default: $(RUBYLIBDIR)/fnf.rb
|
176
|
+
$(RUBYLIBDIR)/fnf.rb: $(srcdir)/lib/fnf.rb
|
177
|
+
@-$(MAKEDIRS) $(@D)
|
178
|
+
$(INSTALL_DATA) $(srcdir)/lib/fnf.rb $(@D)
|
179
|
+
$(RUBYARCHDIR):
|
180
|
+
$(MAKEDIRS) $@
|
181
|
+
$(RUBYLIBDIR)/fnf:
|
182
|
+
$(MAKEDIRS) $@
|
183
|
+
$(RUBYLIBDIR):
|
184
|
+
$(MAKEDIRS) $@
|
185
|
+
|
186
|
+
site-install: site-install-so site-install-rb
|
187
|
+
site-install-so: install-so
|
188
|
+
site-install-rb: install-rb
|
189
|
+
|
190
|
+
.SUFFIXES: .c .m .cc .cxx .cpp .C .o
|
191
|
+
|
192
|
+
.cc.o:
|
193
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
194
|
+
|
195
|
+
.cxx.o:
|
196
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
197
|
+
|
198
|
+
.cpp.o:
|
199
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
200
|
+
|
201
|
+
.C.o:
|
202
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
|
203
|
+
|
204
|
+
.c.o:
|
205
|
+
$(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
|
206
|
+
|
207
|
+
$(DLLIB): $(OBJS) Makefile
|
208
|
+
@-$(RM) $(@)
|
209
|
+
$(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
$(OBJS): $(hdrdir)/ruby.h $(hdrdir)/ruby/defines.h $(arch_hdrdir)/ruby/config.h
|
data/README.markdown
CHANGED
@@ -3,25 +3,66 @@
|
|
3
3
|
|
4
4
|
## Intro
|
5
5
|
|
6
|
-
Fire and Forget replaces the need to write resque tasks or delayed jobs to fire off web requests (usually notification webhooks or a anti-spam service, like defensio or akismet). A single worker reads and executes web requests from a
|
6
|
+
Fire and Forget replaces the need to write resque tasks or delayed jobs to fire off web requests (usually notification webhooks or a anti-spam service, like defensio or akismet). A single worker reads and executes web requests from a named pipe, while clients write to that pipe. It uses typhoeus internally to execute the web requests for maximum speed.
|
7
7
|
|
8
8
|
## Usage (worker)
|
9
9
|
|
10
10
|
Start the server
|
11
11
|
|
12
|
-
```
|
12
|
+
```
|
13
|
+
fnf
|
14
|
+
```
|
13
15
|
|
14
|
-
(add this to rc.local, or a startup script)
|
15
16
|
|
16
|
-
## Usage (client
|
17
|
+
## Usage (client)
|
17
18
|
|
18
|
-
Add to gemfile,
|
19
|
+
Add to gemfile, vendor the gem, gem install, etc
|
19
20
|
|
20
|
-
```gem 'fnf'```
|
21
|
+
```gem 'fnf'``` or ```gem install fnf```
|
21
22
|
|
22
|
-
From
|
23
|
+
From anywhere:
|
23
24
|
|
24
|
-
```
|
25
|
+
```
|
26
|
+
require 'fnf'
|
27
|
+
Fnf::Client.queue({:post => "http://api.akismet.com/process", :params => { :thing => "2123" })
|
28
|
+
```
|
29
|
+
|
30
|
+
|
31
|
+
## Kicking the tires
|
32
|
+
|
33
|
+
Start a rails project
|
34
|
+
|
35
|
+
```
|
36
|
+
rails new foo
|
37
|
+
```
|
38
|
+
|
39
|
+
Start the server
|
40
|
+
|
41
|
+
```
|
42
|
+
cd foo
|
43
|
+
rails server
|
44
|
+
```
|
45
|
+
|
46
|
+
Clone this project
|
47
|
+
|
48
|
+
```
|
49
|
+
git clone git@github.com:capotej/fnf.git
|
50
|
+
cd fnf
|
51
|
+
```
|
52
|
+
|
53
|
+
Start the fnf server
|
54
|
+
|
55
|
+
```
|
56
|
+
bin/fnf
|
57
|
+
```
|
58
|
+
|
59
|
+
Run the test
|
60
|
+
|
61
|
+
```
|
62
|
+
ruby fnf_test.rb
|
63
|
+
```
|
64
|
+
|
65
|
+
You should see a request for /asdd hit your rails logs
|
25
66
|
|
26
67
|
|
27
68
|

|
data/Rakefile
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
#include "ruby.h"
|
2
|
+
#include <stdio.h>
|
3
|
+
#include <stdlib.h>
|
4
|
+
#include <fcntl.h>
|
5
|
+
VALUE FifoWriter = Qnil;
|
6
|
+
|
7
|
+
void Init_fifowriter();
|
8
|
+
|
9
|
+
static void method_write_to_fifo(VALUE self, VALUE string);
|
10
|
+
|
11
|
+
void Init_fifowriter() {
|
12
|
+
FifoWriter = rb_define_module("FifoWriter");
|
13
|
+
rb_define_singleton_method(FifoWriter, "write_to_fifo", method_write_to_fifo, 1);
|
14
|
+
}
|
15
|
+
|
16
|
+
static void method_write_to_fifo(VALUE self, VALUE string) {
|
17
|
+
int fd;
|
18
|
+
fd = open("/tmp/fnfq", O_WRONLY | O_NONBLOCK);
|
19
|
+
write(fd, RSTRING_PTR(string), strlen(RSTRING_PTR(string)));
|
20
|
+
close(fd);
|
21
|
+
}
|
data/fnf.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
$:.push File.expand_path("../lib", __FILE__)
|
3
2
|
require "fnf/version"
|
4
3
|
|
@@ -14,11 +13,14 @@ Gem::Specification.new do |s|
|
|
14
13
|
|
15
14
|
s.rubyforge_project = "fnf"
|
16
15
|
|
17
|
-
s.add_dependency 'daemons'
|
18
16
|
s.add_dependency 'mkfifo'
|
19
17
|
s.add_dependency 'ruby-fifo'
|
20
|
-
s.add_dependency '
|
21
|
-
|
18
|
+
s.add_dependency 'eventmachine'
|
19
|
+
s.add_dependency 'msgpack'
|
20
|
+
s.platform = Gem::Platform::RUBY
|
21
|
+
|
22
|
+
s.extensions = Dir["ext/**/extconf.rb"]
|
23
|
+
|
22
24
|
s.files = `git ls-files`.split("\n")
|
23
25
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
24
26
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
data/fnf_test.rb
CHANGED
@@ -1,4 +1,11 @@
|
|
1
1
|
$: << "./lib"
|
2
2
|
require 'fnf'
|
3
3
|
|
4
|
-
|
4
|
+
start_dt = Time.now
|
5
|
+
100000.times do |i|
|
6
|
+
Fnf::Client.queue(:get => "http://127.0.0.1:1337/#{i}")
|
7
|
+
end
|
8
|
+
end_dt = Time.now
|
9
|
+
puts (end_dt.to_f - start_dt.to_f)
|
10
|
+
|
11
|
+
|
Binary file
|
data/lib/fnf.rb
CHANGED
@@ -1,7 +1,12 @@
|
|
1
|
-
require '
|
1
|
+
require 'rubygems'
|
2
2
|
require 'daemons'
|
3
3
|
require 'fifo'
|
4
4
|
require 'json'
|
5
|
+
require 'eventmachine'
|
6
|
+
require 'typhoeus'
|
7
|
+
require 'em-http-request'
|
8
|
+
require 'msgpack'
|
9
|
+
require 'fifowriter/fifowriter'
|
5
10
|
|
6
11
|
module Fnf
|
7
12
|
autoload :Connection, 'fnf/connection'
|
data/lib/fnf/client.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
module Fnf
|
2
|
+
|
2
3
|
class Client
|
4
|
+
|
3
5
|
attr_accessor :url, :verb, :params
|
4
6
|
|
5
7
|
def self.queue(hsh)
|
6
8
|
verb = get_verb(hsh)
|
7
9
|
url = hsh[verb]
|
8
10
|
params = hsh[:params]
|
9
|
-
|
10
|
-
pipe.puts [verb,url,params].to_json
|
11
|
+
FifoWriter.write_to_fifo "#{[verb,url,params].to_msgpack}\n"
|
11
12
|
end
|
12
13
|
|
14
|
+
|
13
15
|
def self.get_verb(hsh)
|
14
16
|
[:delete, :get, :post, :put, :head].each do |verb|
|
15
17
|
return verb if hsh[verb]
|
data/lib/fnf/version.rb
CHANGED
data/lib/fnf/worker.rb
CHANGED
@@ -1,13 +1,28 @@
|
|
1
1
|
module Fnf
|
2
|
-
class Worker
|
3
2
|
|
3
|
+
module RequestWorker
|
4
|
+
def initialize(pipe)
|
5
|
+
@pipe = pipe
|
6
|
+
end
|
7
|
+
|
8
|
+
def notify_readable
|
9
|
+
data = @pipe.readline.chomp
|
10
|
+
fetch = proc {
|
11
|
+
payload = MessagePack.unpack(data)
|
12
|
+
Connection.send(payload[0], payload[1], payload[2])
|
13
|
+
}
|
14
|
+
noop = proc { }
|
15
|
+
EM.defer fetch, noop
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class Worker
|
4
21
|
def self.run
|
5
22
|
pipe = Fifo.new('/tmp/fnfq')
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
Connection.send(payload[0], payload[1], payload[2])
|
10
|
-
rescue
|
23
|
+
EventMachine::run do
|
24
|
+
EventMachine::watch(pipe.to_io, RequestWorker, pipe) do |c|
|
25
|
+
c.notify_readable = true
|
11
26
|
end
|
12
27
|
end
|
13
28
|
end
|
metadata
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fnf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
6
11
|
platform: ruby
|
7
12
|
authors:
|
8
13
|
- Julio Capote
|
@@ -10,50 +15,62 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2011-05-
|
18
|
+
date: 2011-05-27 00:00:00 -07:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
21
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
22
|
+
name: mkfifo
|
18
23
|
prerelease: false
|
19
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
20
25
|
none: false
|
21
26
|
requirements:
|
22
27
|
- - ">="
|
23
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
24
32
|
version: "0"
|
25
33
|
type: :runtime
|
26
34
|
version_requirements: *id001
|
27
35
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
36
|
+
name: ruby-fifo
|
29
37
|
prerelease: false
|
30
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
31
39
|
none: false
|
32
40
|
requirements:
|
33
41
|
- - ">="
|
34
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
35
46
|
version: "0"
|
36
47
|
type: :runtime
|
37
48
|
version_requirements: *id002
|
38
49
|
- !ruby/object:Gem::Dependency
|
39
|
-
name:
|
50
|
+
name: eventmachine
|
40
51
|
prerelease: false
|
41
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
42
53
|
none: false
|
43
54
|
requirements:
|
44
55
|
- - ">="
|
45
56
|
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
46
60
|
version: "0"
|
47
61
|
type: :runtime
|
48
62
|
version_requirements: *id003
|
49
63
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
64
|
+
name: msgpack
|
51
65
|
prerelease: false
|
52
66
|
requirement: &id004 !ruby/object:Gem::Requirement
|
53
67
|
none: false
|
54
68
|
requirements:
|
55
69
|
- - ">="
|
56
70
|
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 0
|
57
74
|
version: "0"
|
58
75
|
type: :runtime
|
59
76
|
version_requirements: *id004
|
@@ -62,18 +79,22 @@ email:
|
|
62
79
|
- jcapote@gmail.com
|
63
80
|
executables:
|
64
81
|
- fnf
|
65
|
-
extensions:
|
66
|
-
|
82
|
+
extensions:
|
83
|
+
- ext/fifowriter/extconf.rb
|
67
84
|
extra_rdoc_files: []
|
68
85
|
|
69
86
|
files:
|
70
87
|
- .gitignore
|
71
88
|
- Gemfile
|
89
|
+
- Makefile
|
72
90
|
- README.markdown
|
73
91
|
- Rakefile
|
74
92
|
- bin/fnf
|
93
|
+
- ext/fifowriter/extconf.rb
|
94
|
+
- ext/fifowriter/fifowriter.c
|
75
95
|
- fnf.gemspec
|
76
96
|
- fnf_test.rb
|
97
|
+
- lib/fifowriter/fifowriter.bundle
|
77
98
|
- lib/fnf.rb
|
78
99
|
- lib/fnf/client.rb
|
79
100
|
- lib/fnf/connection.rb
|
@@ -96,19 +117,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
96
117
|
requirements:
|
97
118
|
- - ">="
|
98
119
|
- !ruby/object:Gem::Version
|
120
|
+
hash: 3
|
121
|
+
segments:
|
122
|
+
- 0
|
99
123
|
version: "0"
|
100
124
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
125
|
none: false
|
102
126
|
requirements:
|
103
127
|
- - ">="
|
104
128
|
- !ruby/object:Gem::Version
|
129
|
+
hash: 3
|
130
|
+
segments:
|
131
|
+
- 0
|
105
132
|
version: "0"
|
106
133
|
requirements: []
|
107
134
|
|
108
135
|
rubyforge_project: fnf
|
109
|
-
rubygems_version: 1.
|
136
|
+
rubygems_version: 1.3.7
|
110
137
|
signing_key:
|
111
138
|
specification_version: 3
|
112
139
|
summary: Fire And Forget, a queue designed for disposable web requests
|
113
|
-
test_files:
|
114
|
-
|
140
|
+
test_files:
|
141
|
+
- spec/client_spec.rb
|
142
|
+
- spec/spec.opts
|
143
|
+
- spec/spec_helper.rb
|