object_struct 0.0.8 → 0.0.9

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/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.0.9 (October 8, 2010)
2
+
3
+ Update property_type class method to examine module environment too.
4
+
1
5
  ## 0.0.8 (October 8, 2010)
2
6
 
3
7
  Convert array elements from hash into class instances within the current class' module
@@ -49,7 +49,8 @@ class ObjectStruct < OpenStruct
49
49
  plural = options.delete(:plural)
50
50
  property, type = *options.first
51
51
  class_name = plural ? property.to_s.classify : property.to_s.camelize
52
- Object.const_set class_name, Class.new(type)
52
+ klass = (name.split('::')[0..-2]).join('::').constantize rescue Object
53
+ klass.const_set class_name, Class.new(type)
53
54
  end
54
55
 
55
56
  # Create a new ObjectStruct.
@@ -0,0 +1,22 @@
1
+ # ---------------------------------------------------------------------------
2
+ # Copyright 2010, Quid, Inc.
3
+ #
4
+ # object_struct is free software: you can redistribute it and/or modify
5
+ # it under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation, either version 3 of the License, or
7
+ # (at your option) any later version.
8
+ #
9
+ # object_struct is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with object_struct. If not, see <http://www.gnu.org/licenses/>.
16
+ #
17
+ # ---------------------------------------------------------------------------
18
+ require 'ostruct'
19
+
20
+ class ObjectStruct < OpenStruct
21
+ VERSION = '0.0.9'
22
+ end
@@ -1,4 +1,4 @@
1
- $:.unshift(File.dirname(__FILE__) + '/../lib')
1
+ $:.unshift File.expand_path('../../lib', __FILE__)
2
2
 
3
3
  require 'minitest/autorun'
4
4
  require 'json'
@@ -69,12 +69,12 @@ class ObjectStructTest < MiniTest::Unit::TestCase
69
69
  refute @widget.has_id?
70
70
  assert @widget.has_text?
71
71
  end
72
-
72
+
73
73
  def test_modulizes_array_class_names
74
74
  obj = {'sub_knobs' => [{'a' => 'a'}, {'b' => 'b'}, {'c' => 'c'}]}
75
75
  knobwizzle = KnobModule::Knobwizzle.convert(obj, 'KnobModule::Knobwizzle')
76
76
  assert knobwizzle.is_a?(KnobModule::Knobwizzle), "Knobwizzle is a #{knobwizzle.class.name}, not a KnobModule::Knobwizzle"
77
77
  assert knobwizzle.sub_knobs.all? {|sk| sk.is_a?(KnobModule::SubKnob)}, "sub_knobs are #{knobwizzle.sub_knobs.first.class.name}, not KnobModule::SubKnobs"
78
78
  end
79
-
79
+
80
80
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 8
9
- version: 0.0.8
8
+ - 9
9
+ version: 0.0.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - Quid, Inc.
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-10-08 00:00:00 -07:00
17
+ date: 2010-10-19 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -54,6 +54,7 @@ extra_rdoc_files: []
54
54
 
55
55
  files:
56
56
  - lib/object_struct/object_struct.rb
57
+ - lib/object_struct/version.rb
57
58
  - lib/object_struct.rb
58
59
  - test/test_data.json
59
60
  - test/test_object_struct.rb