hashugar 0.0.1 → 0.0.2

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.
data/README.md CHANGED
@@ -11,10 +11,10 @@ Usage
11
11
 
12
12
  -----
13
13
  ```ruby
14
- hashugar = {:a => 1, 'b' => {:c => 3}}.to_hashugar
14
+ hashugar = {:a => 1, 'b' => {:c => 2, :d => [3, 4, {:e => 5}]}}.to_hashugar
15
15
  hashugar.a # => 1
16
- hashugar.b # => 2
17
- hashugar.b.c # => 3
16
+ hashugar.b.c # => 2
17
+ hashugar.b.d.last.e # => 5
18
18
  ```
19
19
 
20
20
  How fast is it?
@@ -1,3 +1,3 @@
1
1
  class Hashugar
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/hashugar.rb CHANGED
@@ -48,6 +48,13 @@ class Hash
48
48
  end
49
49
  end
50
50
 
51
+ class Array
52
+ def to_hashugar
53
+ # TODO lazy?
54
+ Array.new(collect(&:to_hashugar))
55
+ end
56
+ end
57
+
51
58
  class Object
52
59
  def to_hashugar
53
60
  self
@@ -49,4 +49,12 @@ describe Hashugar do
49
49
  hashugar.a.b.should == 1
50
50
  end
51
51
  end
52
+
53
+ context 'when accessing hashes in array' do
54
+ it 'should return hashugars' do
55
+ hashugar = [{:a => 1}, {:b => 2}].to_hashugar
56
+ hashugar[0].a.should == 1
57
+ hashugar.last.b.should == 2
58
+ end
59
+ end
52
60
  end
metadata CHANGED
@@ -1,75 +1,56 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: hashugar
3
- version: !ruby/object:Gem::Version
4
- hash: 856480538658449761
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 1
10
- version: 0.0.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jan Suchal
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-12-07 00:00:00 +01:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-12-07 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: rspec
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70199714654940 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 2002549777813010636
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: benchmark_suite
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70199714654940
25
+ - !ruby/object:Gem::Dependency
26
+ name: benchmark_suite
27
+ requirement: &70199714654440 !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 2002549777813010636
44
- segments:
45
- - 0
46
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
47
33
  type: :development
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: ffi
51
34
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70199714654440
36
+ - !ruby/object:Gem::Dependency
37
+ name: ffi
38
+ requirement: &70199714653920 !ruby/object:Gem::Requirement
53
39
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 2002549777813010636
58
- segments:
59
- - 0
60
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
61
44
  type: :development
62
- version_requirements: *id003
45
+ prerelease: false
46
+ version_requirements: *70199714653920
63
47
  description: Nested OpenStruct optimized for short-lived objects.
64
- email:
48
+ email:
65
49
  - johno@jsmf.net
66
50
  executables: []
67
-
68
51
  extensions: []
69
-
70
52
  extra_rdoc_files: []
71
-
72
- files:
53
+ files:
73
54
  - .gitignore
74
55
  - .rvmrc
75
56
  - Gemfile
@@ -81,40 +62,30 @@ files:
81
62
  - lib/hashugar/version.rb
82
63
  - spec/hashugar_spec.rb
83
64
  - spec/spec_helper.rb
84
- has_rdoc: true
85
65
  homepage: http://github.com/jsuchal/hashugar
86
66
  licenses: []
87
-
88
67
  post_install_message:
89
68
  rdoc_options: []
90
-
91
- require_paths:
69
+ require_paths:
92
70
  - lib
93
- required_ruby_version: !ruby/object:Gem::Requirement
71
+ required_ruby_version: !ruby/object:Gem::Requirement
94
72
  none: false
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- hash: 2002549777813010636
99
- segments:
100
- - 0
101
- version: "0"
102
- required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
78
  none: false
104
- requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- hash: 2002549777813010636
108
- segments:
109
- - 0
110
- version: "0"
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
111
83
  requirements: []
112
-
113
84
  rubyforge_project:
114
- rubygems_version: 1.5.2
85
+ rubygems_version: 1.8.10
115
86
  signing_key:
116
87
  specification_version: 3
117
88
  summary: Fast Nested OpenStruct
118
- test_files:
89
+ test_files:
119
90
  - spec/hashugar_spec.rb
120
91
  - spec/spec_helper.rb