rroonga 12.1.0 → 14.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a85769bf192cecc677daaaddb349b4728bdeb7d240d1ecb4fc9660495c5fa2de
4
- data.tar.gz: 05375332c1e8f93a9e1fb1b584a9e92d8923af6848ffdef223702a17d32852a8
3
+ metadata.gz: a0e743a4f12cf79bf5b69af96c6cb7aec72900dcf48316494b9acc41281eb182
4
+ data.tar.gz: 18af75fdf1d051bd57a36642c526fc3bbce572695c09de55912a7998a6030b00
5
5
  SHA512:
6
- metadata.gz: 3ec5e421bb75cdf1c944fcf36f70778f59113da9a8c4c20df7318fd56e21a1f00856fe9a9f308cab584183c32cbf055758b3e6bd52d415771c3f0c28080588bf
7
- data.tar.gz: d7d630a97a5831323c70ececc208016d4a5a02b4ddd476e043038eca71e8b6d37410d01c7eac8d5eb71b0788d7fbcc915d76737dfa38c0f3db02f1cc92b9884f
6
+ metadata.gz: 91261fdf0a7a10bb90554cd3efb7758df845789c68a972a0dd7336fcc5f427f0f5470e5780d723541477e603c4b22fcaf5fb039bb50363f8f0b2682b9b977c3c
7
+ data.tar.gz: 7ad28c09541ad3b0b676445e6c31c8fcfe1cc417ecbd0e6dd068400aa887e0951b1a865242cc27b667639150cae1afb8f99d0865c6304ad0af21fd5b64c02db9
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # README
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/rroonga.svg)](http://badge.fury.io/rb/rroonga)
4
- [![Build Status](https://travis-ci.org/ranguba/rroonga.svg?branch=master)](https://travis-ci.org/ranguba/rroonga)
3
+ [![Gem Version](https://badge.fury.io/rb/rroonga.svg)](https://badge.fury.io/rb/rroonga)
5
4
 
6
5
  ## Name
7
6
 
@@ -19,7 +18,7 @@ functional features from Ruby with Rubyish form.
19
18
 
20
19
  See the following URL about Groonga.
21
20
 
22
- * [The Groonga official site](http://groonga.org/)
21
+ * [The Groonga official site](https://groonga.org/)
23
22
 
24
23
  ## Authors
25
24
 
@@ -48,13 +47,13 @@ contributed patches.)
48
47
 
49
48
  ## Documents
50
49
 
51
- * [Reference manual in English](http://ranguba.org/rroonga/en/)
52
- * [Reference manual in Japanese](http://ranguba.org/rroonga/ja/)
50
+ * [Reference manual in English](https://ranguba.org/rroonga/en/)
51
+ * [Reference manual in Japanese](https://ranguba.org/rroonga/ja/)
53
52
 
54
53
  ## Mailing list
55
54
 
56
- * English: [groonga-talk](http://lists.sourceforge.net/mailman/listinfo/groonga-talk)
57
- * Japanese: [groonga-dev](http://lists.sourceforge.jp/mailman/listinfo/groonga-dev)
55
+ * English: [groonga-talk](https://lists.sourceforge.net/mailman/listinfo/groonga-talk)
56
+ * Japanese: [groonga-dev](https://lists.sourceforge.jp/mailman/listinfo/groonga-dev)
58
57
 
59
58
  ## Thanks
60
59
 
data/Rakefile CHANGED
@@ -47,11 +47,7 @@ Packnga::ReleaseTask.new(spec) do |task|
47
47
  end
48
48
 
49
49
  file "Makefile" => ["extconf.rb", "ext/groonga/extconf.rb"] do
50
- extconf_args = []
51
- if ENV["TRAVIS"]
52
- extconf_args << "--enable-debug-build"
53
- end
54
- ruby("extconf.rb", *extconf_args)
50
+ ruby("extconf.rb")
55
51
  end
56
52
 
57
53
  desc "Configure"
@@ -99,3 +95,13 @@ namespace :version do
99
95
  end
100
96
 
101
97
  task :default => :test
98
+
99
+ release_task = Rake.application["release"]
100
+ # We use Trusted Publishing.
101
+ release_task.prerequisites.delete("build")
102
+ release_task.prerequisites.delete("release:rubygem_push")
103
+ release_task_comment = release_task.comment
104
+ if release_task_comment
105
+ release_task.clear_comments
106
+ release_task.comment = release_task_comment.gsub(/ and build.*$/, "")
107
+ end
data/doc/text/news.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # NEWS
2
2
 
3
+ ## 14.1.2: 2025-01-09 {#version-14-1-2}
4
+
5
+ ### Improvements
6
+
7
+ * Suppressed warnings from Ruby 3.4.
8
+
9
+ * Added support for
10
+ [rubygems-requirements-system](https://rubygems.org/gems/rubygems-requirements-system).
11
+
3
12
  ## 12.1.0: 2022-12-05 {#version-12-1-0}
4
13
 
5
14
  ### Fixes
data/doc/text/release.md CHANGED
@@ -74,18 +74,22 @@ Then, edit PO files:
74
74
 
75
75
  ## 3. Upload gem to RubyGems.org
76
76
 
77
- ### 3-1. For Linux
77
+ ### 3-1. Bump version if need
78
78
 
79
- $ rake release
79
+ Change `RB_GRN_MAJOR_VERSION`, `RB_GRN_MINOR_VERSION` and `RB_GRN_MICRO_VERSION`
80
+ to the same version of the latest Groonga.
81
+
82
+ $ $EDITOR ext/groonga/rb-grn.h
80
83
 
81
- ### 3-2. For Windows
84
+ ### 3-2. Release
82
85
 
83
- $ rake build:windows
84
- $ gem push pkg/rroonga-<the latest release version>-x86-mingw32.gem
85
- $ gem push pkg/rroonga-<the latest release version>-x64-mingw32.gem
86
+ $ rake release
86
87
 
87
88
  ### 3-3. Bump version
88
89
 
90
+ Increment `RB_GRN_MICRO_VERSION`.
91
+ If current `RB_GRN_MICRO_VERSION` is `9`, increment `RB_GRN_MINOR_VERSION` and reset `RB_GRN_MICRO_VERSION` to `0`.
92
+
89
93
  $ $EDITOR ext/groonga/rb-grn.h
90
94
 
91
95
  ## 4. Update ranguba.org
@@ -123,13 +127,17 @@ Second, commit and push the html directory:
123
127
  $ git commit
124
128
  $ git push
125
129
 
126
- ## 5. Announce in mailing lists
130
+ ## 5. Update BloGroonga (blog)
131
+
132
+ Please refer to [Groonga document](https://groonga.org//docs/contribution/development/release.html#blogroonga)
133
+ for how to update BloGroonga.
134
+
135
+ ## 6. Announce
127
136
 
128
- * groonga-talk (English)
129
- * e.g.: http://sourceforge.net/p/groonga/mailman/message/33144993/
130
- * groonga-dev (Japanese)
131
- * e.g.: http://sourceforge.jp/projects/groonga/lists/archive/dev/2014-December/003014.html
132
- * ruby-talk (English) (optional)
137
+ * [GitHub Discussions](https://github.com/ranguba/rroonga/discussions/categories/releases) (English/Japanese)
138
+ * [Twitter](https://twitter.com/groonga) (English/Japanese)
139
+ * [Facebook](https://ja-jp.facebook.com/groonga/) (English/Japanese)
140
+ * ruby-talk (English)
133
141
  * e.g.: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/428992
134
- * ruby-list (Japanese) (optional)
142
+ * ruby-list (Japanese)
135
143
  * e.g.: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/50025
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # Copyright (C) 2009-2021 Sutou Kouhei <kou@clear-code.com>
3
+ # Copyright (C) 2009-2025 Sutou Kouhei <kou@clear-code.com>
4
4
  #
5
5
  # This library is free software; you can redistribute it and/or
6
6
  # modify it under the terms of the GNU Lesser General Public
@@ -16,11 +16,13 @@
16
16
  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
17
 
18
18
  require "English"
19
- require "pathname"
20
- require "mkmf"
19
+ require "etc"
21
20
  require "fileutils"
22
- require "shellwords"
21
+ require "mkmf"
23
22
  require "open-uri"
23
+ require "pathname"
24
+ require "shellwords"
25
+ require "tmpdir"
24
26
  require "uri"
25
27
 
26
28
  require "native-package-installer"
@@ -60,7 +62,7 @@ def install_groonga_locally
60
62
  prepend_pkg_config_path_for_local_groonga
61
63
  end
62
64
 
63
- def download(url)
65
+ def download(url, output_path)
64
66
  message("downloading %s...", url)
65
67
  base_name = File.basename(url)
66
68
  if File.exist?(base_name)
@@ -79,19 +81,17 @@ def download(url)
79
81
  end
80
82
  end
81
83
  URI.open(url, "rb", *options) do |input|
82
- File.open(base_name, "wb") do |output|
83
- while (buffer = input.read(1024))
84
- output.print(buffer)
85
- end
84
+ File.open(output_path, "wb") do |output|
85
+ IO.copy_stream(input, output)
86
86
  end
87
87
  end
88
88
  message(" done\n")
89
89
  end
90
90
  end
91
91
 
92
- def run_command(start_message, command)
92
+ def run_command(start_message, command_line)
93
93
  message(start_message)
94
- if xsystem(command)
94
+ if xsystem(command_line)
95
95
  message(" done\n")
96
96
  else
97
97
  message(" failed\n")
@@ -99,111 +99,77 @@ def run_command(start_message, command)
99
99
  end
100
100
  end
101
101
 
102
- def configure_command_line(prefix)
103
- command_line = ["./configure"]
102
+ def cmake_command_line(source_dir, build_dir, install_dir)
103
+ command_line = ["cmake", "-S", source_dir, "-B", build_dir]
104
104
  debug_build_p = ENV["RROONGA_DEBUG_BUILD"] == "yes"
105
- command_line.concat("--enable-debug") if debug_build_p
106
- command_line << "--prefix=#{prefix}"
107
- command_line << "--disable-static"
108
- command_line << "--disable-document"
109
- command_line << "--disable-benchmark"
110
- command_line << "--disable-groonga-httpd"
111
- command_line << "--without-cutter"
112
- escaped_command_line = command_line.collect do |command|
113
- Shellwords.escape(command)
105
+ if debug_build_p
106
+ command_line << "-DCMAKE_BUILD_TYPE=Debug"
107
+ else
108
+ command_line << "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
114
109
  end
115
- custom_command_line_options = with_config("groonga-configure-options")
110
+ command_line << "-DCMAKE_INSTALL_PREFIX=#{install_dir}"
111
+ custom_command_line_options = with_config("groonga-cmake-options")
116
112
  if custom_command_line_options.is_a?(String)
117
- escaped_command_line << custom_command_line_options
118
- end
119
- escaped_command_line.join(" ")
120
- end
121
-
122
- def guess_make
123
- env_make = ENV["MAKE"]
124
- return env_make if env_make
125
-
126
- candidates = ["gmake", "make"]
127
- candidates.each do |candidate|
128
- (ENV["PATH"] || "").split(File::PATH_SEPARATOR).each do |path|
129
- return candidate if File.executable?(File.join(path, candidate))
130
- end
113
+ command_line.concat(Shellwords.split(custom_command_line_options))
131
114
  end
132
-
133
- "make"
115
+ command_line
134
116
  end
135
117
 
136
- def n_processors
137
- proc_file = "/proc/cpuinfo"
138
- if File.exist?(proc_file)
139
- File.readlines(proc_file).grep(/^processor/).size
140
- elsif /darwin/ =~ RUBY_PLATFORM
141
- `sysctl -n hw.ncpu`.to_i
142
- else
143
- 1
144
- end
145
- end
146
-
147
- def install_for_gnu_build_system(install_dir)
148
- make = guess_make
118
+ def install_with_cmake(source_dir, build_dir, install_dir)
149
119
  run_command("configuring...",
150
- configure_command_line(install_dir))
120
+ cmake_command_line(source_dir, build_dir, install_dir))
151
121
  run_command("building (maybe long time)...",
152
- "#{make} -j#{n_processors}")
122
+ [{"CMAKE_BUILD_PARALLEL_LEVEL" => Etc.nprocessors.to_s},
123
+ "cmake", "--build", build_dir])
153
124
  run_command("installing...",
154
- "#{make} install")
125
+ ["cmake", "--install", build_dir])
155
126
  end
156
127
 
157
128
  def build_groonga_from_git
158
- message("removing old cloned repository...")
159
- FileUtils.rm_rf("groonga")
160
- message(" done\n")
161
-
162
- repository_url = "https://github.com/groonga/groonga.git"
163
- run_command("cloning...",
164
- "git clone --recursive --depth 1 #{repository_url}")
165
-
166
- Dir.chdir("groonga") do
167
- run_command("running autogen.sh...",
168
- "./autogen.sh")
169
- install_for_gnu_build_system(local_groonga_install_dir)
129
+ Dir.mktmpdir do |source_base_dir|
130
+ source_dir = File.join(source_base_dir, "groonga")
131
+ repository_url = "https://github.com/groonga/groonga.git"
132
+ run_command("cloning...",
133
+ [
134
+ "git",
135
+ "clone",
136
+ "--recursive",
137
+ "--depth=1",
138
+ repository_url,
139
+ source_dir,
140
+ ])
141
+
142
+ Dir.mktmpdir do |build_dir|
143
+ install_with_cmake(source_dir, build_dir, local_groonga_install_dir)
144
+ end
170
145
  end
171
-
172
- message("removing cloned repository...")
173
- FileUtils.rm_rf("groonga")
174
- message(" done\n")
175
146
  end
176
147
 
177
148
  def build_groonga_from_tar_gz
178
149
  tar_gz = "groonga-latest.tar.gz"
179
150
  url = "https://packages.groonga.org/source/groonga/#{tar_gz}"
180
- groonga_source_dir = "groonga-latest"
181
-
182
- download(url)
183
-
184
- FileUtils.rm_rf(groonga_source_dir)
185
- FileUtils.mkdir_p(groonga_source_dir)
186
-
187
- message("extracting...")
188
- # TODO: Use Zlip::GzipReader and Gem::Package::TarReader
189
- if xsystem("tar xfz #{tar_gz} -C #{groonga_source_dir} --strip-components=1")
190
- message(" done\n")
191
- else
192
- message(" failed\n")
193
- exit(false)
194
- end
151
+ Dir.mktmpdir do |source_base_dir|
152
+ source_tar_gz = File.join(source_base_dir, "groonga")
153
+ source_dir = File.join(source_base_dir, "groonga-latest")
154
+ download(url, source_tar_gz)
155
+
156
+ FileUtils.mkdir_p(source_dir)
157
+ message("extracting...")
158
+ # TODO: Use Zlip::GzipReader and Gem::Package::TarReader
159
+ if xsystem(["tar",
160
+ "-xf", source_tar_gz,
161
+ "-C", source_dir,
162
+ "--strip-components=1"])
163
+ message(" done\n")
164
+ else
165
+ message(" failed\n")
166
+ exit(false)
167
+ end
195
168
 
196
- Dir.chdir(groonga_source_dir) do
197
- install_for_gnu_build_system(local_groonga_install_dir)
169
+ Dir.mktmpdir do |build_dir|
170
+ install_with_cmake(source_dir, build_dir, local_groonga_install_dir)
171
+ end
198
172
  end
199
-
200
- message("removing source...")
201
- FileUtils.rm_rf(groonga_source_dir)
202
- message(" done\n")
203
-
204
- message("removing source archive...")
205
- FileUtils.rm_rf(tar_gz)
206
- message(" done\n")
207
173
  end
208
174
 
209
175
  def build_groonga
@@ -1,6 +1,6 @@
1
1
  /* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
2
  /*
3
- Copyright (C) 2009-2016 Kouhei Sutou <kou@clear-code.com>
3
+ Copyright (C) 2009-2025 Sutou Kouhei <kou@clear-code.com>
4
4
  Copyright (C) 2014-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
5
5
 
6
6
  This library is free software; you can redistribute it and/or
@@ -104,6 +104,7 @@ static VALUE eGrnCancel;
104
104
  static VALUE eGrnWindowFunctionError;
105
105
  static VALUE eGrnZstdError;
106
106
  static VALUE eGrnConnectionReset;
107
+ static VALUE eGrnBloscError;
107
108
 
108
109
  VALUE
109
110
  rb_grn_rc_to_exception (grn_rc rc)
@@ -357,6 +358,11 @@ rb_grn_rc_to_exception (grn_rc rc)
357
358
  case GRN_CONNECTION_RESET:
358
359
  exception = eGrnConnectionReset;
359
360
  break;
361
+ #if GRN_VERSION_OR_LATER(13, 0, 8)
362
+ case GRN_BLOSC_ERROR:
363
+ exception = eGrnBloscError;
364
+ break;
365
+ #endif
360
366
  }
361
367
 
362
368
  if (NIL_P(exception))
@@ -1086,4 +1092,16 @@ rb_grn_init_exception (VALUE mGrn)
1086
1092
  */
1087
1093
  eGrnConnectionReset =
1088
1094
  rb_define_class_under(mGrn, "ConnectionReset", rb_eGrnError);
1095
+
1096
+ #if GRN_VERSION_OR_LATER(13, 0, 8)
1097
+ /*
1098
+ * Document-class: Groonga::BloscError
1099
+ *
1100
+ * It is used when Blosc reports an error.
1101
+ *
1102
+ * @since 14.1.2
1103
+ */
1104
+ eGrnBloscError =
1105
+ rb_define_class_under(mGrn, "BloscError", rb_eGrnError);
1106
+ #endif
1089
1107
  }
data/ext/groonga/rb-grn.h CHANGED
@@ -1,6 +1,6 @@
1
1
  /* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
2
  /*
3
- Copyright (C) 2009-2021 Sutou Kouhei <kou@clear-code.com>
3
+ Copyright (C) 2009-2025 Sutou Kouhei <kou@clear-code.com>
4
4
  Copyright (C) 2015-2017 Masafumi Yokoyama <yokoyama@clear-code.com>
5
5
 
6
6
  This library is free software; you can redistribute it and/or
@@ -91,9 +91,9 @@ RB_GRN_BEGIN_DECLS
91
91
 
92
92
  #define RB_GRN_HAVE_FLOAT32 GRN_VERSION_OR_LATER(10, 0, 2)
93
93
 
94
- #define RB_GRN_MAJOR_VERSION 12
94
+ #define RB_GRN_MAJOR_VERSION 14
95
95
  #define RB_GRN_MINOR_VERSION 1
96
- #define RB_GRN_MICRO_VERSION 0
96
+ #define RB_GRN_MICRO_VERSION 2
97
97
 
98
98
  #define RB_GRN_OBJECT(object) ((RbGrnObject *)(object))
99
99
  #define RB_GRN_NAMED_OBJECT(object) ((RbGrnNamedObject *)(object))
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2010-2016 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2010-2025 Sutou Kouhei <kou@clear-code.com>
4
2
  #
5
3
  # This library is free software; you can redistribute it and/or
6
4
  # modify it under the terms of the GNU Lesser General Public
@@ -232,7 +230,7 @@ module Groonga
232
230
  # @yieldparam response [String] A response for a command.
233
231
  # @return [void]
234
232
  def restore(dumped_commands)
235
- buffer = ""
233
+ buffer = +""
236
234
  continued = false
237
235
  dumped_commands.each_line do |line|
238
236
  line = line.chomp
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2011-2016 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2011-2025 Sutou Kouhei <kou@clear-code.com>
4
2
  # Copyright (C) 2014 Masafumi Yokoyama <myokoym@gmail.com>
5
3
  #
6
4
  # This library is free software; you can redistribute it and/or
@@ -26,7 +24,7 @@ module Groonga
26
24
  end
27
25
 
28
26
  def utf8_string
29
- ""
27
+ +""
30
28
  end
31
29
  end
32
30
 
@@ -759,7 +757,7 @@ module Groonga
759
757
  ""
760
758
  else
761
759
  return value unless value.respond_to?(:valid_encoding?)
762
- sanitized_value = ""
760
+ sanitized_value = +""
763
761
  value = fix_encoding(value)
764
762
  value.each_char do |char|
765
763
  if char.valid_encoding?
@@ -1,6 +1,4 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2009-2010 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2009-2025 Sutou Kouhei <kou@clear-code.com>
4
2
  #
5
3
  # This library is free software; you can redistribute it and/or
6
4
  # modify it under the terms of the GNU Lesser General Public
@@ -55,7 +53,7 @@ module Groonga
55
53
  options ||= {}
56
54
  other_text_handler = options[:other_text_handler]
57
55
  position = 0
58
- result = ''
56
+ result = +""
59
57
  if text.respond_to?(:encoding)
60
58
  encoding = text.encoding
61
59
  bytes = text.dup.force_encoding("ascii-8bit")
data/rroonga.gemspec CHANGED
@@ -87,6 +87,7 @@ Gem::Specification.new do |s|
87
87
  s.add_runtime_dependency("json")
88
88
  s.add_runtime_dependency("native-package-installer")
89
89
  s.add_runtime_dependency("pkg-config")
90
+ s.add_runtime_dependency("rubygems-requirements-system")
90
91
  s.add_development_dependency("test-unit", [">= 3.0.0"])
91
92
  s.add_development_dependency("rake")
92
93
  s.add_development_dependency("bundler")
@@ -96,5 +97,43 @@ Gem::Specification.new do |s|
96
97
 
97
98
  required_groonga_version = RroongaBuild::RequiredGroongaVersion::STRING
98
99
  s.metadata["msys2_mingw_dependencies"] = "groonga>=#{required_groonga_version}"
100
+
101
+ package = "groonga>=#{required_groonga_version}"
102
+ [
103
+ [
104
+ "debian",
105
+ "https://apache.jfrog.io/artifactory/arrow/%{distribution}/apache-arrow-apt-source-latest-%{code_name}.deb",
106
+ ],
107
+ [
108
+ "debian",
109
+ "https://packages.groonga.org/%{distribution}/groonga-apt-source-latest-%{code_name}.deb",
110
+ ],
111
+ [
112
+ "ubuntu",
113
+ "ppa:groonga/ppa",
114
+ ],
115
+ [
116
+ "debian",
117
+ "libgroonga-dev",
118
+ ],
119
+ [
120
+ "rhel",
121
+ "https://apache.jfrog.io/artifactory/arrow/almalinux/%{major_version}/apache-arrow-release-latest.rpm",
122
+ ],
123
+ [
124
+ "rhel",
125
+ "https://packages.groonga.org/almalinux/%{major_version}/groonga-release-latest.noarch.rpm",
126
+ ],
127
+ [
128
+ "rhel",
129
+ "pkgconfig(groonga)",
130
+ ],
131
+ [
132
+ "homebrew",
133
+ "groonga",
134
+ ],
135
+ ].each do |platform, system_package|
136
+ s.requirements << "system: #{package}: #{platform}: #{system_package}"
137
+ end
99
138
  end
100
139
 
data/test/run-test.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # Copyright (C) 2009-2016 Kouhei Sutou <kou@clear-code.com>
3
+ # Copyright (C) 2009-2025 Sutou Kouhei <kou@clear-code.com>
4
4
  #
5
5
  # This library is free software; you can redistribute it and/or
6
6
  # modify it under the terms of the GNU Lesser General Public
@@ -18,20 +18,21 @@
18
18
  $VERBOSE = true
19
19
 
20
20
  base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
21
- ext_dir = File.join(base_dir, "ext", "groonga")
21
+ build_dir = Dir.pwd
22
+ ext_dir = File.join(build_dir, "ext", "groonga")
22
23
  lib_dir = File.join(base_dir, "lib")
23
24
  test_dir = File.join(base_dir, "test")
24
25
 
25
26
  make = nil
26
27
  if ENV["NO_MAKE"] != "yes"
27
- if system("which gmake > /dev/null")
28
+ if system("which", "gmake", out: IO::NULL)
28
29
  make = "gmake"
29
- elsif system("which make > /dev/null")
30
+ elsif system("which", "make", out: IO::NULL)
30
31
  make = "make"
31
32
  end
32
33
  end
33
34
  if make
34
- system("cd #{base_dir.dump} && #{make} > /dev/null") or exit(false)
35
+ system(make, "-C", build_dir, out: IO::NULL) or exit(false)
35
36
  end
36
37
 
37
38
  require "test-unit"
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2013 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2013-2025 Sutou Kouhei <kou@clear-code.com>
2
2
  #
3
3
  # This library is free software; you can redistribute it and/or
4
4
  # modify it under the terms of the GNU Lesser General Public
@@ -131,7 +131,7 @@ class DatabaseInspectorTest < Test::Unit::TestCase
131
131
  None
132
132
  INSPECTED
133
133
  else
134
- inspected = " Columns:\n"
134
+ inspected = +" Columns:\n"
135
135
  columns.each do |column|
136
136
  inspected << inspect_column(column)
137
137
  end
@@ -270,7 +270,7 @@ Database
270
270
 
271
271
  private
272
272
  def inspected(n_tables)
273
- inspected_tables = " Tables:\n"
273
+ inspected_tables = +" Tables:\n"
274
274
  if @database.tables.empty?
275
275
  inspected_tables << " None\n"
276
276
  else
@@ -475,6 +475,7 @@ class PatriciaTrieTest < Test::Unit::TestCase
475
475
  end
476
476
 
477
477
  def test_defrag
478
+ need_groonga(14, 1, 3) # We'll fix this in 14.1.3.
478
479
  users = Groonga::PatriciaTrie.create(:name => "Users",
479
480
  :key_type => "ShortText")
480
481
  users.define_column("name", "ShortText")
data/test/test-remote.rb CHANGED
@@ -98,11 +98,15 @@ class RemoteTest < Test::Unit::TestCase
98
98
  "alloc_count",
99
99
  "cache_hit_rate",
100
100
  "command_version",
101
+ "cpu",
101
102
  "default_command_version",
103
+ "default_n_workers",
102
104
  "max_command_version",
103
105
  "memory_map_size",
104
106
  "n_jobs",
105
107
  "n_queries",
108
+ "n_workers",
109
+ "os",
106
110
  "start_time",
107
111
  "starttime",
108
112
  "uptime",
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2009-2016 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2009-2025 Sutou Kouhei <kou@clear-code.com>
2
2
  # Copyright (C) 2014-2016 Masafumi Yokoyama <yokoyama@clear-code.com>
3
3
  #
4
4
  # This library is free software; you can redistribute it and/or
@@ -427,7 +427,7 @@ column_create Accounts name COLUMN_SCALAR ShortText
427
427
  class ColumnCompressionTest < self
428
428
  def test_zlib
429
429
  define_column_compression_zlib_schema
430
- flags = "COLUMN_SCALAR"
430
+ flags = +"COLUMN_SCALAR"
431
431
  flags << "|COMPRESS_ZLIB" if context.support_zlib?
432
432
  assert_equal(<<-SCHEMA, dump)
433
433
  table_create Posts TABLE_NO_KEY
@@ -437,7 +437,7 @@ column_create Posts title #{flags} ShortText
437
437
 
438
438
  def test_lz4
439
439
  define_column_compression_lz4_schema
440
- flags = "COLUMN_SCALAR"
440
+ flags = +"COLUMN_SCALAR"
441
441
  flags << "|COMPRESS_LZ4" if context.support_lz4?
442
442
  assert_equal(<<-SCHEMA, dump)
443
443
  table_create Posts TABLE_NO_KEY
@@ -447,7 +447,7 @@ column_create Posts title #{flags} ShortText
447
447
 
448
448
  def test_zstd
449
449
  define_column_compression_zstd_schema
450
- flags = "COLUMN_SCALAR"
450
+ flags = +"COLUMN_SCALAR"
451
451
  flags << "|COMPRESS_ZSTD" if context.support_zstd?
452
452
  assert_equal(<<-SCHEMA, dump)
453
453
  table_create Posts TABLE_NO_KEY
@@ -457,7 +457,7 @@ column_create Posts title #{flags} ShortText
457
457
 
458
458
  def test_with_weight_vector
459
459
  define_column_compression_with_weight_vector_schema
460
- flags = "COLUMN_VECTOR|WITH_WEIGHT"
460
+ flags = +"COLUMN_VECTOR|WITH_WEIGHT"
461
461
  flags << "|COMPRESS_ZLIB" if context.support_zlib?
462
462
  assert_equal(<<-SCHEMA, dump)
463
463
  table_create Posts TABLE_NO_KEY
data/test/test-schema.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2009-2020 Kouhei Sutou <kou@clear-code.com>
1
+ # Copyright (C) 2009-2025 Sutou Kouhei <kou@clear-code.com>
2
2
  # Copyright (C) 2014 Masafumi Yokoyama <myokoym@gmail.com>
3
3
  #
4
4
  # This library is free software; you can redistribute it and/or
@@ -144,8 +144,7 @@ class SchemaTest < Test::Unit::TestCase
144
144
  end
145
145
  posts = context["Posts"]
146
146
  assert_kind_of(Groonga::Hash, posts)
147
- Groonga::Schema.rename_table("Posts", "Entries") do |table|
148
- end
147
+ Groonga::Schema.rename_table("Posts", "Entries")
149
148
  entries = context["Entries"]
150
149
  assert_kind_of(Groonga::Hash, entries)
151
150
  assert_equal("Entries", posts.name)
@@ -206,8 +205,7 @@ class SchemaTest < Test::Unit::TestCase
206
205
  end
207
206
  posts = context["Posts"]
208
207
  assert_kind_of(Groonga::PatriciaTrie, posts)
209
- Groonga::Schema.rename_table("Posts", "Entries") do |table|
210
- end
208
+ Groonga::Schema.rename_table("Posts", "Entries")
211
209
  entries = context["Entries"]
212
210
  assert_kind_of(Groonga::PatriciaTrie, entries)
213
211
  assert_equal("Entries", posts.name)
@@ -268,8 +266,7 @@ class SchemaTest < Test::Unit::TestCase
268
266
  end
269
267
  posts = context["Posts"]
270
268
  assert_kind_of(Groonga::DoubleArrayTrie, posts)
271
- Groonga::Schema.rename_table("Posts", "Entries") do |table|
272
- end
269
+ Groonga::Schema.rename_table("Posts", "Entries")
273
270
  entries = context["Entries"]
274
271
  assert_kind_of(Groonga::DoubleArrayTrie, entries)
275
272
  assert_equal("Entries", posts.name)
@@ -320,8 +317,7 @@ class SchemaTest < Test::Unit::TestCase
320
317
  end
321
318
  posts = context["Posts"]
322
319
  assert_kind_of(Groonga::Array, posts)
323
- Groonga::Schema.rename_table("Posts", "Entries") do |table|
324
- end
320
+ Groonga::Schema.rename_table("Posts", "Entries")
325
321
  entries = context["Entries"]
326
322
  assert_kind_of(Groonga::Array, entries)
327
323
  assert_equal("Entries", posts.name)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rroonga
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.1.0
4
+ version: 14.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
@@ -9,10 +9,9 @@ authors:
9
9
  - daijiro
10
10
  - Yuto HAYAMIZU
11
11
  - SHIDARA Yoji
12
- autorequire:
13
12
  bindir: bin
14
13
  cert_chain: []
15
- date: 2022-12-06 00:00:00.000000000 Z
14
+ date: 2025-01-09 00:00:00.000000000 Z
16
15
  dependencies:
17
16
  - !ruby/object:Gem::Dependency
18
17
  name: groonga-client
@@ -70,6 +69,20 @@ dependencies:
70
69
  - - ">="
71
70
  - !ruby/object:Gem::Version
72
71
  version: '0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: rubygems-requirements-system
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
73
86
  - !ruby/object:Gem::Dependency
74
87
  name: test-unit
75
88
  requirement: !ruby/object:Gem::Requirement
@@ -371,7 +384,6 @@ licenses:
371
384
  - LGPL-2.1
372
385
  metadata:
373
386
  msys2_mingw_dependencies: groonga>=12.0.2
374
- post_install_message:
375
387
  rdoc_options: []
376
388
  require_paths:
377
389
  - lib
@@ -386,9 +398,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
386
398
  - - ">="
387
399
  - !ruby/object:Gem::Version
388
400
  version: '0'
389
- requirements: []
390
- rubygems_version: 3.3.24
391
- signing_key:
401
+ requirements:
402
+ - 'system: groonga>=12.0.2: debian: https://apache.jfrog.io/artifactory/arrow/%{distribution}/apache-arrow-apt-source-latest-%{code_name}.deb'
403
+ - 'system: groonga>=12.0.2: debian: https://packages.groonga.org/%{distribution}/groonga-apt-source-latest-%{code_name}.deb'
404
+ - 'system: groonga>=12.0.2: ubuntu: ppa:groonga/ppa'
405
+ - 'system: groonga>=12.0.2: debian: libgroonga-dev'
406
+ - 'system: groonga>=12.0.2: rhel: https://apache.jfrog.io/artifactory/arrow/almalinux/%{major_version}/apache-arrow-release-latest.rpm'
407
+ - 'system: groonga>=12.0.2: rhel: https://packages.groonga.org/almalinux/%{major_version}/groonga-release-latest.noarch.rpm'
408
+ - 'system: groonga>=12.0.2: rhel: pkgconfig(groonga)'
409
+ - 'system: groonga>=12.0.2: homebrew: groonga'
410
+ rubygems_version: 3.6.2
392
411
  specification_version: 4
393
412
  summary: Ruby bindings for Groonga that provide full text search and column store
394
413
  features.