daru_lite 0.2.1 → 0.2.4

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: 6da8c79960f009b08e12c9d252a267e4d69d6c2152ded63fbe8180891eb25b86
4
- data.tar.gz: 074d65df9bbc034b37089cf0938a5df45006f8e264ed259721d5823e0ae41c3b
3
+ metadata.gz: a04accc0b21012227f90f9586cf82bf432d0d8b973ed95238307fd6d11d17eba
4
+ data.tar.gz: e0fdc901b2d9b8bfb0a5af9f364921fcf4022d083d303621073161572cd189b3
5
5
  SHA512:
6
- metadata.gz: 56055dcbc442963a8c9881d0b86c767cf9d49d382b1f78b33e7603d83a496028116fef819b38fd15110f67bacccf143354efdba9a919fe829d54006c2e0e6bd5
7
- data.tar.gz: b3b20cfa80cd6ff336979d1ec836673de99f828883d45186a2762b396ab85ed7b57c8b75709b9ff12623121ed34c707ad66b3ad26aa530e98f43aa5fb27dd4a0
6
+ metadata.gz: a49e8d0219f4005d84ce38729707aa4742dcc8ee31d56ffff6f29899ad01b910f7f38d1574419d882947c791f22eeaeb0afcdf3e804283d21725d36ab7a5f016
7
+ data.tar.gz: 363502b7823a4cc4928e567e560d1992a873c02adaf1014de0b90b92e8772b8fce350f5cf23a86643a94c857a33343890cefbd09612dba2affbc909f97b8f253
data/daru_lite.gemspec CHANGED
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
40
40
  spec.add_development_dependency 'rake', '~> 13.0'
41
41
  spec.add_development_dependency 'rspec', '~> 3.11'
42
42
  spec.add_development_dependency 'rspec-its', '~> 2.0.0'
43
- spec.add_development_dependency 'rubocop', '~> 1.60'
43
+ spec.add_development_dependency 'rubocop', '~> 1.86'
44
44
  spec.add_development_dependency 'rubocop-performance', '~> 1.25.0'
45
45
  spec.add_development_dependency 'rubocop-rspec', '~> 3.6'
46
46
  spec.add_development_dependency 'ruby-prof', '~> 1.7.0'
@@ -858,7 +858,7 @@ module DaruLite
858
858
  end
859
859
 
860
860
  def user_defined_coding(df)
861
- DaruLite::DataFrame.rows (Array.new(size) { |pos| df.row[at(pos)].to_a }),
861
+ DaruLite::DataFrame.rows Array.new(size) { |pos| df.row[at(pos)].to_a },
862
862
  index: @index,
863
863
  order: df.vectors.to_a
864
864
  end
@@ -118,9 +118,9 @@ module DaruLite
118
118
  if lkey == rkey
119
119
  self.merge_key = lkey
120
120
  add_indicator(merge_matching_rows, :both)
121
- elsif !rkey || lt(lkey, rkey)
121
+ elsif !rkey || lt?(lkey, rkey)
122
122
  add_indicator(left_row_missing_right, :left_only)
123
- else # !lkey || lt(rkey, lkey)
123
+ else # !lkey || lt?(rkey, lkey)
124
124
  add_indicator(right_row_missing_left, :right_only)
125
125
  end
126
126
  end
@@ -181,7 +181,7 @@ module DaruLite
181
181
  expand_row(val, right_keys) if keep_right
182
182
  end
183
183
 
184
- def lt(k1, k2)
184
+ def lt?(k1, k2)
185
185
  (k1 <=> k2) == -1
186
186
  end
187
187
 
@@ -222,7 +222,7 @@ module DaruLite
222
222
  end
223
223
 
224
224
  def access_vector_multi_index(*names)
225
- pos = @vectors[names]
225
+ pos = @vectors[*names]
226
226
 
227
227
  return @data[pos] if pos.is_a?(Integer)
228
228
 
@@ -730,10 +730,10 @@ module DaruLite
730
730
 
731
731
  case source.first
732
732
  when Array
733
- vectors ||= (0..source.size - 1).to_a
733
+ vectors ||= (0..(source.size - 1)).to_a
734
734
  initialize_from_array_of_arrays source, vectors, index, opts
735
735
  when Vector
736
- vectors ||= (0..source.size - 1).to_a
736
+ vectors ||= (0..(source.size - 1)).to_a
737
737
  initialize_from_array_of_vectors source, vectors, index, opts
738
738
  when Hash
739
739
  initialize_from_array_of_hashes source, vectors, index, opts
@@ -809,10 +809,7 @@ module DaruLite
809
809
  elsif vectors_have_same_index
810
810
  source.values[0].index.dup
811
811
  else
812
- all_indexes = source
813
- .values.map { |v| v.index.to_a }
814
- .flatten.uniq.sort # sort only if missing indexes detected
815
-
812
+ all_indexes = source.values.map { |v| v.index.to_a }.flatten.uniq.sort # sort only if missing indexes detected
816
813
  DaruLite::Index.new all_indexes
817
814
  end
818
815
  end
@@ -96,7 +96,7 @@ module DaruLite
96
96
  def infer_offset(data)
97
97
  diffs = data.each_cons(2).map { |d1, d2| d2 - d1 }
98
98
 
99
- return nil unless diffs.uniq.count == 1
99
+ return nil unless diffs.uniq.one?
100
100
 
101
101
  return TIME_INTERVALS[diffs.first].new if TIME_INTERVALS.include?(diffs.first)
102
102
 
@@ -216,6 +216,7 @@ module DaruLite
216
216
 
217
217
  class DateTimeIndex < Index
218
218
  include Enumerable
219
+
219
220
  Helper = DateTimeIndexHelper
220
221
 
221
222
  def self.try_create(source)
@@ -249,7 +249,7 @@ module DaruLite
249
249
  end
250
250
 
251
251
  def freq_string
252
- "#{@n == 1 ? '' : @n.to_s}W-#{DaruLite::DAYS_OF_WEEK.key(@weekday)}"
252
+ "#{@n.to_s unless @n == 1}W-#{DaruLite::DAYS_OF_WEEK.key(@weekday)}"
253
253
  end
254
254
  end
255
255
 
@@ -1,6 +1,7 @@
1
1
  module DaruLite
2
2
  class Index # rubocop:disable Metrics/ClassLength
3
3
  include Enumerable
4
+
4
5
  # It so happens that over riding the .new method in a super class also
5
6
  # tampers with the default .new method for class that inherit from the
6
7
  # super class (Index in this case). Thus we first alias the original
@@ -170,7 +171,7 @@ module DaruLite
170
171
  if start_idx.nil?
171
172
  nil
172
173
  elsif en_idx.nil?
173
- Array(start_idx..size - 1)
174
+ Array(start_idx..(size - 1))
174
175
  else
175
176
  Array(start_idx..en_idx)
176
177
  end
@@ -122,18 +122,16 @@ module DaruLite
122
122
  end
123
123
 
124
124
  def [](*key)
125
- if key[0].is_a?(Array)
126
- collection = key.map { |actual_key| self[*actual_key] }
127
- collection.one? ? collection.first : collection
128
- elsif key[0].is_a?(Range)
129
- retrieve_from_range(key[0])
130
- elsif key[0].is_a?(Integer) && key.size == 1
131
- try_retrieve_from_integer(key[0])
125
+ if key.all? { |subkey| subkey.is_a?(Array) && subkey.length > 1 }
126
+ retrieve_from_tuples(*key)
132
127
  else
133
- begin
134
- retrieve_from_tuples key
135
- rescue NoMethodError
136
- raise IndexError, "Specified index #{key.inspect} do not exist"
128
+ key.flatten!
129
+ if key[0].is_a?(Range)
130
+ retrieve_from_range(key[0])
131
+ elsif key[0].is_a?(Integer) && key.size == 1
132
+ try_retrieve_from_integer(key[0])
133
+ else
134
+ retrieve_from_tuple(key)
137
135
  end
138
136
  end
139
137
  end
@@ -217,14 +215,19 @@ module DaruLite
217
215
  end
218
216
 
219
217
  def try_retrieve_from_integer(int)
220
- @levels[0].key?(int) ? retrieve_from_tuples([int]) : int
218
+ @levels[0].key?(int) ? retrieve_from_tuple([int]) : int
221
219
  end
222
220
 
223
221
  def retrieve_from_range(range)
224
222
  MultiIndex.from_tuples(range.map { |index| key(index) })
225
223
  end
226
224
 
227
- def retrieve_from_tuples(key)
225
+ def retrieve_from_tuples(*keys)
226
+ collection = keys.map { |key| retrieve_from_tuple(key) }
227
+ collection.one? ? collection.first : collection
228
+ end
229
+
230
+ def retrieve_from_tuple(key)
228
231
  chosen = []
229
232
 
230
233
  key.each_with_index do |k, depth|
@@ -238,6 +241,8 @@ module DaruLite
238
241
  return chosen[0] if chosen.size == 1 && key.size == @levels.size
239
242
 
240
243
  multi_index_from_multiple_selections(chosen)
244
+ rescue NoMethodError
245
+ raise IndexError, "Specified index #{key.inspect} do not exist"
241
246
  end
242
247
 
243
248
  def multi_index_from_multiple_selections(chosen)
@@ -287,8 +292,8 @@ module DaruLite
287
292
  raise SizeError, [error_msg, suggestion_msg].join("\n") if names.size < levels.size
288
293
  end
289
294
 
290
- private :find_all_indexes, :multi_index_from_multiple_selections,
291
- :retrieve_from_range, :retrieve_from_tuples, :validate_name
295
+ private :find_all_indexes, :multi_index_from_multiple_selections, :retrieve_from_range,
296
+ :retrieve_from_tuples, :retrieve_from_tuple, :validate_name
292
297
 
293
298
  def key(index)
294
299
  raise ArgumentError, "Key #{index} is too large" if index >= @labels[0].size
@@ -141,7 +141,6 @@ module DaruLite
141
141
  query = "INSERT INTO #{table} (#{ds.vectors.to_a.join(',')}) VALUES (#{(['?'] * ds.vectors.size).join(',')})"
142
142
  sth = dbh.prepare(query)
143
143
  ds.each_row { |c| sth.execute(*c.to_a) }
144
- true
145
144
  end
146
145
 
147
146
  # Load dataframe from AR::Relation
@@ -161,12 +160,13 @@ module DaruLite
161
160
 
162
161
  def from_plaintext(filename, fields)
163
162
  ds = DaruLite::DataFrame.new({}, order: fields)
164
- fp = File.open(filename, 'r')
165
- fp.each_line do |line|
166
- row = DaruLite::IOHelpers.process_row(line.strip.split(/\s+/), [''])
167
- next if row == ["\x1A"]
163
+ File.open(filename, 'r') do |fp|
164
+ fp.each_line do |line|
165
+ row = DaruLite::IOHelpers.process_row(line.strip.split(/\s+/), [''])
166
+ next if row == ["\x1A"]
168
167
 
169
- ds.add_row(row)
168
+ ds.add_row(row)
169
+ end
170
170
  end
171
171
  ds.update
172
172
  fields.each { |f| ds[f].rename f }
@@ -175,9 +175,7 @@ module DaruLite
175
175
 
176
176
  # Loading and writing Marshalled DataFrame/Vector
177
177
  def save(klass, filename)
178
- fp = File.open(filename, 'w')
179
- Marshal.dump(klass, fp)
180
- fp.close
178
+ File.open(filename, 'w') { Marshal.dump(klass, it) }
181
179
  end
182
180
 
183
181
  def load(filename)
@@ -248,7 +246,7 @@ module DaruLite
248
246
  data, size = html_scrape_tag(table, 'td')
249
247
  data.keep_if { |x| x.count == size }
250
248
  order, indice = html_parse_hash(headers, size, headers_size) if headers_size >= size
251
- return unless (indice.nil? || indice.count == data.count) && !order.nil? && order.count.positive?
249
+ return unless (indice.nil? || indice.count == data.count) && !order.nil? && order.any?
252
250
 
253
251
  { data: data.compact, index: indice, order: order }
254
252
  end
@@ -267,7 +265,7 @@ module DaruLite
267
265
  order = headers[headers_index]
268
266
  order_index = order.count - size
269
267
  order = order[order_index..]
270
- indice = headers[headers_index + 1..].flatten
268
+ indice = headers[(headers_index + 1)..].flatten
271
269
  indice = nil if indice.to_a.empty?
272
270
  [order, indice]
273
271
  end
@@ -166,8 +166,7 @@ module DaruLite
166
166
  private
167
167
 
168
168
  def apply_method_to_numerics(method, *)
169
- numerics = @vectors.to_a.map { |n| [n, @data[@vectors[n]]] }
170
- .select { |_n, v| v.numeric? }
169
+ numerics = @vectors.to_a.map { |n| [n, @data[@vectors[n]]] }.select { |_n, v| v.numeric? }
171
170
  computed = numerics.map { |_n, v| v.send(method, *) }
172
171
 
173
172
  DaruLite::DataFrame.new(computed, index: @index, order: numerics.map(&:first), clone: false)
@@ -189,9 +188,8 @@ module DaruLite
189
188
 
190
189
  def compute_stats(method)
191
190
  DaruLite::Vector.new(
192
- numeric_vectors.each_with_object({}) do |vec, hash|
193
- hash[vec] = self[vec].send(method)
194
- end, name: method
191
+ numeric_vectors.to_h { [it, self[it].send(method)] },
192
+ name: method
195
193
  )
196
194
  end
197
195
  alias sds std
@@ -180,7 +180,7 @@ module DaruLite
180
180
  # dv.max(2) { |a,b| a.size <=> b.size }
181
181
  # #=> ["Jon Starkgaryen","Daenerys"]
182
182
  def max(size = nil, &)
183
- range = size.nil? ? 0 : (0..size - 1)
183
+ range = size.nil? ? 0 : (0..(size - 1))
184
184
  reject_values(*DaruLite::MISSING_VALUES).to_a.sort(&).reverse[range]
185
185
  end
186
186
 
@@ -203,7 +203,7 @@ module DaruLite
203
203
  def max_by(size = nil, &block)
204
204
  raise ArgumentError, 'Expected compulsory object block in max_by method' unless block
205
205
 
206
- reject_values(*DaruLite::MISSING_VALUES).to_a.sort_by(&block).reverse[size.nil? ? 0 : (0..size - 1)]
206
+ reject_values(*DaruLite::MISSING_VALUES).to_a.sort_by(&block).reverse[size.nil? ? 0 : (0..(size - 1))]
207
207
  end
208
208
 
209
209
  # Returns the minimum value(s) present in the vector, with an optional comparator block.
@@ -226,7 +226,7 @@ module DaruLite
226
226
  # dv.min(2) { |a,b| a.size <=> b.size }
227
227
  # #=> ["Tyrion","Daenerys"]
228
228
  def min(size = nil, &)
229
- range = size.nil? ? 0 : (0..size - 1)
229
+ range = size.nil? ? 0 : (0..(size - 1))
230
230
  reject_values(*DaruLite::MISSING_VALUES).to_a.sort(&)[range]
231
231
  end
232
232
 
@@ -252,7 +252,7 @@ module DaruLite
252
252
  def min_by(size = nil, &block)
253
253
  raise ArgumentError, 'Expected compulsory object block in min_by method' unless block
254
254
 
255
- reject_values(*DaruLite::MISSING_VALUES).to_a.sort_by(&block)[size.nil? ? 0 : (0..size - 1)]
255
+ reject_values(*DaruLite::MISSING_VALUES).to_a.sort_by(&block)[size.nil? ? 0 : (0..(size - 1))]
256
256
  end
257
257
  end
258
258
 
@@ -279,7 +279,7 @@ module DaruLite
279
279
  def index_of_max(size = nil, &)
280
280
  vals = max(size, &)
281
281
  dv = reject_values(*DaruLite::MISSING_VALUES)
282
- vals.is_a?(Array) ? (vals.map { |x| dv.index_of(x) }) : dv.index_of(vals)
282
+ vals.is_a?(Array) ? vals.map { |x| dv.index_of(x) } : dv.index_of(vals)
283
283
  end
284
284
 
285
285
  # Returns the index of the maximum value(s) present in the vector, with a compulsory
@@ -302,7 +302,7 @@ module DaruLite
302
302
  def index_of_max_by(size = nil, &)
303
303
  vals = max_by(size, &)
304
304
  dv = reject_values(*DaruLite::MISSING_VALUES)
305
- vals.is_a?(Array) ? (vals.map { |x| dv.index_of(x) }) : dv.index_of(vals)
305
+ vals.is_a?(Array) ? vals.map { |x| dv.index_of(x) } : dv.index_of(vals)
306
306
  end
307
307
 
308
308
  # Returns the index of the minimum value(s) present in the vector, with an optional
@@ -328,7 +328,7 @@ module DaruLite
328
328
  def index_of_min(size = nil, &)
329
329
  vals = min(size, &)
330
330
  dv = reject_values(*DaruLite::MISSING_VALUES)
331
- vals.is_a?(Array) ? (vals.map { |x| dv.index_of(x) }) : dv.index_of(vals)
331
+ vals.is_a?(Array) ? vals.map { |x| dv.index_of(x) } : dv.index_of(vals)
332
332
  end
333
333
 
334
334
  # Returns the index of the minimum value(s) present in the vector, with a compulsory
@@ -351,7 +351,7 @@ module DaruLite
351
351
  def index_of_min_by(size = nil, &)
352
352
  vals = min_by(size, &)
353
353
  dv = reject_values(*DaruLite::MISSING_VALUES)
354
- vals.is_a?(Array) ? (vals.map { |x| dv.index_of(x) }) : dv.index_of(vals)
354
+ vals.is_a?(Array) ? vals.map { |x| dv.index_of(x) } : dv.index_of(vals)
355
355
  end
356
356
 
357
357
  # Return the maximum element present in the Vector, as a Vector.
@@ -409,11 +409,7 @@ module DaruLite
409
409
 
410
410
  # Count number of occurrences of each value in the Vector
411
411
  def value_counts
412
- values = @data.each_with_object(Hash.new(0)) do |d, memo|
413
- memo[d] += 1
414
- end
415
-
416
- DaruLite::Vector.new(values)
412
+ DaruLite::Vector.new(@data.tally)
417
413
  end
418
414
 
419
415
  def proportion(value = 1)
@@ -0,0 +1,11 @@
1
+ class Array
2
+ def daru_lite_vector(name = nil, index = nil, dtype = :array)
3
+ DaruLite::Vector.new self, name: name, index: index, dtype: dtype
4
+ end
5
+
6
+ alias dv daru_lite_vector
7
+
8
+ def to_index
9
+ DaruLite::Index.new self
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ class Hash
2
+ def daru_lite_vector(index = nil, dtype = :array)
3
+ DaruLite::Vector.new values[0], name: keys[0], index: index, dtype: dtype
4
+ end
5
+
6
+ alias dv daru_lite_vector
7
+ end
@@ -0,0 +1,7 @@
1
+ class MDArray
2
+ def daru_lite_vector(name = nil, index = nil, *)
3
+ DaruLite::Vector.new self, name: name, index: index, dtype: :mdarray
4
+ end
5
+
6
+ alias dv daru_lite_vector
7
+ end
@@ -0,0 +1,7 @@
1
+ class Matrix
2
+ def elementwise_division(other)
3
+ map.with_index do |e, index|
4
+ e / other.to_a.flatten[index]
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ class Object
2
+ if RUBY_VERSION < '2.2'
3
+ def itself
4
+ self
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ class Range
2
+ def daru_lite_vector(name = nil, index = nil, dtype = :array)
3
+ DaruLite::Vector.new self, name: name, index: index, dtype: dtype
4
+ end
5
+
6
+ alias dv daru_lite_vector
7
+
8
+ def to_index
9
+ DaruLite::Index.new to_a
10
+ end
11
+ end
@@ -51,7 +51,7 @@ module DaruLite
51
51
  "\n Distribution\n"
52
52
 
53
53
  data = frequencies.sort.each_with_index.map do |v, k|
54
- [k, v, format('%0.2f%%', ((nval.zero? ? 1 : v.quo(nval)) * 100))]
54
+ [k, v, format('%0.2f%%', (nval.zero? ? 1 : v.quo(nval)) * 100)]
55
55
  end
56
56
 
57
57
  summary + Formatters::Table.format(data)
@@ -10,7 +10,7 @@ module DaruLite
10
10
  # Copies the structure of the vector (i.e the index, size, etc.) and fills all
11
11
  # all values with nils.
12
12
  def clone_structure
13
- DaruLite::Vector.new(([nil] * size), name: @name, index: @index.dup)
13
+ DaruLite::Vector.new([nil] * size, name: @name, index: @index.dup)
14
14
  end
15
15
  end
16
16
  end
@@ -56,8 +56,9 @@ module DaruLite
56
56
  end
57
57
 
58
58
  def tail(q = 10)
59
- start = [size - q, 0].max
60
- self[start..(size - 1)]
59
+ from = [size - q, 0].max
60
+ to = size - 1
61
+ self[from..to]
61
62
  end
62
63
 
63
64
  def last(q = 1)
@@ -164,6 +164,7 @@ module DaruLite
164
164
  if opts[:type] == :category
165
165
  # Initialize category type vector
166
166
  extend DaruLite::Category
167
+
167
168
  initialize_category source, opts
168
169
  else
169
170
  # Initialize non-category type vector
@@ -256,7 +257,7 @@ module DaruLite
256
257
  other = other.zip(Array.new(other.size, 0)).to_h
257
258
  DaruLite::Core::Query::BoolArray.new(
258
259
  @data.each_with_object([]) do |d, memo|
259
- memo << (other.key?(d))
260
+ memo << other.key?(d)
260
261
  end
261
262
  )
262
263
  end
@@ -1,3 +1,3 @@
1
1
  module DaruLite
2
- VERSION = '0.2.1'.freeze
2
+ VERSION = '0.2.4'.freeze
3
3
  end
data/lib/daru_lite.rb CHANGED
@@ -86,11 +86,17 @@ require 'daru_lite/helpers/array'
86
86
  require 'daru_lite/configuration'
87
87
  require 'daru_lite/vector'
88
88
  require 'daru_lite/dataframe'
89
- require 'daru_lite/monkeys'
90
89
  require 'daru_lite/formatters/table'
91
90
  require 'daru_lite/iruby/helpers'
92
91
  require 'daru_lite/exceptions'
93
92
 
93
+ require 'daru_lite/monkeys/array'
94
+ require 'daru_lite/monkeys/hash'
95
+ require 'daru_lite/monkeys/m_d_array'
96
+ require 'daru_lite/monkeys/matrix'
97
+ require 'daru_lite/monkeys/object'
98
+ require 'daru_lite/monkeys/range'
99
+
94
100
  require 'daru_lite/core/group_by'
95
101
  require 'daru_lite/core/query'
96
102
  require 'daru_lite/core/merge'
@@ -58,6 +58,11 @@ shared_examples_for 'a fetchable DataFrame' do
58
58
  DaruLite::Vector.new(vector_arry1, index: multi_index))
59
59
  end
60
60
 
61
+ it "returns a vector when specifying last tuple part as an array" do
62
+ expect(df_mi[:a, :one, [:bar]]).to eq(
63
+ DaruLite::Vector.new(vector_arry1, index: multi_index))
64
+ end
65
+
61
66
  it "returns DataFrame when specified first layer of MultiIndex" do
62
67
  sub_order = DaruLite::MultiIndex.from_tuples([
63
68
  [:one, :bar],
@@ -141,6 +141,10 @@ describe DaruLite::MultiIndex do
141
141
  expect(index[:a, :one, :baz]).to eq(1)
142
142
  end
143
143
 
144
+ it "returns the row number when specifying last tuple part as an array" do
145
+ expect(index[:a, :one, [:baz]]).to eq(1)
146
+ end
147
+
144
148
  it "returns the row numbers when specifying multiple tuples" do
145
149
  expect(index[[:a, :one, :baz], [:b, :two, :bar]]).to eq([1, 5])
146
150
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daru_lite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Naude-Filonnière
@@ -9,9 +9,10 @@ authors:
9
9
  - Julie Thomas
10
10
  - Amar Slaoua
11
11
  - Mourtada Belhantri
12
+ autorequire:
12
13
  bindir: bin
13
14
  cert_chain: []
14
- date: 1980-01-02 00:00:00.000000000 Z
15
+ date: 2026-04-10 00:00:00.000000000 Z
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
18
  name: activerecord
@@ -187,14 +188,14 @@ dependencies:
187
188
  requirements:
188
189
  - - "~>"
189
190
  - !ruby/object:Gem::Version
190
- version: '1.60'
191
+ version: '1.86'
191
192
  type: :development
192
193
  prerelease: false
193
194
  version_requirements: !ruby/object:Gem::Requirement
194
195
  requirements:
195
196
  - - "~>"
196
197
  - !ruby/object:Gem::Version
197
- version: '1.60'
198
+ version: '1.86'
198
199
  - !ruby/object:Gem::Dependency
199
200
  name: rubocop-performance
200
201
  requirement: !ruby/object:Gem::Requirement
@@ -316,6 +317,7 @@ description: |
316
317
  and can be used with many others like mixed_models, gnuplotrb and iruby.
317
318
 
318
319
  Daru Lite is a fork of Daru that aims to focus on data manipulation and stability.
320
+ email:
319
321
  executables: []
320
322
  extensions: []
321
323
  extra_rdoc_files: []
@@ -420,7 +422,12 @@ files:
420
422
  - lib/daru_lite/maths/arithmetic/vector.rb
421
423
  - lib/daru_lite/maths/statistics/dataframe.rb
422
424
  - lib/daru_lite/maths/statistics/vector.rb
423
- - lib/daru_lite/monkeys.rb
425
+ - lib/daru_lite/monkeys/array.rb
426
+ - lib/daru_lite/monkeys/hash.rb
427
+ - lib/daru_lite/monkeys/m_d_array.rb
428
+ - lib/daru_lite/monkeys/matrix.rb
429
+ - lib/daru_lite/monkeys/object.rb
430
+ - lib/daru_lite/monkeys/range.rb
424
431
  - lib/daru_lite/vector.rb
425
432
  - lib/daru_lite/vector/aggregatable.rb
426
433
  - lib/daru_lite/vector/calculatable.rb
@@ -531,6 +538,7 @@ homepage: https://github.com/pollandroll/daru
531
538
  licenses:
532
539
  - BSD-2-Clause
533
540
  metadata: {}
541
+ post_install_message:
534
542
  rdoc_options: []
535
543
  require_paths:
536
544
  - lib
@@ -545,7 +553,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
545
553
  - !ruby/object:Gem::Version
546
554
  version: '0'
547
555
  requirements: []
548
- rubygems_version: 4.0.4
556
+ rubygems_version: 3.4.10
557
+ signing_key:
549
558
  specification_version: 4
550
559
  summary: Data Analysis in RUby, stripped down
551
560
  test_files:
@@ -1,56 +0,0 @@
1
- class Array
2
- def daru_lite_vector(name = nil, index = nil, dtype = :array)
3
- DaruLite::Vector.new self, name: name, index: index, dtype: dtype
4
- end
5
-
6
- alias dv daru_lite_vector
7
-
8
- def to_index
9
- DaruLite::Index.new self
10
- end
11
- end
12
-
13
- class Range
14
- def daru_lite_vector(name = nil, index = nil, dtype = :array)
15
- DaruLite::Vector.new self, name: name, index: index, dtype: dtype
16
- end
17
-
18
- alias dv daru_lite_vector
19
-
20
- def to_index
21
- DaruLite::Index.new to_a
22
- end
23
- end
24
-
25
- class Hash
26
- def daru_lite_vector(index = nil, dtype = :array)
27
- DaruLite::Vector.new values[0], name: keys[0], index: index, dtype: dtype
28
- end
29
-
30
- alias dv daru_lite_vector
31
- end
32
-
33
- class MDArray
34
- def daru_lite_vector(name = nil, index = nil, *)
35
- DaruLite::Vector.new self, name: name, index: index, dtype: :mdarray
36
- end
37
-
38
- alias dv daru_lite_vector
39
- end
40
-
41
- class Matrix
42
- def elementwise_division(other)
43
- map.with_index do |e, index|
44
- e / other.to_a.flatten[index]
45
- end
46
- end
47
- end
48
-
49
- class Object
50
- if RUBY_VERSION < '2.2'
51
- def itself
52
- self
53
- end
54
- end
55
- end
56
- # :nocov: