typecollection 0.0.3 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.3
1
+ 0.0.7
@@ -13,6 +13,17 @@ module TypeCollection
13
13
  raise TypeCollection::UnknownChildType.new() unless (mems.has_key?(type))
14
14
  return mems[type]
15
15
  end
16
+ # Get similar type based on the object passed in which can be a String,
17
+ # Object (using the inferred type), or Class
18
+ def get_associated_type(associate)
19
+ if (!associate.kind_of?(String))
20
+ if (!associate.kind_of?(Class))
21
+ associate = associate.class
22
+ end
23
+ associate = associate.inferred_type()
24
+ end
25
+ return self.get_type(associate)
26
+ end
16
27
  end
17
28
 
18
29
  def self.included(base)
@@ -1,18 +1,14 @@
1
1
  class Class
2
2
  def inferred_type()
3
- if (!defined?(@__tc_inferred_type))
4
- klass_name = self.name.split("::").last
5
- parent_klass = self.superclass
6
- while(parent_klass != nil)
7
- check = parent_klass.name.split("::").last
8
- if (klass_name.end_with?(check))
9
- @__tc_inferred_type = klass_name.gsub(/#{check}\z/, "")
10
- break
11
- end
12
- parent_klass = parent_klass.superclass
3
+ klass_name = self.name.split("::").last
4
+ parent_klass = self.superclass
5
+ while(parent_klass != nil)
6
+ check = parent_klass.name.split("::").last
7
+ if (klass_name.match(check))
8
+ return klass_name.gsub(check, "")
13
9
  end
14
- @__tc_inferred_type = nil
10
+ parent_klass = parent_klass.superclass
15
11
  end
16
- return @__tc_inferred_type
12
+ return nil
17
13
  end
18
14
  end
@@ -14,18 +14,6 @@ module TypeCollection
14
14
  # Contains the Members mapped by type
15
15
  def __tc_members(); @_members ||= { }; end
16
16
 
17
- # Get similar type based on the object passed in which can be a String,
18
- # Object (using the inferred type), or Class
19
- def get_associated_type(associate)
20
- if (!associate.kind_of?(String))
21
- if (!associate.kind_of?(Class))
22
- associate = associate.class
23
- end
24
- associate = associate.inferred_type()
25
- end
26
- return self.get_type(associate)
27
- end
28
-
29
17
  # Overrides the default behavior when being extended by a child class.
30
18
  # It ensures the child is mapped for future retrieval and checks the
31
19
  # subclass name to ensure it is a valid one
@@ -2,7 +2,7 @@ require 'helper'
2
2
 
3
3
  # => Define a Type Collection
4
4
  class SomeType
5
- include TypeCollection
5
+ include TypeCollection::Base
6
6
  end
7
7
  # => Extend that Type Collection
8
8
  class ExtendedSomeType < SomeType
@@ -13,7 +13,7 @@ class TestTypecollection < Test::Unit::TestCase
13
13
  should "Function inside packages" do
14
14
  # => Define a Type Collection
15
15
  class SomeType
16
- include TypeCollection
16
+ include TypeCollection::Base
17
17
  end
18
18
  # => Extend that Type Collection
19
19
  class ExtendedSomeType < TestTypecollection::SomeType
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "typecollection"
8
- s.version = "0.0.3"
8
+ s.version = "0.0.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["James Petty"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typecollection
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &70345819384440 !ruby/object:Gem::Requirement
16
+ requirement: &70276684879360 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70345819384440
24
+ version_requirements: *70276684879360
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &70345819382800 !ruby/object:Gem::Requirement
27
+ requirement: &70276684878260 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70345819382800
35
+ version_requirements: *70276684878260
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &70345819374820 !ruby/object:Gem::Requirement
38
+ requirement: &70276684877420 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70345819374820
46
+ version_requirements: *70276684877420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rcov
49
- requirement: &70345819373620 !ruby/object:Gem::Requirement
49
+ requirement: &70276684876720 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70345819373620
57
+ version_requirements: *70276684876720
58
58
  description: Easily map subtypes into their parent type for later retrieval
59
59
  email: jp@jibe.com
60
60
  executables: []
@@ -91,7 +91,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
91
  version: '0'
92
92
  segments:
93
93
  - 0
94
- hash: -1935067382157549222
94
+ hash: -1304574825924315228
95
95
  required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements: