fractional_indexer 0.3.0 → 0.3.1

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: c6ee81d4e4b26c262bb862ec3b52558808d483bfb67fdb4c32889a7b3cc6c822
4
- data.tar.gz: 2bd077740a8272885e6703f04abdc1361f3171c43156a59794b40bada2c608fd
3
+ metadata.gz: 0d3588d2624cbc372dd3013729e5543eeabf9ab227005bf5c7a02e59360d7dcb
4
+ data.tar.gz: 1b11cf313ea2e71ed55bab5f394fcab8d1797e08b7a86df7012bcfafe43d0f68
5
5
  SHA512:
6
- metadata.gz: 7cc2e6cc619a29bcb7cfae8c2fb6e2fbbda62ee17823b217717ac357e93de4bf24830fe3ffd98ce48ba5d19f293fb68d10df4bf4926b8619a61bcfd67be0f826
7
- data.tar.gz: ef547fa499d8bf94c57db52da6fb1b146fe6ce4ba4f14b24123c5e30e125da4e904605918dc314ec76dfebf60deff5af406ab50dbe096b1b24f288e39b4093c0
6
+ metadata.gz: d8735e7f53ea599b2a3cbfdaafd34cd2c854991c461d02b4383a7a47fb36ab956d9bbdbd80c0cf018ab668050133e0039c4e117e654cba77da2ee9fe964b70b9
7
+ data.tar.gz: 6b4c53291cb4fb77ebb3fb279531693a8b2c6c74dd1ad775e6bb69d19bd2e23d742a3316c9922df94dcaad24a3af0c260b14aa3caacf4b7f142844f1fb9537bc
@@ -39,9 +39,5 @@ module FractionalIndexer
39
39
  def borrow?(index)
40
40
  index == -1
41
41
  end
42
-
43
- def digits
44
- FractionalIndexer.configuration.digits
45
- end
46
42
  end
47
43
  end
@@ -39,9 +39,5 @@ module FractionalIndexer
39
39
  def carry_over?(index)
40
40
  index == digits.length
41
41
  end
42
-
43
- def digits
44
- FractionalIndexer.configuration.digits
45
- end
46
42
  end
47
43
  end
@@ -45,19 +45,15 @@ module FractionalIndexer
45
45
 
46
46
  private
47
47
 
48
- def digits
49
- FractionalIndexer.configuration.digits
50
- end
51
-
52
48
  def validate_positions!(prev_pos, next_pos)
53
- raise FractionalIndexerError, "prev_pos must be less than next_pos" if !next_pos.empty? && prev_pos >= next_pos
49
+ raise Error, "prev_pos must be less than next_pos" if !next_pos.empty? && prev_pos >= next_pos
54
50
 
55
51
  # NOTE
56
52
  # In a string, "0.3" and "0.30" are mathematically equivalent.
57
53
  # Therefore, a trailing "0" is prohibited.
58
54
  return unless prev_pos.end_with?(digits.first) || next_pos.end_with?(digits.first)
59
55
 
60
- raise FractionalIndexerError, "prev_pos and next_pos cannot end with #{digits.first}"
56
+ raise Error, "prev_pos and next_pos cannot end with #{digits.first}"
61
57
  end
62
58
  end
63
59
  end
@@ -64,10 +64,6 @@ module FractionalIndexer
64
64
 
65
65
  private
66
66
 
67
- def digits
68
- FractionalIndexer.configuration.digits
69
- end
70
-
71
67
  def integer_digits(key = self.key)
72
68
  if self.class.positive?(key)
73
69
  key.ord - "a".ord + INTEGER_BASE_DIGIT
@@ -83,7 +79,7 @@ module FractionalIndexer
83
79
  end
84
80
 
85
81
  def raise_error(description = nil)
86
- raise FractionalIndexerError, "invalid order key: '#{key}' description: #{description}"
82
+ raise Error, "invalid order key: '#{key}' description: #{description}"
87
83
  end
88
84
 
89
85
  def minimum_integer
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FractionalIndexer
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
@@ -2,17 +2,21 @@
2
2
 
3
3
  require "fractional_indexer/version"
4
4
 
5
- module FractionalIndexer
6
- autoload :Configuration, "fractional_indexer/configuration"
7
- autoload :Decrementer, "fractional_indexer/decrementer"
8
- autoload :Incrementer, "fractional_indexer/incrementer"
9
- autoload :Midpointer, "fractional_indexer/midpointer"
10
- autoload :OrderKey, "fractional_indexer/order_key"
5
+ require "fractional_indexer/configuration"
6
+ require "fractional_indexer/decrementer"
7
+ require "fractional_indexer/incrementer"
8
+ require "fractional_indexer/midpointer"
9
+ require "fractional_indexer/order_key"
11
10
 
12
- class FractionalIndexerError < StandardError; end
11
+ module FractionalIndexer
12
+ class Error < StandardError; end
13
13
 
14
14
  @configuration = Configuration.new
15
15
 
16
+ [Decrementer, Incrementer, Midpointer, OrderKey].each do |klass|
17
+ klass.send(:define_method, :digits) { FractionalIndexer.configuration.digits }
18
+ end
19
+
16
20
  def self.configure
17
21
  yield(configuration) if block_given?
18
22
 
@@ -26,10 +30,10 @@ module FractionalIndexer
26
30
  def self.generate_key(prev_key: nil, next_key: nil)
27
31
  return OrderKey.zero if prev_key.nil? && next_key.nil?
28
32
 
29
- raise FractionalIndexerError, "prev_key and next_key cannot be empty" if prev_key&.empty? || next_key&.empty?
33
+ raise Error, "prev_key and next_key cannot be empty" if prev_key&.empty? || next_key&.empty?
30
34
 
31
35
  if !prev_key.nil? && !next_key.nil? && prev_key >= next_key
32
- raise FractionalIndexerError, "#{prev_key} is not less than #{next_key}"
36
+ raise Error, "#{prev_key} is not less than #{next_key}"
33
37
  end
34
38
 
35
39
  prev_order_key = OrderKey.new(prev_key)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fractional_indexer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - kazu