typecollection 0.0.3 → 0.0.7
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/VERSION +1 -1
- data/lib/typecollection/base.rb +11 -0
- data/lib/typecollection/class+inferred_type.rb +8 -12
- data/lib/typecollection/class_methods.rb +0 -12
- data/test/test_typecollection.rb +2 -2
- data/typecollection.gemspec +1 -1
- metadata +10 -10
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.7
|
data/lib/typecollection/base.rb
CHANGED
@@ -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
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
-
|
10
|
+
parent_klass = parent_klass.superclass
|
15
11
|
end
|
16
|
-
return
|
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
|
data/test/test_typecollection.rb
CHANGED
@@ -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
|
data/typecollection.gemspec
CHANGED
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.
|
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: &
|
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: *
|
24
|
+
version_requirements: *70276684879360
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
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: *
|
35
|
+
version_requirements: *70276684878260
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: jeweler
|
38
|
-
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: *
|
46
|
+
version_requirements: *70276684877420
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rcov
|
49
|
-
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: *
|
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: -
|
94
|
+
hash: -1304574825924315228
|
95
95
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
97
|
requirements:
|