rmtools 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -23,13 +23,15 @@ It's still randomly documented since it's just my working tool.
23
23
 
24
24
  ### CHANGES
25
25
 
26
- ##### Version 1.3.2
26
+ ##### Version 1.3.3
27
27
 
28
28
  * Added to Array: #sort_along_by, #indices_map, #each_two
29
29
  * Enumerable#map_hash
30
30
  * Range
31
- * * Fixed Range#x? for neighbor numbers and aliased as :intersects?
32
- * * added XRange#intersects?
31
+ * * Fixed #size for backward ranges
32
+ * * Fixed #x? and #-@ for neighbor numbers and non-integers in general
33
+ * * added XRange#x?
34
+ * * aliased #x? as #intersects?
33
35
  * Class#__init__ accepts block, auto__init__ed Thread and Proc
34
36
 
35
37
  ##### Version 1.3.0
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rake'
2
2
  require './lib/rmtools/install'
3
3
  compile_manifest
4
4
 
5
- RMTOOLS_VERSION = '1.3.2'
5
+ RMTOOLS_VERSION = '1.3.3'
6
6
  begin
7
7
  require 'hoe'
8
8
  config = Hoe.spec 'rmtools' do |h|
@@ -5,6 +5,19 @@ end
5
5
 
6
6
  class Range
7
7
 
8
+ # -(1.0..2.0)
9
+ ### => XRange(-∞..1.0, 2.0..∞)
10
+ # BUT
11
+ # -(1..2)
12
+ ### => XRange(-∞..0, 3..∞)
13
+ # i.e. all excluding these: (0; 1], [1; 2], [2; 3)
14
+ def -@
15
+ self_begin = self.begin
16
+ self_begin -= 1 if Integer === self_begin
17
+ self_end = include_end.end
18
+ self_end += 1 if Integer === self_end
19
+ XRange(-Inf..self_begin, self_end..Inf)
20
+ end
8
21
  def &(range)
9
22
  return range&self if range.is XRange
10
23
  beg = [self.begin, range.begin].max
@@ -20,10 +33,16 @@ class Range
20
33
  [self.begin, range.begin].min..[self_.end, range.end].max
21
34
  end
22
35
 
23
- def -@
24
- XRange(-Inf..self.begin-1, include_end.end+1..Inf)
25
- end
26
36
 
37
+ # On the basis of #-@ for non-integers,
38
+ # (0..1) - (1..2)
39
+ ### => XRange(0..0)
40
+ # (0..1.0) - (1..2)
41
+ ### => XRange(0..0)
42
+ # (0..1) - (1.0..2)
43
+ ### => XRange(0..1.0)
44
+ # (0..1.0) - (1.0..2)
45
+ ### => XRange(0..1.0)
27
46
  def -(range)
28
47
  self & -range
29
48
  end
@@ -41,13 +60,13 @@ class Range
41
60
  range_end = range.include_end.end
42
61
  self_end = self.include_end.end
43
62
  if self_end < range_end
44
- if self_end.kinda Integer and range.begin.kinda Integer
63
+ if Integer === self_end and Integer === range.begin
45
64
  self_end >= range.begin
46
65
  else
47
66
  self_end > range.begin
48
67
  end
49
68
  else
50
- if self.begin.kinda Integer and range_end.kinda Integer
69
+ if Integer === self.begin and Integer === range_end
51
70
  range_end >= self.begin
52
71
  else
53
72
  range_end > self.begin
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rmtools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: