typed-class 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/typed_class/typed_class.rb +5 -4
  2. metadata +3 -3
@@ -1,7 +1,6 @@
1
1
  class TypedClass
2
2
 
3
3
  @@map = {}
4
- @@metadata = nil
5
4
 
6
5
  def after_initialize
7
6
  metadata = @@map[self.class.to_s.to_sym]
@@ -15,6 +14,7 @@ class TypedClass
15
14
  ::TypedClassInternal::Util.assert_class(child, Class)
16
15
  ::TypedClassInternal::Util.check_state(child.superclass == TypedClass,
17
16
  "Class must extend TypedClass directly")
17
+
18
18
  @@metadata = @@map[child.to_s.to_sym]
19
19
  if @@metadata.nil?
20
20
  @@map[child.to_s.to_sym] = @@metadata = TypedClassInternal::Metadata.new(child)
@@ -28,7 +28,8 @@ class TypedClass
28
28
  end
29
29
 
30
30
  def TypedClass.field(attr_name, attr_klass, opts={})
31
- ::TypedClassInternal::Util.check_not_nil(@@metadata, "metadata not defined")
31
+ metadata = @@map[self.to_s.to_sym]
32
+ ::TypedClassInternal::Util.check_state(metadata, "No metadata for klass[%s]" % self)
32
33
  ::TypedClassInternal::Util.assert_class(attr_name, Symbol)
33
34
  default = opts.delete(:default)
34
35
  ::TypedClassInternal::Util.assert_empty_opts(opts)
@@ -49,8 +50,8 @@ class TypedClass
49
50
  "Required fields cannot have defaults. Class[%s] Field[%s] Default[%s]" % [klass.name, attr_name, default])
50
51
 
51
52
  attr = ::TypedClassInternal::Attribute.new(attr_name, klass, :default => default, :optional => optional)
52
- @@metadata.add_attribute(attr)
53
- TypedClass.rewrite_constructor(@@metadata)
53
+ metadata.add_attribute(attr)
54
+ TypedClass.rewrite_constructor(metadata)
54
55
  end
55
56
 
56
57
  def TypedClass.get_default(klass, attr_name)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typed-class
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 5
9
- - 0
10
- version: 0.5.0
9
+ - 1
10
+ version: 0.5.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Bryzek