recursive-open-struct 0.4.5 → 0.5.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4442ce9b9b12e7e7b187a2df666cf8018c97a30d
4
+ data.tar.gz: d869866022cbc4e3bc5f7ade8b2ed424010b0823
5
+ SHA512:
6
+ metadata.gz: 217c2af046ca66b67c2f35d513dcd05dd4e00255ec73a67f66b80acf8403c62919728cab7c255f0435cd1e7264c2e53cb57a1be1b79eacc4bb85fe0b91ca27d5
7
+ data.tar.gz: f6a6aa2438f32e8f3d4021ddecd1547915702e00599475dff6e6ce6bfb23f9191f4f2400057531abfb455a0e6b1710cc184fc2884c21e9afcacca931bd13dc40
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ language: ruby
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.0.0
6
+ - 2.1.0
7
+ - jruby-19mode
@@ -1,7 +1,7 @@
1
1
  require 'ostruct'
2
2
 
3
3
  class RecursiveOpenStruct < OpenStruct
4
- VERSION = "0.4.5"
4
+ VERSION = "0.5.0"
5
5
 
6
6
  def initialize(h=nil, args={})
7
7
  @recurse_over_arrays = args.fetch(:recurse_over_arrays,false)
@@ -21,6 +21,8 @@ class RecursiveOpenStruct < OpenStruct
21
21
  end
22
22
  end
23
23
 
24
+ alias_method :to_hash, :to_h
25
+
24
26
  def new_ostruct_member(name)
25
27
  name = name.to_sym
26
28
  unless self.respond_to?(name)
@@ -36,5 +36,6 @@ Gem::Specification.new do |s|
36
36
  s.add_development_dependency(%q<rspec>, [">= 0"])
37
37
  s.add_development_dependency(%q<bundler>, [">= 0"])
38
38
  s.add_development_dependency(%q<rdoc>, [">= 0"])
39
+ s.add_development_dependency(%q<rake>, [">= 0"])
39
40
  end
40
41
 
@@ -48,9 +48,11 @@ describe RecursiveOpenStruct do
48
48
 
49
49
  describe "improvements on OpenStruct" do
50
50
  it "can be converted back to a hash" do
51
- h = { :asdf => 'John Smith' }
51
+ blank_obj = Object.new
52
+ h = {:asdf => 'John Smith', :foo => [{:bar => blank_obj}, {:baz => nil}]}
52
53
  ros = RecursiveOpenStruct.new(h)
53
54
  ros.to_h.should == h
55
+ ros.to_hash.should == h
54
56
  end
55
57
  end
56
58
 
@@ -237,7 +239,7 @@ QUOTE
237
239
 
238
240
  it "creates nested objects via subclass" do
239
241
  RecursiveOpenStructSubClass = Class.new(RecursiveOpenStruct)
240
-
242
+
241
243
  rossc = RecursiveOpenStructSubClass.new({ :one => [{:two => :three}] }, recurse_over_arrays: true)
242
244
 
243
245
  rossc.one.first.class.should == RecursiveOpenStructSubClass
data/spec/spec_helper.rb CHANGED
@@ -12,5 +12,7 @@ end
12
12
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
13
13
 
14
14
  RSpec.configure do |config|
15
-
15
+ config.treat_symbols_as_metadata_keys_with_true_values = true
16
+ config.run_all_when_everything_filtered = true
17
+ config.filter_run :focus
16
18
  end
metadata CHANGED
@@ -1,69 +1,82 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recursive-open-struct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
5
- prerelease:
4
+ version: 0.5.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - William (B.J.) Snow Orvis
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-10-24 00:00:00.000000000 Z
11
+ date: 2014-06-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: bundler
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rdoc
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
- description: ! "RecursiveOpenStruct is a subclass of OpenStruct. It differs from\nOpenStruct
63
- in that it allows nested hashes to be treated in a recursive\nfashion. For example:\n\n
64
- \ ros = RecursiveOpenStruct.new({ :a => { :b => 'c' } })\n ros.a.b # 'c'\n\nAlso,
65
- nested hashes can still be accessed as hashes:\n\n ros.a_as_a_hash # { :b =>
66
- 'c' }\n"
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: |
70
+ RecursiveOpenStruct is a subclass of OpenStruct. It differs from
71
+ OpenStruct in that it allows nested hashes to be treated in a recursive
72
+ fashion. For example:
73
+
74
+ ros = RecursiveOpenStruct.new({ :a => { :b => 'c' } })
75
+ ros.a.b # 'c'
76
+
77
+ Also, nested hashes can still be accessed as hashes:
78
+
79
+ ros.a_as_a_hash # { :b => 'c' }
67
80
  email: aetherknight@gmail.com
68
81
  executables: []
69
82
  extensions: []
@@ -74,6 +87,7 @@ files:
74
87
  - .document
75
88
  - .gitignore
76
89
  - .rspec
90
+ - .travis.yml
77
91
  - Gemfile
78
92
  - LICENSE.txt
79
93
  - README.rdoc
@@ -86,27 +100,26 @@ files:
86
100
  homepage: http://github.com/aetherknight/recursive-open-struct
87
101
  licenses:
88
102
  - MIT
103
+ metadata: {}
89
104
  post_install_message:
90
105
  rdoc_options: []
91
106
  require_paths:
92
107
  - lib
93
108
  required_ruby_version: !ruby/object:Gem::Requirement
94
- none: false
95
109
  requirements:
96
- - - ! '>='
110
+ - - '>='
97
111
  - !ruby/object:Gem::Version
98
112
  version: '0'
99
113
  required_rubygems_version: !ruby/object:Gem::Requirement
100
- none: false
101
114
  requirements:
102
- - - ! '>='
115
+ - - '>='
103
116
  - !ruby/object:Gem::Version
104
117
  version: '0'
105
118
  requirements: []
106
119
  rubyforge_project:
107
- rubygems_version: 1.8.23
120
+ rubygems_version: 2.0.14
108
121
  signing_key:
109
- specification_version: 3
122
+ specification_version: 4
110
123
  summary: OpenStruct subclass that returns nested hash attributes as RecursiveOpenStructs
111
124
  test_files:
112
125
  - spec/recursive_open_struct_spec.rb