java_bin 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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