enumerable-statistics 2.0.1 → 2.0.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e593e551f4f9b857a009db71093abab619e96680c4d15fc0eaa3a96c6e622bd4
4
- data.tar.gz: eb449c789843e7e3e2c435890b8a9281d49cb6cdaad4ebbfc979b959413f617f
3
+ metadata.gz: caf1b8203b177aef325480c7d7d5a4c0ddb7cecdad3d12944d4b2caa71eebe13
4
+ data.tar.gz: 00d91f25e099eb2577eb1f6078dafb5c884538fe3863eb1b6795de58c0c3b642
5
5
  SHA512:
6
- metadata.gz: 8866ba9d47c0715b82ffe7370b1fe8f683e1c1a17fd2dfee50db06c536cfa25b469bbf94a0f23c24ce2179c9d81203b761f8d17beadf113752b4f89490a48a2f
7
- data.tar.gz: 942e4dacc202cef906e631c38d9450045f9712ffed811b35f7f28fafeecc0e92f70196b0d8d8053423266d60210a1f556ed600d4c2c2b0ee5320aa97830cab47
6
+ metadata.gz: 2c9ab8a29752eb46cd00bf8f3f9787d6f151bc10e06d2179fa5f80e3ebb4625b96144a49fd907eb52c02e8f88767f9da1717761643d87e1489677a9eab227af9
7
+ data.tar.gz: de2d3d348ead4d6e99cffdb66f95a56ac7cfe603a4450db23deaddb6eeb82e454f79e84c236ea89142ea334999a82c6c307e16ac7085b1afe2895c63a6a8c5d4
@@ -0,0 +1,47 @@
1
+ name: CI
2
+
3
+ on:
4
+ - push
5
+
6
+ jobs:
7
+ cruby:
8
+ name: Test
9
+ runs-on: ${{ matrix.os }}
10
+
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ os:
15
+ - ubuntu-latest
16
+ - macos-latest
17
+ - windows-latest
18
+ ruby:
19
+ - 3.0
20
+ - 2.7
21
+ - 2.6
22
+ - 2.5
23
+ - 2.4
24
+ - debug
25
+ exclude:
26
+ - os: windows-latest
27
+ ruby: 3.0
28
+ - os: windows-latest
29
+ ruby: debug
30
+
31
+ steps:
32
+ - uses: actions/checkout@v2
33
+
34
+ - name: Setup Ruby
35
+ uses: ruby/setup-ruby@v1
36
+ with:
37
+ ruby-version: ${{ matrix.ruby }}
38
+
39
+ - run: gem install bundler
40
+ - run: bundle install
41
+
42
+ - run: rake --trace compile
43
+
44
+ - run: rake build
45
+ - run: gem install pkg/*gem
46
+
47
+ - run: rake
data/CHANGELOG.md CHANGED
@@ -1,3 +1,29 @@
1
+ # 2.0.7
2
+
3
+ - Fix the bug of histogram with bin range that is smaller than value range
4
+
5
+ # 2.0.6
6
+
7
+ - Add edges parameter in histogram
8
+ - Rename parameter in histogram to fix typo: `weight` to `weights`
9
+
10
+ # 2.0.5
11
+
12
+ - Add weighted histogram support
13
+
14
+ # 2.0.4
15
+
16
+ - Add `find_min`, `find_max`, `argmin`, `argmax` methods
17
+ - Fix `nbin=:auto` case in `histogram` method
18
+
19
+ # 2.0.3
20
+
21
+ - Ractor-safe version
22
+
23
+ # 2.0.2
24
+
25
+ - Support Ruby 3.0
26
+
1
27
  # 2.0.1
2
28
 
3
29
  - Fix a bug of `histogram` (#9)
data/Rakefile CHANGED
@@ -8,7 +8,14 @@ Rake::ExtensionTask.new('enumerable/statistics/extension')
8
8
 
9
9
  directory 'lib/enumerable/statistics'
10
10
 
11
+ desc "Run test"
12
+ task :test do
13
+ ruby("test/run-test.rb")
14
+ end
15
+ task :test => :compile
16
+
11
17
  RSpec::Core::RakeTask.new(:spec)
18
+ task :spec => :compile
12
19
 
13
20
  task :bench do
14
21
  puts "# sum\n"
@@ -20,3 +27,5 @@ task :bench do
20
27
  puts "# variance\n"
21
28
  system('benchmark-driver bench/variance.yml')
22
29
  end
30
+
31
+ task default: [:test, :spec]
@@ -27,10 +27,11 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.required_ruby_version = '>= 2.4'
29
29
 
30
- spec.add_development_dependency "bundler", ">= 1.17.2"
30
+ spec.add_development_dependency "bundler"
31
31
  spec.add_development_dependency "rake"
32
32
  spec.add_development_dependency "rake-compiler", ">= 0.9.8"
33
33
  spec.add_development_dependency "rspec", ">= 3.4"
34
+ spec.add_development_dependency "test-unit"
34
35
  spec.add_development_dependency "fuubar"
35
36
  spec.add_development_dependency "yard"
36
37
  spec.add_development_dependency "benchmark-driver"
@@ -0,0 +1,60 @@
1
+ #include <ruby/ruby.h>
2
+
3
+ static VALUE
4
+ ary_find_max(VALUE ary)
5
+ {
6
+ const long n = RARRAY_LEN(ary);
7
+ if (n == 0) {
8
+ return Qnil;
9
+ }
10
+
11
+ long imax = 0;
12
+ VALUE max = RARRAY_AREF(ary, imax);
13
+
14
+ long i;
15
+ for (i = 1; i < n; ++i) {
16
+ VALUE v = RARRAY_AREF(ary, i);
17
+ if (RTEST(rb_funcall(v, '>', 1, max))) {
18
+ imax = i;
19
+ max = v;
20
+ }
21
+ }
22
+
23
+ return rb_assoc_new(max, LONG2NUM(imax));
24
+ }
25
+
26
+ static VALUE
27
+ ary_find_min(VALUE ary)
28
+ {
29
+ const long n = RARRAY_LEN(ary);
30
+ if (n == 0) {
31
+ return Qnil;
32
+ }
33
+
34
+ long imin = 0;
35
+ VALUE min = RARRAY_AREF(ary, imin);
36
+
37
+ long i;
38
+ for (i = 1; i < n; ++i) {
39
+ VALUE v = RARRAY_AREF(ary, i);
40
+ if (RTEST(rb_funcall(v, '<', 1, min))) {
41
+ imin = i;
42
+ min = v;
43
+ }
44
+ }
45
+
46
+ return rb_assoc_new(min, LONG2NUM(imin));
47
+ }
48
+
49
+ void
50
+ Init_array_extension(void)
51
+ {
52
+ VALUE mEnumerableStatistics = rb_const_get_at(rb_cObject, rb_intern("EnumerableStatistics"));
53
+ VALUE mArrayExtension = rb_const_get_at(mEnumerableStatistics, rb_intern("ArrayExtension"));
54
+
55
+ rb_undef_method(mArrayExtension, "find_max");
56
+ rb_define_method(mArrayExtension, "find_max", ary_find_max, 0);
57
+
58
+ rb_undef_method(mArrayExtension, "find_min");
59
+ rb_define_method(mArrayExtension, "find_min", ary_find_min, 0);
60
+ }
@@ -44,7 +44,7 @@ struct RRational {
44
44
  #endif
45
45
 
46
46
  #ifndef RRATIONAL
47
- # define RRATIONAL(obj) (R_CAST(RRational)(obj))
47
+ # define RRATIONAL(obj) ((struct RRational *)(obj))
48
48
  #endif
49
49
 
50
50
  #ifndef RRATIONAL_SET_NUM
@@ -64,7 +64,7 @@ struct RComplex {
64
64
  #endif
65
65
 
66
66
  #ifndef RCOMPLEX
67
- # define RCOMPLEX(obj) (R_CAST(RComplex)(obj))
67
+ # define RCOMPLEX(obj) ((struct RComplex *)(obj))
68
68
  #endif
69
69
 
70
70
  #ifndef RCOMPLEX_SET_REAL
@@ -97,7 +97,7 @@ static ID idPow, idPLUS, idMINUS, idSTAR, idDIV, idGE;
97
97
  static ID id_eqeq_p, id_idiv, id_negate, id_to_f, id_cmp, id_nan_p;
98
98
  static ID id_each, id_real_p, id_sum, id_population, id_closed, id_edge;
99
99
 
100
- static VALUE sym_left, sym_right;
100
+ static VALUE sym_auto, sym_left, sym_right;
101
101
 
102
102
  static VALUE cHistogram;
103
103
 
@@ -2102,50 +2102,67 @@ histogram_edge_bin_index(VALUE edge, VALUE rb_x, int left_p)
2102
2102
  }
2103
2103
 
2104
2104
  static void
2105
- histogram_weights_push_values(VALUE weights, VALUE edge, VALUE values, int left_p)
2105
+ histogram_weights_push_values(VALUE bin_weights, VALUE edge, VALUE values, VALUE weight_array, int left_p)
2106
2106
  {
2107
+ const VALUE one = INT2FIX(1);
2108
+ long bi, i, n, n_bins, weighted = 0;
2107
2109
  VALUE x, cur;
2108
- long i, n, bi;
2110
+
2111
+ assert(RB_TYPE_P(edge, T_ARRAY));
2112
+ assert(RB_TYPE_P(values, T_ARRAY));
2109
2113
 
2110
2114
  n = RARRAY_LEN(values);
2115
+ n_bins = RARRAY_LEN(edge) - 1;
2116
+
2117
+ if (! NIL_P(weight_array)) {
2118
+ assert(RB_TYPE_P(weight_array, T_ARRAY));
2119
+ assert(RARRAY_LEN(weight_array) == n);
2120
+ weighted = 1;
2121
+ }
2122
+
2111
2123
  for (i = 0; i < n; ++i) {
2112
2124
  x = RARRAY_AREF(values, i);
2113
2125
 
2114
- bi = histogram_edge_bin_index(edge, x, left_p);
2115
-
2116
- cur = rb_ary_entry(weights, bi);
2117
- if (NIL_P(cur)) {
2118
- cur = INT2FIX(1);
2126
+ VALUE w;
2127
+ if (weighted) {
2128
+ w = RARRAY_AREF(weight_array, i);
2129
+ if (RB_TYPE_P(w, T_COMPLEX)) {
2130
+ VALUE imag = RCOMPLEX(w)->imag;
2131
+ if (! RTEST(f_zero_p(imag))) {
2132
+ goto type_error;
2133
+ }
2134
+ }
2135
+ else if (rb_obj_is_kind_of(w, rb_cNumeric)) {
2136
+ if (!RTEST(f_real_p(w))) {
2137
+ goto type_error;
2138
+ }
2139
+ }
2140
+ else {
2141
+ goto type_error;
2142
+ }
2119
2143
  }
2120
2144
  else {
2121
- cur = rb_funcall(cur, idPLUS, 1, INT2FIX(1));
2145
+ w = one;
2122
2146
  }
2123
2147
 
2124
- rb_ary_store(weights, bi, cur);
2125
- }
2126
- }
2148
+ bi = histogram_edge_bin_index(edge, x, left_p);
2127
2149
 
2128
- static int
2129
- opt_closed_left_p(VALUE opts)
2130
- {
2131
- int left_p = 1;
2150
+ if (0 <= bi && bi < n_bins) {
2151
+ cur = rb_ary_entry(bin_weights, bi);
2152
+ if (NIL_P(cur)) {
2153
+ cur = w;
2154
+ }
2155
+ else {
2156
+ cur = rb_funcall(cur, idPLUS, 1, w);
2157
+ }
2132
2158
 
2133
- if (!NIL_P(opts)) {
2134
- VALUE closed;
2135
- #ifdef HAVE_RB_GET_KWARGS
2136
- ID kwargs = id_closed;
2137
- rb_get_kwargs(opts, &kwargs, 0, 1, &closed);
2138
- #else
2139
- closed = rb_hash_lookup2(opts, ID2SYM(id_closed), sym_left);
2140
- #endif
2141
- left_p = (closed != sym_right);
2142
- if (left_p && closed != sym_left) {
2143
- rb_raise(rb_eArgError, "invalid value for :closed keyword "
2144
- "(%"PRIsVALUE" for :left or :right)", closed);
2159
+ rb_ary_store(bin_weights, bi, cur);
2145
2160
  }
2146
2161
  }
2162
+ return;
2147
2163
 
2148
- return left_p;
2164
+ type_error:
2165
+ rb_raise(rb_eTypeError, "weight array must have only real numbers");
2149
2166
  }
2150
2167
 
2151
2168
  static inline long
@@ -2269,10 +2286,47 @@ ary_histogram_calculate_edge(VALUE ary, const long nbins, const int left_p)
2269
2286
  return edge;
2270
2287
  }
2271
2288
 
2289
+ static VALUE
2290
+ check_histogram_weight_array(VALUE weight_array, const long ary_len)
2291
+ {
2292
+ if (weight_array == Qundef) return Qnil;
2293
+
2294
+ weight_array = rb_check_convert_type(weight_array, T_ARRAY, "Array", "to_ary");
2295
+ if (RARRAY_LEN(weight_array) != ary_len) {
2296
+ rb_raise(rb_eArgError, "weight array must have the same number of items as the receiver array");
2297
+ }
2298
+
2299
+ return weight_array;
2300
+ }
2301
+
2302
+ static VALUE
2303
+ check_histogram_edges(VALUE edges)
2304
+ {
2305
+ if (edges == Qundef) return Qnil;
2306
+ return rb_check_convert_type(edges, T_ARRAY, "Array", "to_ary");
2307
+ }
2308
+
2309
+ static int
2310
+ check_histogram_left_p(VALUE closed)
2311
+ {
2312
+ int left_p = (closed != sym_right);
2313
+ if (left_p && closed != Qundef && closed != sym_left) {
2314
+ rb_raise(rb_eArgError, "invalid value for :closed keyword "
2315
+ "(%"PRIsVALUE" for :left or :right)", closed);
2316
+ }
2317
+ return left_p;
2318
+ }
2319
+
2272
2320
  /* call-seq:
2273
- * ary.histogram(nbins=:auto, closed: :left)
2321
+ * ary.histogram(nbins=:auto, weight: nil, closed: :left)
2274
2322
  *
2275
2323
  * @param [Integer] nbins The approximate number of bins
2324
+ * @params [Array<Numeric>] weights
2325
+ * An optional weight array, that has the same length as the receiver.
2326
+ * `weight[i]` means the weight value of the i-th element in the receiver.
2327
+ * @params [Array<Numeric>] edges
2328
+ * An optional edge array, that specify the bin edges.
2329
+ * This array must be sorted.
2276
2330
  * @param [:left, :right] closed
2277
2331
  * If :left (the default), the bin interval are left-closed.
2278
2332
  * If :right, the bin interval are right-closed.
@@ -2282,30 +2336,52 @@ ary_histogram_calculate_edge(VALUE ary, const long nbins, const int left_p)
2282
2336
  static VALUE
2283
2337
  ary_histogram(int argc, VALUE *argv, VALUE ary)
2284
2338
  {
2285
- VALUE arg0, opts, edge, weights;
2286
- int left_p;
2287
- long nbins, nweights, i;
2339
+ VALUE arg0, kwargs, bin_weights;
2340
+ long nbins, n_bin_weights, i;
2288
2341
 
2289
- rb_scan_args(argc, argv, "01:", &arg0, &opts);
2290
- if (NIL_P(arg0)) {
2342
+ VALUE weight_array = Qnil;
2343
+ VALUE edges = Qnil;
2344
+ int left_p = 1;
2345
+
2346
+ rb_scan_args(argc, argv, "01:", &arg0, &kwargs);
2347
+ if (NIL_P(arg0) || arg0 == sym_auto) {
2291
2348
  nbins = sturges(RARRAY_LEN(ary));
2292
2349
  }
2293
2350
  else {
2294
2351
  nbins = NUM2LONG(arg0);
2295
2352
  }
2296
- left_p = opt_closed_left_p(opts);
2297
2353
 
2298
- edge = ary_histogram_calculate_edge(ary, nbins, left_p);
2354
+ if (!NIL_P(kwargs)) {
2355
+ enum { kw_weights, kw_edges, kw_closed };
2356
+ static ID kwarg_keys[3];
2357
+ VALUE kwarg_vals[3];
2358
+
2359
+ if (!kwarg_keys[0]) {
2360
+ kwarg_keys[kw_weights] = rb_intern("weights");
2361
+ kwarg_keys[kw_edges] = rb_intern("edges");
2362
+ kwarg_keys[kw_closed] = rb_intern("closed");
2363
+ }
2364
+
2365
+ rb_get_kwargs(kwargs, kwarg_keys, 0, 3, kwarg_vals);
2366
+
2367
+ weight_array = check_histogram_weight_array(kwarg_vals[kw_weights], RARRAY_LEN(ary));
2368
+ edges = check_histogram_edges(kwarg_vals[kw_edges]);
2369
+ left_p = check_histogram_left_p(kwarg_vals[kw_closed]);
2370
+ }
2371
+
2372
+ if (NIL_P(edges)) {
2373
+ edges = ary_histogram_calculate_edge(ary, nbins, left_p);
2374
+ }
2299
2375
 
2300
- nweights = RARRAY_LEN(edge) - 1;
2301
- weights = rb_ary_new_capa(nweights);
2302
- for (i = 0; i < nweights; ++i) {
2303
- rb_ary_store(weights, i, INT2FIX(0));
2376
+ n_bin_weights = RARRAY_LEN(edges) - 1;
2377
+ bin_weights = rb_ary_new_capa(n_bin_weights);
2378
+ for (i = 0; i < n_bin_weights; ++i) {
2379
+ rb_ary_store(bin_weights, i, INT2FIX(0));
2304
2380
  }
2305
2381
 
2306
- histogram_weights_push_values(weights, edge, ary, left_p);
2382
+ histogram_weights_push_values(bin_weights, edges, ary, weight_array, left_p);
2307
2383
 
2308
- return rb_struct_new(cHistogram, edge, weights,
2384
+ return rb_struct_new(cHistogram, edges, bin_weights,
2309
2385
  left_p ? sym_left : sym_right,
2310
2386
  Qfalse);
2311
2387
  }
@@ -2315,6 +2391,10 @@ Init_extension(void)
2315
2391
  {
2316
2392
  VALUE mEnumerableStatistics;
2317
2393
 
2394
+ #ifdef HAVE_RB_EXT_RACTOR_SAFE
2395
+ rb_ext_ractor_safe(true);
2396
+ #endif
2397
+
2318
2398
  #ifndef HAVE_ENUM_SUM
2319
2399
  rb_define_method(rb_mEnumerable, "sum", enum_sum, -1);
2320
2400
  #endif
@@ -2348,6 +2428,9 @@ Init_extension(void)
2348
2428
 
2349
2429
  rb_define_method(rb_cArray, "histogram", ary_histogram, -1);
2350
2430
 
2431
+ void Init_array_extension(void);
2432
+ Init_array_extension();
2433
+
2351
2434
  idPLUS = '+';
2352
2435
  idMINUS = '-';
2353
2436
  idSTAR = '*';
@@ -2367,6 +2450,7 @@ Init_extension(void)
2367
2450
  id_closed = rb_intern("closed");
2368
2451
  id_edge = rb_intern("edge");
2369
2452
 
2453
+ sym_auto = ID2SYM(rb_intern("auto"));
2370
2454
  sym_left = ID2SYM(rb_intern("left"));
2371
2455
  sym_right = ID2SYM(rb_intern("right"));
2372
2456
  }
@@ -1,2 +1,3 @@
1
1
  require_relative "enumerable_statistics/version"
2
+ require_relative "enumerable_statistics/array_ext"
2
3
  require_relative "enumerable_statistics/histogram"
@@ -0,0 +1,37 @@
1
+ module EnumerableStatistics
2
+ module ArrayExtension
3
+ def find_max
4
+ n = size
5
+ return nil if n == 0
6
+
7
+ imax, i = 0, 1
8
+ while i < n
9
+ imax = i if self[i] > self[imax]
10
+ i += 1
11
+ end
12
+ [self[imax], imax]
13
+ end
14
+
15
+ def argmax
16
+ find_max[1]
17
+ end
18
+
19
+ def find_min
20
+ n = size
21
+ return nil if n == 0
22
+
23
+ imin, i = 0, 1
24
+ while i < n
25
+ imin = i if self[i] < self[imax]
26
+ i += 1
27
+ end
28
+ [self[imin], imin]
29
+ end
30
+
31
+ def argmin
32
+ find_min[1]
33
+ end
34
+ end
35
+
36
+ Array.include ArrayExtension
37
+ end
@@ -1,5 +1,6 @@
1
1
  module EnumerableStatistics
2
- class Histogram < Struct.new(:edge, :weights, :closed, :isdensity)
2
+ class Histogram < Struct.new(:edges, :weights, :closed, :isdensity)
3
+ alias edge edges
3
4
  alias density? isdensity
4
5
  end
5
6
  end
@@ -1,5 +1,5 @@
1
1
  module EnumerableStatistics
2
- VERSION = '2.0.1'
2
+ VERSION = '2.0.7'
3
3
 
4
4
  module Version
5
5
  numbers, TAG = VERSION.split('-', 2)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enumerable-statistics
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenta Murata
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-11 00:00:00.000000000 Z
11
+ date: 2021-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.17.2
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.17.2
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.4'
69
+ - !ruby/object:Gem::Dependency
70
+ name: test-unit
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: fuubar
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -114,12 +128,11 @@ email:
114
128
  executables: []
115
129
  extensions:
116
130
  - ext/enumerable/statistics/extension/extconf.rb
117
- - ext/-bench-/extconf.rb
118
131
  extra_rdoc_files: []
119
132
  files:
133
+ - ".github/workflows/ci.yml"
120
134
  - ".gitignore"
121
135
  - ".rspec"
122
- - ".travis.yml"
123
136
  - ".yardopts"
124
137
  - CHANGELOG.md
125
138
  - Gemfile
@@ -136,12 +149,13 @@ files:
136
149
  - bin/rspec
137
150
  - bin/setup
138
151
  - enumerable-statistics.gemspec
139
- - ext/-bench-/extconf.rb
152
+ - ext/enumerable/statistics/extension/array_ext.c
140
153
  - ext/enumerable/statistics/extension/extconf.rb
141
154
  - ext/enumerable/statistics/extension/statistics.c
142
155
  - images/benchmark.png
143
156
  - lib/enumerable/statistics.rb
144
157
  - lib/enumerable_statistics.rb
158
+ - lib/enumerable_statistics/array_ext.rb
145
159
  - lib/enumerable_statistics/histogram.rb
146
160
  - lib/enumerable_statistics/version.rb
147
161
  - templates/default/layout/html/headers.erb
@@ -275,7 +289,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
289
  - !ruby/object:Gem::Version
276
290
  version: '0'
277
291
  requirements: []
278
- rubygems_version: 3.1.2
292
+ rubygems_version: 3.2.21
279
293
  signing_key:
280
294
  specification_version: 4
281
295
  summary: Statistics features for Enumerable
data/.travis.yml DELETED
@@ -1,32 +0,0 @@
1
- ---
2
- notification:
3
- email:
4
- - mrkn@ruby-lang.org
5
-
6
- language: ruby
7
-
8
- before_install:
9
- - yes | gem update --system
10
- - gem install bundler
11
-
12
- install:
13
- - bundle install
14
-
15
- script:
16
- - bundle exec rake --trace clobber compile
17
- - bundle exec rake spec
18
-
19
- matrix:
20
- include:
21
- - name: "2.3"
22
- rvm: 2.3
23
- - name: "2.4"
24
- rvm: 2.4.5
25
- - name: "2.5"
26
- rvm: 2.5.2
27
- - name: "2.6"
28
- rvm: 2.6
29
- - name: "trunk"
30
- rvm: ruby-head
31
- allow_failures:
32
- - rvm: 2.3
@@ -1,3 +0,0 @@
1
- require 'mkmf'
2
-
3
- create_makefile('-bench-')