simple_struct 0.0.3 → 0.0.4

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.
Files changed (2) hide show
  1. data/lib/simple_struct.rb +12 -2
  2. metadata +3 -3
data/lib/simple_struct.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  class SimpleStruct
2
2
 
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
 
5
5
  def self.new *members, &block
6
6
  subclass = Class.new(self)
7
- subclass.define_singleton_method(:new, self.superclass.method(:new))
7
+ subclass.define_singleton_method(:new, Object.method(:new))
8
8
  subclass.define_singleton_method(:members){ members }
9
9
  subclass.class_eval(&block) if block_given?
10
10
  subclass
@@ -35,6 +35,11 @@ eval <<-RUBY if $0 == __FILE__
35
35
 
36
36
  require 'test/unit'
37
37
 
38
+ class ComplexStruct < SimpleStruct
39
+ end
40
+
41
+ class GrowAFlower < ComplexStruct.new(:type, :count)
42
+ end
38
43
 
39
44
  class MethodObjectTestUnitTestCase < Test::Unit::TestCase
40
45
 
@@ -53,6 +58,11 @@ class MethodObjectTestUnitTestCase < Test::Unit::TestCase
53
58
  assert car_instance.is_a?(SimpleStruct), "Car is not a SimpleStruct"
54
59
  end
55
60
 
61
+ def test_SimpleStruct_Subclass
62
+ assert_equal GrowAFlower.inspect, "GrowAFlower(type, count)"
63
+ assert_equal GrowAFlower.new(:rose, 12).inspect, "#<GrowAFlower: type=:rose, count=12>"
64
+ end
65
+
56
66
  end
57
67
 
58
68
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_struct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -39,7 +39,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
39
39
  version: '0'
40
40
  segments:
41
41
  - 0
42
- hash: -157132864368385867
42
+ hash: 3964948240972837749
43
43
  required_rubygems_version: !ruby/object:Gem::Requirement
44
44
  none: false
45
45
  requirements:
@@ -48,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
48
  version: '0'
49
49
  segments:
50
50
  - 0
51
- hash: -157132864368385867
51
+ hash: 3964948240972837749
52
52
  requirements: []
53
53
  rubyforge_project:
54
54
  rubygems_version: 1.8.24