java_bin 0.4.1 → 0.4.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/.gitignore ADDED
@@ -0,0 +1,33 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+
21
+ ## PROJECT::SPECIFIC
22
+ Makefile
23
+ Gemfile.lock
24
+ *.o
25
+ *.so
26
+ *.log
27
+ *.orig
28
+ *.def
29
+ *.exp
30
+ *.lib
31
+ *.pdb
32
+ *.obj
33
+ *.s
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ 0.4.2 (2012/10/11)
2
+ * Add valgrind support *Moreno Carullo*
3
+ * Clean gem dependencies *Moreno Carullo & Kenny J*
4
+ * Bye bye jeweler *Kenny J*
5
+
1
6
  0.4.1 (2012/09/3)
2
7
  * Adds travis ci support.
3
8
  * Adds bundler support.
data/Gemfile CHANGED
@@ -1,10 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'jeweler'
4
- gem 'rake-compiler'
5
- gem 'json'
6
-
7
- group :test do
8
- gem 'rsolr'
9
- gem 'mocha'
10
- end
3
+ gemspec
data/README.rdoc CHANGED
@@ -73,13 +73,27 @@ This is an Apache Solr JavaBin format (binary format) implementation for Ruby.
73
73
  solr = RSolr.connect
74
74
  solr.select :q => '*:*'
75
75
 
76
+ == Valgrind/Memory Leaks
77
+
78
+ * In this project we use Valgrind (http://www.valgrind.org) to ensure that the native extension is leak-free.
79
+ * On any Debian-based Linux you simply need to install the valgrind package:
80
+
81
+ apt-get install valgrind
82
+
83
+ * On homebrew-powered OSX, simply type:
84
+
85
+ brew install valgrind
86
+
87
+ * Then invoke the Rake task. If any errors are present, it will fail.
88
+
89
+ rake valgrind
90
+
76
91
  == TODO
77
92
 
78
93
  * more parse speed
79
94
  * license
80
95
  * shared string over parsing
81
96
  * builder(writer)
82
- * JRuby support
83
97
 
84
98
  == References
85
99
 
data/Rakefile CHANGED
@@ -1,29 +1,14 @@
1
- require 'rubygems'
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
2
4
  require 'rake'
3
5
  require 'rake/extensiontask'
4
6
 
5
7
  Rake::ExtensionTask.new do |ext|
6
- ext.name = 'parser' # indicate the name of the extension.
7
- ext.ext_dir = 'ext/java_bin/ext' # search for 'hello_world' inside it.
8
- ext.lib_dir = 'lib/java_bin/ext' # put binaries into this folder.
9
- ext.tmp_dir = 'tmp' # temporary folder used during compilation.
10
- end
11
-
12
- begin
13
- require 'jeweler'
14
- Jeweler::Tasks.new do |gem|
15
- gem.name = "java_bin"
16
- gem.summary = %Q{Apache Solr JavaBin format implementation for Ruby.}
17
- gem.description = %Q{Apache Solr JavaBin format (binary format) implementation for Ruby.}
18
- gem.email = "kennyj@gmail.com"
19
- gem.homepage = "http://github.com/kennyj/java_bin"
20
- gem.authors = ["kennyj"]
21
- gem.require_paths = ["lib", "ext"]
22
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
23
- end
24
- Jeweler::GemcutterTasks.new
25
- rescue LoadError
26
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
8
+ ext.name = 'parser'
9
+ ext.ext_dir = 'ext/java_bin/ext'
10
+ ext.lib_dir = 'lib/java_bin/ext'
11
+ ext.tmp_dir = 'tmp'
27
12
  end
28
13
 
29
14
  require 'rake/testtask'
@@ -50,12 +35,36 @@ task :test => :compile
50
35
 
51
36
  task :default => :test
52
37
 
53
- require 'rdoc/task'
38
+ task :valgrind => :compile do
39
+ #
40
+ # See:
41
+ # http://blog.flavorjon.es/2009/06/easily-valgrind-gdb-your-ruby-c.html
42
+ #
43
+ def valgrind_errors(what)
44
+ valgrind_cmd="valgrind --log-fd=1 --tool=memcheck --partial-loads-ok=yes --undef-value-errors=no ruby -Ilib:test:ext #{what}"
45
+ puts "Executing: #{valgrind_cmd}"
46
+ output=`#{valgrind_cmd}`
47
+ puts output
48
+ /ERROR SUMMARY: (\d+) ERRORS/i.match(output)[1].to_i
49
+ end
50
+
51
+ java_bin_errors = valgrind_errors('test/test_java_bin_parser.rb')
52
+
53
+ if java_bin_errors > 0
54
+ abort "Memory leaks are present, please check! (#{java_bin_errors} leaks!)"
55
+ end
56
+ end
57
+
58
+ begin
59
+ require 'rdoc/task'
60
+ rescue LoadError
61
+ require 'rake/rdoctask'
62
+ end
54
63
  Rake::RDocTask.new do |rdoc|
55
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
64
+ require 'java_bin/version'
56
65
 
57
66
  rdoc.rdoc_dir = 'rdoc'
58
- rdoc.title = "java_bin #{version}"
67
+ rdoc.title = "java_bin #{JavaBin::VERSION}"
59
68
  rdoc.rdoc_files.include('README*')
60
69
  rdoc.rdoc_files.include('lib/**/*.rb')
61
70
  end
data/how_to_release.txt CHANGED
@@ -1,20 +1,11 @@
1
- * rvm use 1.9.3
2
- * bundle update
3
- * rake
4
- * JavaBin=pure rake
5
- * rvm use 1.9.2
6
- * bundle update
7
- * rake
8
- * JavaBin=pure rake
9
- * rvm use ree
10
- * bundle update
11
- * rake
12
- * JavaBin=pure rake
13
- * vim CHANGELOG
14
- * vim README.rdoc
15
- * vim lib/java_bin/version.rb
16
- * rake version:bump:patch (major / minor)
17
- * rake gemspec
1
+ rvm use 1.9.3; bundle update; bundle exec rake clean test; JavaBin=pure bundle exec rake test;
2
+ rvm use 1.9.2; bundle update; bundle exec rake clean test; JavaBin=pure bundle exec rake test;
3
+ rvm use ree; bundle update; bundle exec rake clean test; JavaBin=pure bundle exec rake test;
4
+
5
+ vim CHANGELOG
6
+ vim README.rdoc
7
+ vim lib/java_bin/version.rb
8
+
18
9
  * git commit -a -m "release x.x.x"
19
10
  * git tag vx.x.x
20
11
  * git push
data/java_bin.gemspec CHANGED
@@ -1,84 +1,29 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'java_bin/version'
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "java_bin"
8
- s.version = "0.4.1"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["kennyj"]
12
- s.date = "2012-09-03"
7
+ s.date = "2012-10-10"
8
+ s.name = "java_bin"
9
+ s.version = JavaBin::VERSION
10
+ s.authors = ["kennyj"]
11
+ s.email = ["kennyj@gmail.com"]
13
12
  s.description = "Apache Solr JavaBin format (binary format) implementation for Ruby."
14
- s.email = "kennyj@gmail.com"
13
+ s.summary = "Apache Solr JavaBin format implementation for Ruby."
14
+ s.homepage = "http://github.com/kennyj/java_bin"
15
+
16
+ s.files = `git ls-files`.split($/)
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+
15
19
  s.extensions = ["ext/java_bin/ext/extconf.rb"]
16
- s.extra_rdoc_files = [
17
- "LICENSE",
18
- "README.rdoc"
19
- ]
20
- s.files = [
21
- ".document",
22
- ".travis.yml",
23
- "CHANGELOG",
24
- "Gemfile",
25
- "Gemfile.lock",
26
- "LICENSE",
27
- "README.rdoc",
28
- "Rakefile",
29
- "VERSION",
30
- "ext/java_bin/ext/byteswap.h",
31
- "ext/java_bin/ext/extconf.rb",
32
- "ext/java_bin/ext/parser.c",
33
- "ext/java_bin/ext/parser.h",
34
- "fixtures/fixtures_for_solr3.1/javabin_all.dat",
35
- "fixtures/fixtures_for_solr3.1/javabin_software.dat",
36
- "fixtures/fixtures_for_solr3.1/json_all.dat",
37
- "fixtures/fixtures_for_solr3.1/json_software.dat",
38
- "fixtures/fixtures_for_solr3.1/ruby_all.dat",
39
- "fixtures/fixtures_for_solr3.1/ruby_software.dat",
40
- "fixtures/javabin.dat",
41
- "fixtures/javabin2.dat",
42
- "fixtures/json.dat",
43
- "fixtures/json2.dat",
44
- "fixtures/ruby.dat",
45
- "fixtures/ruby2.dat",
46
- "how_to_release.txt",
47
- "java_bin.gemspec",
48
- "lib/java_bin.rb",
49
- "lib/java_bin/ext.rb",
50
- "lib/java_bin/ext/.keep",
51
- "lib/java_bin/pure.rb",
52
- "lib/java_bin/pure/parser.rb",
53
- "lib/java_bin/version.rb",
54
- "lib/rsolr_support.rb",
55
- "lib/solr_ruby_support.rb",
56
- "test/helper.rb",
57
- "test/test_java_bin_parser.rb",
58
- "test/test_rsolr_support.rb",
59
- "test/xxx_performance.rb"
60
- ]
61
- s.homepage = "http://github.com/kennyj/java_bin"
20
+ s.extra_rdoc_files = [ "LICENSE", "README.rdoc" ]
62
21
  s.require_paths = ["lib", "ext"]
63
- s.rubygems_version = "1.8.24"
64
- s.summary = "Apache Solr JavaBin format implementation for Ruby."
65
-
66
- if s.respond_to? :specification_version then
67
- s.specification_version = 3
68
22
 
69
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
70
- s.add_runtime_dependency(%q<jeweler>, [">= 0"])
71
- s.add_runtime_dependency(%q<rake-compiler>, [">= 0"])
72
- s.add_runtime_dependency(%q<json>, [">= 0"])
73
- else
74
- s.add_dependency(%q<jeweler>, [">= 0"])
75
- s.add_dependency(%q<rake-compiler>, [">= 0"])
76
- s.add_dependency(%q<json>, [">= 0"])
77
- end
78
- else
79
- s.add_dependency(%q<jeweler>, [">= 0"])
80
- s.add_dependency(%q<rake-compiler>, [">= 0"])
81
- s.add_dependency(%q<json>, [">= 0"])
82
- end
23
+ s.rubygems_version = "1.8.24"
24
+ s.add_development_dependency(%q<rake-compiler>, [">= 0.8.1"])
25
+ s.add_development_dependency(%q<json>, [">= 1.7.5"])
26
+ s.add_development_dependency(%q<rsolr>, [">= 1.0.8"])
27
+ s.add_development_dependency(%q<mocha>, [">= 0.12.6"])
83
28
  end
84
29
 
@@ -1,7 +1,7 @@
1
1
  # vim:fileencoding=utf-8
2
2
  module JavaBin
3
3
  # JavaBin version
4
- VERSION = '0.4.1'
4
+ VERSION = '0.4.2'
5
5
  VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
6
6
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
7
7
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/lib/java_bin.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  # vim:fileencoding=utf-8
2
+ require 'java_bin/version'
3
+
2
4
  module JavaBin
3
5
  def self.parser=(value)
4
6
  @parser = value
@@ -7,13 +9,11 @@ module JavaBin
7
9
  @parser
8
10
  end
9
11
 
10
- require 'java_bin/version'
11
12
  begin
12
13
  require 'java_bin/ext'
13
14
  rescue LoadError => e
14
15
  require 'java_bin/pure'
15
16
  end
16
-
17
17
  end
18
18
 
19
19
  # monkey patching
data/test/helper.rb CHANGED
@@ -1,17 +1,20 @@
1
1
  # vim:fileencoding=utf-8
2
- require 'rubygems'
3
- require 'bundler'
4
- require 'test/unit'
5
-
6
- ENV['TZ']='JST-9'
7
- $LOAD_PATH.unshift(File.dirname(__FILE__))
8
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
9
4
 
10
- Bundler.require(:test)
11
-
12
- require 'java_bin'
5
+ require 'test/unit'
13
6
 
14
7
  class Test::Unit::TestCase
15
8
  READ_UTF8 = (RUBY_VERSION >= '1.9' ? 'rb:utf-8' : 'rb')
16
9
  READ_ASCII = (RUBY_VERSION >= '1.9' ? 'rb:ascii' : 'rb')
17
10
  end
11
+
12
+ require 'rsolr'
13
+ require 'mocha'
14
+
15
+ require 'bundler'
16
+ Bundler.require
17
+
18
+ ENV['TZ']='JST-9'
19
+
20
+
@@ -1,7 +1,6 @@
1
1
  # vim:fileencoding=utf-8
2
-
2
+ require File.dirname(__FILE__) + '/helper'
3
3
  require 'stringio'
4
- require 'helper'
5
4
  require 'time'
6
5
 
7
6
  case ENV['JavaBin']
@@ -27,4 +27,4 @@ class TestRSolrSupportTest < Test::Unit::TestCase
27
27
  "version" => "2.2",
28
28
  "rows" => "100"}}, rsolr.select(:q => 'whatever')['responseHeader'])
29
29
  end
30
- end
30
+ end
metadata CHANGED
@@ -1,82 +1,105 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: java_bin
3
- version: !ruby/object:Gem::Version
4
- version: 0.4.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 11
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 4
9
+ - 2
10
+ version: 0.4.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - kennyj
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-09-03 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: jeweler
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-10-10 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
31
21
  name: rake-compiler
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :runtime
39
22
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
41
24
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 61
29
+ segments:
30
+ - 0
31
+ - 8
32
+ - 1
33
+ version: 0.8.1
34
+ type: :development
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
47
37
  name: json
48
- requirement: !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
49
40
  none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
- type: :runtime
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 1
45
+ segments:
46
+ - 1
47
+ - 7
48
+ - 5
49
+ version: 1.7.5
50
+ type: :development
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: rsolr
55
54
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
57
56
  none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 7
61
+ segments:
62
+ - 1
63
+ - 0
64
+ - 8
65
+ version: 1.0.8
66
+ type: :development
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
69
+ name: mocha
70
+ prerelease: false
71
+ requirement: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ hash: 35
77
+ segments:
78
+ - 0
79
+ - 12
80
+ - 6
81
+ version: 0.12.6
82
+ type: :development
83
+ version_requirements: *id004
62
84
  description: Apache Solr JavaBin format (binary format) implementation for Ruby.
63
- email: kennyj@gmail.com
85
+ email:
86
+ - kennyj@gmail.com
64
87
  executables: []
65
- extensions:
88
+
89
+ extensions:
66
90
  - ext/java_bin/ext/extconf.rb
67
- extra_rdoc_files:
91
+ extra_rdoc_files:
68
92
  - LICENSE
69
93
  - README.rdoc
70
- files:
94
+ files:
71
95
  - .document
96
+ - .gitignore
72
97
  - .travis.yml
73
98
  - CHANGELOG
74
99
  - Gemfile
75
- - Gemfile.lock
76
100
  - LICENSE
77
101
  - README.rdoc
78
102
  - Rakefile
79
- - VERSION
80
103
  - ext/java_bin/ext/byteswap.h
81
104
  - ext/java_bin/ext/extconf.rb
82
105
  - ext/java_bin/ext/parser.c
@@ -109,27 +132,40 @@ files:
109
132
  - test/xxx_performance.rb
110
133
  homepage: http://github.com/kennyj/java_bin
111
134
  licenses: []
135
+
112
136
  post_install_message:
113
137
  rdoc_options: []
114
- require_paths:
138
+
139
+ require_paths:
115
140
  - lib
116
141
  - ext
117
- required_ruby_version: !ruby/object:Gem::Requirement
142
+ required_ruby_version: !ruby/object:Gem::Requirement
118
143
  none: false
119
- requirements:
120
- - - ! '>='
121
- - !ruby/object:Gem::Version
122
- version: '0'
123
- required_rubygems_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ hash: 3
148
+ segments:
149
+ - 0
150
+ version: "0"
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
124
152
  none: false
125
- requirements:
126
- - - ! '>='
127
- - !ruby/object:Gem::Version
128
- version: '0'
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ hash: 3
157
+ segments:
158
+ - 0
159
+ version: "0"
129
160
  requirements: []
161
+
130
162
  rubyforge_project:
131
163
  rubygems_version: 1.8.24
132
164
  signing_key:
133
165
  specification_version: 3
134
166
  summary: Apache Solr JavaBin format implementation for Ruby.
135
- test_files: []
167
+ test_files:
168
+ - test/helper.rb
169
+ - test/test_java_bin_parser.rb
170
+ - test/test_rsolr_support.rb
171
+ - test/xxx_performance.rb
data/Gemfile.lock DELETED
@@ -1,31 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- builder (3.0.0)
5
- git (1.2.5)
6
- jeweler (1.8.4)
7
- bundler (~> 1.0)
8
- git (>= 1.2.5)
9
- rake
10
- rdoc
11
- json (1.7.5)
12
- metaclass (0.0.1)
13
- mocha (0.12.3)
14
- metaclass (~> 0.0.1)
15
- rake (0.9.2.2)
16
- rake-compiler (0.8.1)
17
- rake
18
- rdoc (3.12)
19
- json (~> 1.4)
20
- rsolr (1.0.8)
21
- builder (>= 2.1.2)
22
-
23
- PLATFORMS
24
- ruby
25
-
26
- DEPENDENCIES
27
- jeweler
28
- json
29
- mocha
30
- rake-compiler
31
- rsolr
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.4.1