range_list_rb 0.2.0 → 0.3.0

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: 279924926180cea40ac46209691189d10dc0e0957c2277d95974d9f48881e929
4
- data.tar.gz: 0e675975de6bbcf768bfbeb217c947d3ab1d0202663736673882945f0580bef8
3
+ metadata.gz: f93f099a2daaaff284990bc03538af591aa032f89e7c1b29272852c331af7be6
4
+ data.tar.gz: 7034dbf55885ca9e9199c0d27feae6cb33452e8873cf661c3ff8917f64d23ad4
5
5
  SHA512:
6
- metadata.gz: a09f8b1b8957df0a8d486e9805355915e81cfbf9a1401b97b5cde31845b4330b3ec29ee2a4aa582e03361938f6355e296b76d7b78e4bc2dbd36b7b9300ed9a1e
7
- data.tar.gz: 42494b7ec55a7c8d800d7e8263b8a4c55ffd894e61e79fbee0a8616f371fcf422d4542acc0a0deb441058580fd9da236f39e79aed85bb7b265da2e1e9f0ad479
6
+ metadata.gz: e0eceb523ce1443c73a0f22e0e7a482c9333946fbd12141e984c47a88d14c02c531b7d2f6093867f96f35e1ba1651b216e487c091f825fcb674a3ded56af2fab
7
+ data.tar.gz: 8ff18c72a3e03c28d0cdb24a2b1751fd209ee42139284ed124103df9c75c550635219204ad15cedf88043d1a652ebbf25d0c01d14ac61e1f967a156c0580167c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- range_list_rb (0.2.0)
4
+ range_list_rb (0.3.0)
5
5
  rbtree (~> 0.4.5)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -9,11 +9,11 @@ A range list is an aggregate of these ranges: [1, 5), [10, 11), [100, 201).
9
9
 
10
10
  Install the gem and add to the application's Gemfile by executing:
11
11
 
12
- $ bundle add range_list
12
+ $ bundle add range_list_rb
13
13
 
14
14
  If bundler is not being used to manage dependencies, install the gem by executing:
15
15
 
16
- $ gem install range_list
16
+ $ gem install range_list_rb
17
17
 
18
18
  ## Usage
19
19
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class RangeList
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
data/lib/range_list.rb CHANGED
@@ -81,6 +81,17 @@ class RangeList
81
81
  Kernel.print to_s
82
82
  end
83
83
 
84
+ # Returns true if range list contains input element, or false if not contains.
85
+ # @param element [Integer]
86
+ # @return [Boolean]
87
+ # @raise [IllegalArgumentError] when element is invalid
88
+ def contains?(element)
89
+ validate_element!(element)
90
+
91
+ floor_range = @tree_map.floor_entry(element)
92
+ !floor_range.nil? && floor_range[1] > element
93
+ end
94
+
84
95
  def each(&block)
85
96
  @tree_map.each(&block)
86
97
  end
@@ -105,4 +116,9 @@ class RangeList
105
116
  def validate_empty_range?(range)
106
117
  range[0] >= range[1]
107
118
  end
119
+
120
+ def validate_element!(element)
121
+ raise IllegalArgumentError, "element cannot be nil" if element.nil?
122
+ raise IllegalArgumentError, "element must be Integer type" unless element.is_a?(Integer)
123
+ end
108
124
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: range_list_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - songzheng
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-07 00:00:00.000000000 Z
11
+ date: 2022-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rbtree