hellobase 0.1.2 → 0.1.3

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: 3582720f27ecdb616e05b23036ea46c292ff4fbfb76571f2ea812d72b8e317c7
4
- data.tar.gz: 887553284b96cf0a8b6b8b42e86261dc436a739c6660bf37095944a7159ccfa2
3
+ metadata.gz: 1f9ca937930f71388e8a138668e51b733ff4c7936cfe9426d0537644466ce235
4
+ data.tar.gz: 3801d7247a328ef35175d102247a035e6ba5eeb3d25d89e901b066abe6b8b040
5
5
  SHA512:
6
- metadata.gz: 971b8b131879deef0ae9b667a730d17059d64560524019edd313f3e1d8a3d2cb9ab33183c91781ae8ad108ceef61c5d5b160eaddc4f801dfdd56ddfe92255b15
7
- data.tar.gz: 642626d5e88e24a377e46dbb3f49098be9cda15b2046461f11252340f3e63454d8e897fc6735571deed29753aa35665a44af23f3b1296be9795b9f30dd23fb2a
6
+ metadata.gz: f607d4f547e991197c938a653eb0b08d3f3e0cb0a746f5a307a7369b75fd7d7a7b10181e508b36f0d93ed1f159ccb6122c84d825537a034dfae4d84c67849407
7
+ data.tar.gz: ad15c1ea31b58a10747f0e42f878dbafb5608d4be9dfba33209501ecc5fc961da9a80d2b69ef86f8ba15b116e64b55011b8ad12a517f5fbd95a34bd2eb242fbe
@@ -0,0 +1,26 @@
1
+ class Array
2
+ def hb_elem(hb_index)
3
+ raise Hellobase::Error.new(:array_index, self, hb_index) unless index = hb_convert_index(hb_index)
4
+
5
+ self[index]
6
+ end
7
+
8
+ def hb_elem_range(hb_start_index, hb_end_index)
9
+ unless (start_index = hb_convert_index(hb_start_index)) && (end_index = hb_convert_index(hb_end_index)) && (end_index >= start_index)
10
+ raise Hellobase::Error.new(:array_index, self, hb_start_index, hb_end_index)
11
+ end
12
+
13
+ self[start_index..end_index]
14
+ end
15
+
16
+ private
17
+
18
+ def hb_convert_index(hb_index)
19
+ return nil if hb_index == 0
20
+
21
+ index = hb_index > 0 ? hb_index - 1 : length + hb_index
22
+ return nil if index < 0 || index > length - 1
23
+
24
+ index
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ class String
2
+ def hb_char(hb_index)
3
+ raise Hellobase::Error.new(:string_index, self, hb_index) unless index = hb_convert_index(hb_index)
4
+
5
+ self[index]
6
+ end
7
+
8
+ def hb_char_range(hb_start_index, hb_end_index)
9
+ unless (start_index = hb_convert_index(hb_start_index)) && (end_index = hb_convert_index(hb_end_index)) && (end_index >= start_index)
10
+ raise Hellobase::Error.new(:string_index, self, hb_start_index, hb_end_index)
11
+ end
12
+
13
+ self[start_index..end_index]
14
+ end
15
+
16
+ private
17
+
18
+ def hb_convert_index(hb_index)
19
+ return nil if hb_index == 0
20
+
21
+ index = hb_index > 0 ? hb_index - 1 : length + hb_index
22
+ return nil if index < 0 || index > length - 1
23
+
24
+ index
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module Hellobase
2
- VERSION = '0.1.2'
2
+ VERSION = '0.1.3'
3
3
  end
data/lib/hellobase.rb CHANGED
@@ -5,10 +5,11 @@ require 'active_support/core_ext/date_time'
5
5
  require 'active_support/duration'
6
6
  require 'tod'
7
7
 
8
- require 'hellobase/array_index'
8
+ require 'hellobase/array_access'
9
9
  require 'hellobase/date_creation'
10
10
  require 'hellobase/datetime_creation'
11
11
  require 'hellobase/divide_by_zero'
12
+ require 'hellobase/string_access'
12
13
  require 'hellobase/time_creation'
13
14
 
14
15
  module Hellobase
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hellobase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Wang
@@ -81,10 +81,11 @@ extra_rdoc_files: []
81
81
  files:
82
82
  - MIT-LICENSE
83
83
  - lib/hellobase.rb
84
- - lib/hellobase/array_index.rb
84
+ - lib/hellobase/array_access.rb
85
85
  - lib/hellobase/date_creation.rb
86
86
  - lib/hellobase/datetime_creation.rb
87
87
  - lib/hellobase/divide_by_zero.rb
88
+ - lib/hellobase/string_access.rb
88
89
  - lib/hellobase/time_creation.rb
89
90
  - lib/hellobase/version.rb
90
91
  homepage:
@@ -1,9 +0,0 @@
1
- class Array
2
- def hb_elem(hb_index)
3
- raise Hellobase::Error.new(:array_index, self, hb_index) if hb_index == 0
4
- index = hb_index > 0 ? hb_index - 1 : hb_index
5
-
6
- raise Hellobase::Error.new(:array_index, self, hb_index) if (index >= 0 && index > length - 1) || (index < 0 && (-1 * index > length))
7
- self[index]
8
- end
9
- end