hashstruct 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/hashstruct.rb +6 -3
  3. metadata +9 -11
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 2b3409cfc4f6bbdc9e8c6419da0886c96ee9e18b2ac7a1664d7cfdfff505e883
4
+ data.tar.gz: 9ec4f2a13067016073949b2e32da7db3dae3149853133c0141d88ece942dbb00
5
+ SHA512:
6
+ metadata.gz: 9ab5c46ed27d3b0a642fb24e5e895ba8b7d2859e5adbe431622729f5bc5fccea57ee052a1bd6dfb627a8a75ddea5e365d809b46d55309892b47e6f52bf4c9ee0
7
+ data.tar.gz: f2cbba2f9c8ea8ca9eed54b1925863151ac9b3b9c54d1440dd57544554ac2ee4ef4ca91279d091821c196e2d9136dd2821c186f66e5d32241a446a54b1133c23
data/lib/hashstruct.rb CHANGED
@@ -3,7 +3,7 @@ require 'uri'
3
3
 
4
4
  class HashStruct < Hash
5
5
 
6
- VERSION = '1.0.0'
6
+ VERSION = '1.0.1'
7
7
 
8
8
  def initialize(args={})
9
9
  super()
@@ -60,6 +60,9 @@ class HashStruct < Hash
60
60
  # percent
61
61
  when %r{^-?[\d,]+(\.\d+)?%$}
62
62
  obj.to_f / 100
63
+ # rational
64
+ when %r{^(\d+)/(\d+)$}
65
+ Rational($1.to_i, $2.to_i)
63
66
  # date
64
67
  when %r{^\d{4}-\d{2}-\d{2}}, # 2010-06-06
65
68
  %r{^\d{1,2}/\d{1,2}/\d{4}}, # 06/06/2010
@@ -67,10 +70,10 @@ class HashStruct < Hash
67
70
  %r{^(Sun|Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s*\d*\s*\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\b} # Sun, 06 Jun 2010 23:02:25 GMT
68
71
  DateTime.parse(obj)
69
72
  # boolean true
70
- when 'true'
73
+ when 'true', 'yes', 'on'
71
74
  true
72
75
  # boolean false
73
- when 'false'
76
+ when 'false', 'no', 'off'
74
77
  false
75
78
  else
76
79
  obj
metadata CHANGED
@@ -1,17 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hashstruct
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
4
+ version: 1.0.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - John Labovitz
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-13 00:00:00.000000000 Z
11
+ date: 2017-12-15 00:00:00.000000000 Z
13
12
  dependencies: []
14
- description: ! "\n HashStruct provides an object based on Hash, but acts like Struct
13
+ description: "\n HashStruct provides an object based on Hash, but acts like Struct
15
14
  (or OpenStruct), providing helpful\n accessors for each key from the get-go.
16
15
  It also magically parses string values when it can (eg, dates,\n URIs, numbers,
17
16
  and does so recursively.\n "
@@ -20,30 +19,29 @@ executables: []
20
19
  extensions: []
21
20
  extra_rdoc_files: []
22
21
  files:
23
- - lib/hashstruct.rb
24
22
  - README.mdown
23
+ - lib/hashstruct.rb
25
24
  homepage: http://github.com/jslabovitz/hashstruct
26
25
  licenses: []
26
+ metadata: {}
27
27
  post_install_message:
28
28
  rdoc_options: []
29
29
  require_paths:
30
30
  - lib
31
31
  required_ruby_version: !ruby/object:Gem::Requirement
32
- none: false
33
32
  requirements:
34
- - - ! '>='
33
+ - - ">="
35
34
  - !ruby/object:Gem::Version
36
35
  version: '0'
37
36
  required_rubygems_version: !ruby/object:Gem::Requirement
38
- none: false
39
37
  requirements:
40
- - - ! '>='
38
+ - - ">="
41
39
  - !ruby/object:Gem::Version
42
40
  version: '0'
43
41
  requirements: []
44
42
  rubyforge_project:
45
- rubygems_version: 1.8.25
43
+ rubygems_version: 2.7.3
46
44
  signing_key:
47
- specification_version: 3
45
+ specification_version: 4
48
46
  summary: Overly helpful magic hash structure.
49
47
  test_files: []