recursive-open-struct 0.4.5 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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