b-lazy 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/b-lazy.rb +31 -7
  2. metadata +2 -2
data/lib/b-lazy.rb CHANGED
@@ -285,13 +285,7 @@ module Enumerable
285
285
  end
286
286
 
287
287
 
288
- # This is a lazy version of the #product method. It returns
289
- # all combinations of values from the provided Enumerators.
290
- #
291
- # Ex: [[1, 2], [3, 4]].lproduct.to_a -> [[1, 3], [1, 4], [2, 3], [2, 4]]
292
- #def lproduct()
293
- #
294
- #end
288
+
295
289
 
296
290
 
297
291
  # Repeats the same sequence of elements n times.
@@ -320,3 +314,33 @@ module Enumerable
320
314
  end
321
315
 
322
316
  end
317
+
318
+
319
+
320
+
321
+
322
+ class Integer
323
+
324
+
325
+
326
+ def self.positives
327
+ (1..Float::INFINITY).ensure_enum
328
+ end
329
+
330
+ def self.non_negatives
331
+ (0..Float::INFINITY).ensure_enum
332
+ end
333
+
334
+ def self.negatives
335
+ positives.lmap{|x| -1 * x}
336
+ end
337
+
338
+ def self.non_positives
339
+ non_negatives.lmap{|x| -1 * x}
340
+ end
341
+
342
+ def self.all
343
+ [[0], positives.lmap{|x| [x, -x]}.cons].cons
344
+ end
345
+
346
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Brian Lauber