fire_and_forget 0.2.0 → 0.3.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.
@@ -1,33 +0,0 @@
1
- JSON-JRuby
2
- ==========
3
-
4
- JSON-JRuby is a port of Florian Frank's native
5
- [`json` library](http://json.rubyforge.org/) to JRuby.
6
- It aims to be a perfect drop-in replacement for `json_pure`.
7
-
8
-
9
- Development version
10
- ===================
11
-
12
- The latest version is available from the
13
- [Git repository](http://github.com/mernen/json-jruby/tree):
14
-
15
- git clone git://github.com/mernen/json-jruby.git
16
-
17
-
18
- Compiling
19
- =========
20
-
21
- You'll need JRuby version 1.2 or greater to build JSON-JRuby.
22
- Its path must be set on the `jruby.dir` property of
23
- `nbproject/project.properties` (defaults to `../jruby`).
24
-
25
- Additionally, you'll need [Ant](http://ant.apache.org/), and
26
- [Ragel](http://www.cs.queensu.ca/~thurston/ragel/) 6.4 or greater.
27
-
28
- Then, from the folder where the sources are located, type:
29
-
30
- ant clean jar
31
-
32
- to clean any leftovers from previous builds and generate the `.jar` files.
33
- To generate a RubyGem, specify the `gem` action rather than `jar`.
@@ -1,397 +0,0 @@
1
- begin
2
- require 'rake/gempackagetask'
3
- rescue LoadError
4
- end
5
-
6
- begin
7
- require 'rake/extensiontask'
8
- rescue LoadError
9
- warn "WARNING: rake-compiler is not installed. You will not be able to build the json gem until you install it."
10
- end
11
-
12
- require 'rbconfig'
13
- include Config
14
-
15
- require 'rake/clean'
16
- CLOBBER.include Dir['benchmarks/data/*.{dat,log}']
17
- CLEAN.include FileList['diagrams/*.*'], 'doc', 'coverage', 'tmp',
18
- FileList["ext/**/{Makefile,mkmf.log}"], 'build', 'dist', FileList['**/*.rbc'],
19
- FileList["{ext,lib}/**/*.{so,bundle,#{CONFIG['DLEXT']},o,obj,pdb,lib,manifest,exp,def,jar,class}"],
20
- FileList['java/src/**/*.class']
21
-
22
- MAKE = ENV['MAKE'] || %w[gmake make].find { |c| system(c, '-v') }
23
- PKG_NAME = 'json'
24
- PKG_TITLE = 'JSON Implementation for Ruby'
25
- PKG_VERSION = File.read('VERSION').chomp
26
- PKG_FILES = FileList["**/*"].exclude(/CVS|pkg|tmp|coverage|Makefile|\.nfs\.|\.iml\Z/).exclude(/\.(so|bundle|o|class|#{CONFIG['DLEXT']})$/)
27
-
28
- EXT_ROOT_DIR = 'ext/json/ext'
29
- EXT_PARSER_DIR = "#{EXT_ROOT_DIR}/parser"
30
- EXT_PARSER_DL = "#{EXT_PARSER_DIR}/parser.#{CONFIG['DLEXT']}"
31
- RAGEL_PATH = "#{EXT_PARSER_DIR}/parser.rl"
32
- EXT_PARSER_SRC = "#{EXT_PARSER_DIR}/parser.c"
33
- PKG_FILES << EXT_PARSER_SRC
34
- EXT_GENERATOR_DIR = "#{EXT_ROOT_DIR}/generator"
35
- EXT_GENERATOR_DL = "#{EXT_GENERATOR_DIR}/generator.#{CONFIG['DLEXT']}"
36
- EXT_GENERATOR_SRC = "#{EXT_GENERATOR_DIR}/generator.c"
37
-
38
- JAVA_DIR = "java/src/json/ext"
39
- JAVA_RAGEL_PATH = "#{JAVA_DIR}/Parser.rl"
40
- JAVA_PARSER_SRC = "#{JAVA_DIR}/Parser.java"
41
- JAVA_SOURCES = FileList["#{JAVA_DIR}/*.java"]
42
- JAVA_CLASSES = []
43
- JRUBY_PARSER_JAR = File.expand_path("lib/json/ext/parser.jar")
44
- JRUBY_GENERATOR_JAR = File.expand_path("lib/json/ext/generator.jar")
45
-
46
- RAGEL_CODEGEN = %w[rlcodegen rlgen-cd ragel].find { |c| system(c, '-v') }
47
- RAGEL_DOTGEN = %w[rlgen-dot rlgen-cd ragel].find { |c| system(c, '-v') }
48
-
49
- def myruby(*args, &block)
50
- @myruby ||= File.join(CONFIG['bindir'], CONFIG['ruby_install_name'])
51
- options = (Hash === args.last) ? args.pop : {}
52
- if args.length > 1 then
53
- sh(*([@myruby] + args + [options]), &block)
54
- else
55
- sh("#{@myruby} #{args.first}", options, &block)
56
- end
57
- end
58
-
59
- desc "Installing library (pure)"
60
- task :install_pure => :version do
61
- myruby 'install.rb'
62
- end
63
-
64
- task :install_ext_really do
65
- sitearchdir = CONFIG["sitearchdir"]
66
- cd 'ext' do
67
- for file in Dir["json/ext/*.#{CONFIG['DLEXT']}"]
68
- d = File.join(sitearchdir, file)
69
- mkdir_p File.dirname(d)
70
- install(file, d)
71
- end
72
- end
73
- end
74
-
75
- desc "Installing library (extension)"
76
- task :install_ext => [ :compile_ext, :install_pure, :install_ext_really ]
77
-
78
- desc "Installing library (extension)"
79
- if RUBY_PLATFORM =~ /java/
80
- task :install => :install_pure
81
- else
82
- task :install => :install_ext
83
- end
84
-
85
- if defined?(Gem) and defined?(Rake::GemPackageTask)
86
- spec_pure = Gem::Specification.new do |s|
87
- s.name = 'json_pure'
88
- s.version = PKG_VERSION
89
- s.summary = PKG_TITLE
90
- s.description = "This is a JSON implementation in pure Ruby."
91
-
92
- s.files = PKG_FILES
93
-
94
- s.require_path = 'lib'
95
-
96
- s.bindir = "bin"
97
- s.executables = [ "edit_json.rb", "prettify_json.rb" ]
98
- s.default_executable = "edit_json.rb"
99
-
100
- s.has_rdoc = true
101
- s.extra_rdoc_files << 'README'
102
- s.rdoc_options <<
103
- '--title' << 'JSON implemention for ruby' << '--main' << 'README'
104
- s.test_files.concat Dir['./tests/test_*.rb']
105
-
106
- s.author = "Florian Frank"
107
- s.email = "flori@ping.de"
108
- s.homepage = "http://flori.github.com/#{PKG_NAME}"
109
- s.rubyforge_project = "json"
110
- end
111
-
112
- Rake::GemPackageTask.new(spec_pure) do |pkg|
113
- pkg.need_tar = true
114
- pkg.package_files = PKG_FILES
115
- end
116
- end
117
-
118
- if defined?(Gem) and defined?(Rake::GemPackageTask) and defined?(Rake::ExtensionTask)
119
- spec_ext = Gem::Specification.new do |s|
120
- s.name = 'json'
121
- s.version = PKG_VERSION
122
- s.summary = PKG_TITLE
123
- s.description = "This is a JSON implementation as a Ruby extension in C."
124
-
125
- s.files = PKG_FILES
126
-
127
- s.extensions = FileList['ext/**/extconf.rb']
128
-
129
- s.require_path = EXT_ROOT_DIR
130
- s.require_paths << 'ext'
131
- s.require_paths << 'lib'
132
-
133
- s.bindir = "bin"
134
- s.executables = [ "edit_json.rb", "prettify_json.rb" ]
135
- s.default_executable = "edit_json.rb"
136
-
137
- s.has_rdoc = true
138
- s.extra_rdoc_files << 'README'
139
- s.rdoc_options <<
140
- '--title' << 'JSON implemention for Ruby' << '--main' << 'README'
141
- s.test_files.concat Dir['./tests/test_*.rb']
142
-
143
- s.author = "Florian Frank"
144
- s.email = "flori@ping.de"
145
- s.homepage = "http://flori.github.com/#{PKG_NAME}"
146
- s.rubyforge_project = "json"
147
- end
148
-
149
- Rake::GemPackageTask.new(spec_ext) do |pkg|
150
- pkg.need_tar = true
151
- pkg.package_files = PKG_FILES
152
- end
153
-
154
- Rake::ExtensionTask.new do |ext|
155
- ext.name = 'parser'
156
- ext.gem_spec = spec_ext
157
- ext.cross_compile = true
158
- ext.cross_platform = %w[i386-mswin32 i386-mingw32]
159
- ext.ext_dir = 'ext/json/ext/parser'
160
- ext.lib_dir = 'lib/json/ext'
161
- end
162
-
163
- Rake::ExtensionTask.new do |ext|
164
- ext.name = 'generator'
165
- ext.gem_spec = spec_ext
166
- ext.cross_compile = true
167
- ext.cross_platform = %w[i386-mswin32 i386-mingw32]
168
- ext.ext_dir = 'ext/json/ext/generator'
169
- ext.lib_dir = 'lib/json/ext'
170
- end
171
- end
172
-
173
- desc m = "Writing version information for #{PKG_VERSION}"
174
- task :version do
175
- puts m
176
- File.open(File.join('lib', 'json', 'version.rb'), 'w') do |v|
177
- v.puts <<EOT
178
- module JSON
179
- # JSON version
180
- VERSION = '#{PKG_VERSION}'
181
- VERSION_ARRAY = VERSION.split(/\\./).map { |x| x.to_i } # :nodoc:
182
- VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
183
- VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
184
- VERSION_BUILD = VERSION_ARRAY[2] # :nodoc:
185
- end
186
- EOT
187
- end
188
- end
189
-
190
- desc "Testing library (pure ruby)"
191
- task :test_pure => :clean do
192
- ENV['JSON'] = 'pure'
193
- ENV['RUBYOPT'] = "-Ilib #{ENV['RUBYOPT']}"
194
- myruby '-S', 'testrb', *Dir['./tests/test_*.rb']
195
- end
196
-
197
- desc "Testing library (pure ruby and extension)"
198
- task :test => [ :test_pure, :test_ext ]
199
-
200
-
201
- if defined?(RUBY_ENGINE) and RUBY_ENGINE == 'jruby'
202
- file JAVA_PARSER_SRC => JAVA_RAGEL_PATH do
203
- cd JAVA_DIR do
204
- if RAGEL_CODEGEN == 'ragel'
205
- sh "ragel Parser.rl -J -o Parser.java"
206
- else
207
- sh "ragel -x Parser.rl | #{RAGEL_CODEGEN} -J"
208
- end
209
- end
210
- end
211
-
212
- desc "Generate parser for java with ragel"
213
- task :ragel => JAVA_PARSER_SRC
214
-
215
- desc "Delete the ragel generated Java source"
216
- task :ragel_clean do
217
- rm_rf JAVA_PARSER_SRC
218
- end
219
-
220
- JRUBY_JAR = File.join(Config::CONFIG["libdir"], "jruby.jar")
221
- if File.exist?(JRUBY_JAR)
222
- JAVA_SOURCES.each do |src|
223
- classpath = (Dir['java/lib/*.jar'] << 'java/src' << JRUBY_JAR) * ':'
224
- obj = src.sub(/\.java\Z/, '.class')
225
- file obj => src do
226
- sh 'javac', '-classpath', classpath, '-source', '1.5', src
227
- end
228
- JAVA_CLASSES << obj
229
- end
230
- else
231
- warn "WARNING: Cannot find jruby in path => Cannot build jruby extension!"
232
- end
233
-
234
- desc "Compiling jruby extension"
235
- task :compile_ext => JAVA_CLASSES
236
-
237
- desc "Package the jruby gem"
238
- task :jruby_gem => :create_jar do
239
- sh 'gem build json-java.gemspec'
240
- mkdir_p 'pkg'
241
- mv "json-#{PKG_VERSION}-java.gem", 'pkg'
242
- end
243
-
244
- desc "Testing library (jruby)"
245
- task :test_ext => :create_jar do
246
- ENV['JSON'] = 'ext'
247
- myruby '-S', 'testrb', '-Ilib', *Dir['./tests/test_*.rb']
248
- end
249
-
250
- file JRUBY_PARSER_JAR => :compile_ext do
251
- cd 'java/src' do
252
- parser_classes = FileList[
253
- "json/ext/ByteListTranscoder*.class",
254
- "json/ext/OptionsReader*.class",
255
- "json/ext/Parser*.class",
256
- "json/ext/RuntimeInfo*.class",
257
- "json/ext/StringDecoder*.class",
258
- "json/ext/Utils*.class"
259
- ]
260
- sh 'jar', 'cf', File.basename(JRUBY_PARSER_JAR), *parser_classes
261
- mv File.basename(JRUBY_PARSER_JAR), File.dirname(JRUBY_PARSER_JAR)
262
- end
263
- end
264
-
265
- desc "Create parser jar"
266
- task :create_parser_jar => JRUBY_PARSER_JAR
267
-
268
- file JRUBY_GENERATOR_JAR => :compile_ext do
269
- cd 'java/src' do
270
- generator_classes = FileList[
271
- "json/ext/ByteListTranscoder*.class",
272
- "json/ext/OptionsReader*.class",
273
- "json/ext/Generator*.class",
274
- "json/ext/RuntimeInfo*.class",
275
- "json/ext/StringEncoder*.class",
276
- "json/ext/Utils*.class"
277
- ]
278
- sh 'jar', 'cf', File.basename(JRUBY_GENERATOR_JAR), *generator_classes
279
- mv File.basename(JRUBY_GENERATOR_JAR), File.dirname(JRUBY_GENERATOR_JAR)
280
- end
281
- end
282
-
283
- desc "Create generator jar"
284
- task :create_generator_jar => JRUBY_GENERATOR_JAR
285
-
286
- desc "Create parser and generator jars"
287
- task :create_jar => [ :create_parser_jar, :create_generator_jar ]
288
-
289
- desc "Build all gems and archives for a new release of the jruby extension."
290
- task :release => [ :clean, :version, :jruby_gem ]
291
- else
292
- desc "Compiling extension"
293
- task :compile_ext => [ EXT_PARSER_DL, EXT_GENERATOR_DL ]
294
-
295
- file EXT_PARSER_DL => EXT_PARSER_SRC do
296
- cd EXT_PARSER_DIR do
297
- myruby 'extconf.rb'
298
- sh MAKE
299
- end
300
- cp "#{EXT_PARSER_DIR}/parser.#{CONFIG['DLEXT']}", EXT_ROOT_DIR
301
- end
302
-
303
- file EXT_GENERATOR_DL => EXT_GENERATOR_SRC do
304
- cd EXT_GENERATOR_DIR do
305
- myruby 'extconf.rb'
306
- sh MAKE
307
- end
308
- cp "#{EXT_GENERATOR_DIR}/generator.#{CONFIG['DLEXT']}", EXT_ROOT_DIR
309
- end
310
-
311
- desc "Testing library (extension)"
312
- task :test_ext => :compile_ext do
313
- ENV['JSON'] = 'ext'
314
- ENV['RUBYOPT'] = "-Iext:lib #{ENV['RUBYOPT']}"
315
- myruby '-S', 'testrb', *Dir['./tests/test_*.rb']
316
- end
317
-
318
- desc "Benchmarking parser"
319
- task :benchmark_parser do
320
- ENV['RUBYOPT'] = "-Ilib:ext #{ENV['RUBYOPT']}"
321
- myruby 'benchmarks/parser_benchmark.rb'
322
- myruby 'benchmarks/parser2_benchmark.rb'
323
- end
324
-
325
- desc "Benchmarking generator"
326
- task :benchmark_generator do
327
- ENV['RUBYOPT'] = "-Ilib:ext #{ENV['RUBYOPT']}"
328
- myruby 'benchmarks/generator_benchmark.rb'
329
- myruby 'benchmarks/generator2_benchmark.rb'
330
- end
331
-
332
- desc "Benchmarking library"
333
- task :benchmark => [ :benchmark_parser, :benchmark_generator ]
334
-
335
- desc "Create RDOC documentation"
336
- task :doc => [ :version, EXT_PARSER_SRC ] do
337
- sh "sdoc -o doc -t '#{PKG_TITLE}' -m README README lib/json.rb #{FileList['lib/json/**/*.rb']} #{EXT_PARSER_SRC} #{EXT_GENERATOR_SRC}"
338
- end
339
-
340
- desc "Generate parser with ragel"
341
- task :ragel => EXT_PARSER_SRC
342
-
343
- desc "Delete the ragel generated C source"
344
- task :ragel_clean do
345
- rm_rf EXT_PARSER_SRC
346
- end
347
-
348
- file EXT_PARSER_SRC => RAGEL_PATH do
349
- cd EXT_PARSER_DIR do
350
- if RAGEL_CODEGEN == 'ragel'
351
- sh "ragel parser.rl -G2 -o parser.c"
352
- else
353
- sh "ragel -x parser.rl | #{RAGEL_CODEGEN} -G2"
354
- end
355
- end
356
- end
357
-
358
- desc "Generate diagrams of ragel parser (ps)"
359
- task :ragel_dot_ps do
360
- root = 'diagrams'
361
- specs = []
362
- File.new(RAGEL_PATH).grep(/^\s*machine\s*(\S+);\s*$/) { specs << $1 }
363
- for s in specs
364
- if RAGEL_DOTGEN == 'ragel'
365
- sh "ragel #{RAGEL_PATH} -S#{s} -p -V | dot -Tps -o#{root}/#{s}.ps"
366
- else
367
- sh "ragel -x #{RAGEL_PATH} -S#{s} | #{RAGEL_DOTGEN} -p|dot -Tps -o#{root}/#{s}.ps"
368
- end
369
- end
370
- end
371
-
372
- desc "Generate diagrams of ragel parser (png)"
373
- task :ragel_dot_png do
374
- root = 'diagrams'
375
- specs = []
376
- File.new(RAGEL_PATH).grep(/^\s*machine\s*(\S+);\s*$/) { specs << $1 }
377
- for s in specs
378
- if RAGEL_DOTGEN == 'ragel'
379
- sh "ragel #{RAGEL_PATH} -S#{s} -p -V | dot -Tpng -o#{root}/#{s}.png"
380
- else
381
- sh "ragel -x #{RAGEL_PATH} -S#{s} | #{RAGEL_DOTGEN} -p|dot -Tpng -o#{root}/#{s}.png"
382
- end
383
- end
384
- end
385
-
386
- desc "Generate diagrams of ragel parser"
387
- task :ragel_dot => [ :ragel_dot_png, :ragel_dot_ps ]
388
-
389
- desc "Build all gems and archives for a new release of json and json_pure."
390
- task :release => [ :clean, :version, :cross, :native, :gem, ] do
391
- sh "#$0 clean native gem"
392
- sh "#$0 clean package"
393
- end
394
- end
395
-
396
- desc "Compile in the the source directory"
397
- task :default => [ :version ]
@@ -1 +0,0 @@
1
-
@@ -1 +0,0 @@
1
- 1.5.0
@@ -1,147 +0,0 @@
1
- # This file contains implementations of ruby core's custom objects for
2
- # serialisation/deserialisation.
3
-
4
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
5
- require 'json'
6
- end
7
- require 'date'
8
-
9
- class Symbol
10
- def to_json(*a)
11
- {
12
- JSON.create_id => self.class.name,
13
- 's' => to_s,
14
- }.to_json(*a)
15
- end
16
-
17
- def self.json_create(o)
18
- o['s'].to_sym
19
- end
20
- end
21
-
22
- class Time
23
- def self.json_create(object)
24
- if usec = object.delete('u') # used to be tv_usec -> tv_nsec
25
- object['n'] = usec * 1000
26
- end
27
- if respond_to?(:tv_nsec)
28
- at(*object.values_at('s', 'n'))
29
- else
30
- at(object['s'], object['n'] / 1000)
31
- end
32
- end
33
-
34
- def to_json(*args)
35
- {
36
- JSON.create_id => self.class.name,
37
- 's' => tv_sec,
38
- 'n' => respond_to?(:tv_nsec) ? tv_nsec : tv_usec * 1000
39
- }.to_json(*args)
40
- end
41
- end
42
-
43
- class Date
44
- def self.json_create(object)
45
- civil(*object.values_at('y', 'm', 'd', 'sg'))
46
- end
47
-
48
- alias start sg unless method_defined?(:start)
49
-
50
- def to_json(*args)
51
- {
52
- JSON.create_id => self.class.name,
53
- 'y' => year,
54
- 'm' => month,
55
- 'd' => day,
56
- 'sg' => start,
57
- }.to_json(*args)
58
- end
59
- end
60
-
61
- class DateTime
62
- def self.json_create(object)
63
- args = object.values_at('y', 'm', 'd', 'H', 'M', 'S')
64
- of_a, of_b = object['of'].split('/')
65
- if of_b and of_b != '0'
66
- args << Rational(of_a.to_i, of_b.to_i)
67
- else
68
- args << of_a
69
- end
70
- args << object['sg']
71
- civil(*args)
72
- end
73
-
74
- alias start sg unless method_defined?(:start)
75
-
76
- def to_json(*args)
77
- {
78
- JSON.create_id => self.class.name,
79
- 'y' => year,
80
- 'm' => month,
81
- 'd' => day,
82
- 'H' => hour,
83
- 'M' => min,
84
- 'S' => sec,
85
- 'of' => offset.to_s,
86
- 'sg' => start,
87
- }.to_json(*args)
88
- end
89
- end
90
-
91
- class Range
92
- def self.json_create(object)
93
- new(*object['a'])
94
- end
95
-
96
- def to_json(*args)
97
- {
98
- JSON.create_id => self.class.name,
99
- 'a' => [ first, last, exclude_end? ]
100
- }.to_json(*args)
101
- end
102
- end
103
-
104
- class Struct
105
- def self.json_create(object)
106
- new(*object['v'])
107
- end
108
-
109
- def to_json(*args)
110
- klass = self.class.name
111
- klass.to_s.empty? and raise JSON::JSONError, "Only named structs are supported!"
112
- {
113
- JSON.create_id => klass,
114
- 'v' => values,
115
- }.to_json(*args)
116
- end
117
- end
118
-
119
- class Exception
120
- def self.json_create(object)
121
- result = new(object['m'])
122
- result.set_backtrace object['b']
123
- result
124
- end
125
-
126
- def to_json(*args)
127
- {
128
- JSON.create_id => self.class.name,
129
- 'm' => message,
130
- 'b' => backtrace,
131
- }.to_json(*args)
132
- end
133
- end
134
-
135
- class Regexp
136
- def self.json_create(object)
137
- new(object['s'], object['o'])
138
- end
139
-
140
- def to_json(*)
141
- {
142
- JSON.create_id => self.class.name,
143
- 'o' => options,
144
- 's' => source,
145
- }.to_json
146
- end
147
- end
@@ -1,8 +0,0 @@
1
- # This file used to implementations of rails custom objects for
2
- # serialisation/deserialisation and is obsoleted now.
3
-
4
- unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED
5
- require 'json'
6
- end
7
-
8
- $DEBUG and warn "required json/add/rails which is obsolete now!"