hashstruct 1.5 → 1.6

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: ef62c5e766986486e0eae763c0f1bef12da2b6a52bbe7d272f67467a0aee3eba
4
- data.tar.gz: 10e99235757740e723af33d73811c25d434535a57be1f632a750cfde6c0032e8
3
+ metadata.gz: 9bb8d396bd6c95aa68e0ab3a1e72630a4a7f7cece09984911c6e6273da3289e6
4
+ data.tar.gz: 4651160714c6568b2d966d4ff30c63ed7e32edef530755b9d3001ac7546f768e
5
5
  SHA512:
6
- metadata.gz: e9dea5dfff5fce6eaa30717d47015a44cc9d71435dd720932d3f28f617fd861352558db9197ade43d71a415ca8e9c39a150aee3d62503a5e63e42ad0f56696dd
7
- data.tar.gz: 72edc59eb48835375aefe3cbfdbc9e6dcd779f67a78281ec141d53414dc9ed71f317cee03190f097a935c8f4fb64fadf892cb0b3b02f970ec748284c7f4a89d3
6
+ metadata.gz: b91e83cc287829c842eca701a00d15c89682424d982db9886d4c2afa764aa0e1894809af8e38d9381d41fe3d58c0109c669a7e75d1f225613053cf01d3cd23a9
7
+ data.tar.gz: e50e44520b166fe639c6fa1b81815dab7b53e49ddea3265c934f07b1b762208d1a412045e27e8121b4c2b91294a6a03398de85f343da3317d9e673b42fa3fe53
data/hashstruct.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'hashstruct'
3
- s.version = '1.5'
3
+ s.version = '1.6'
4
4
  s.summary = 'Overly helpful magic hash structure.'
5
5
  s.author = 'John Labovitz'
6
6
  s.email = 'johnl@johnlabovitz.com'
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.require_path = 'lib'
18
18
 
19
19
  s.add_development_dependency 'bundler', '~> 2.5'
20
- s.add_development_dependency 'minitest', '~> 5.20'
20
+ s.add_development_dependency 'minitest', '~> 5.22'
21
21
  s.add_development_dependency 'minitest-power_assert', '~> 0.3'
22
- s.add_development_dependency 'rake', '~> 13.1'
22
+ s.add_development_dependency 'rake', '~> 13.2'
23
23
  end
data/lib/hashstruct.rb CHANGED
@@ -41,16 +41,16 @@ class HashStruct < Hash
41
41
  when %r{^(ftp|http|https|mailto):}
42
42
  URI.parse(obj) rescue obj
43
43
  # integer
44
- when %r{^-?[1-9][\d,]*$}
45
- obj.gsub(/,/, '').to_i
44
+ when %r{^-?[1-9]\d*$}
45
+ obj.to_i
46
46
  # hex integer
47
47
  when %r{^0x[0-9a-f]+$}i
48
48
  obj.hex
49
49
  # float
50
- when %r{^-?[\d,]+\.\d+$}
51
- obj.gsub(/,/, '').to_f
50
+ when %r{^-?\d+\.\d+$}
51
+ obj.to_f
52
52
  # percent
53
- when %r{^-?[\d,]+(\.\d+)?%$}
53
+ when %r{^-?\d+(\.\d+)?%$}
54
54
  obj.to_f / 100
55
55
  # rational
56
56
  when %r{^(\d+)/(\d+)$}
data/test/test.rb CHANGED
@@ -10,6 +10,8 @@ class Test < Minitest::Test
10
10
  @h = HashStruct.new(
11
11
  date1: '2017-11-01',
12
12
  'Date-Time' => '2023-12-23T13:20:00-05:00',
13
+ number: '1',
14
+ string: '1,2',
13
15
  )
14
16
  end
15
17
 
@@ -20,4 +22,11 @@ class Test < Minitest::Test
20
22
  assert { d2.kind_of?(Date) }
21
23
  end
22
24
 
25
+ def test_number
26
+ number = @h.number
27
+ assert { number.kind_of?(Numeric) }
28
+ string = @h.string
29
+ assert { string.kind_of?(String) }
30
+ end
31
+
23
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hashstruct
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.5'
4
+ version: '1.6'
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Labovitz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-23 00:00:00.000000000 Z
11
+ date: 2024-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '5.20'
33
+ version: '5.22'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '5.20'
40
+ version: '5.22'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest-power_assert
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '13.1'
61
+ version: '13.2'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '13.1'
68
+ version: '13.2'
69
69
  description: "\n HashStruct provides an object based on Hash, but acts like Struct
70
70
  (or OpenStruct), providing helpful\n accessors for each key from the get-go.
71
71
  It also magically parses string values when it can (eg, dates,\n URIs, numbers,
@@ -101,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  requirements: []
104
- rubygems_version: 3.5.3
104
+ rubygems_version: 3.5.10
105
105
  signing_key:
106
106
  specification_version: 4
107
107
  summary: Overly helpful magic hash structure.