that_object_is_so_basic 0.0.5 → 0.0.6
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.
- checksums.yaml +4 -4
- data/lib/toisb/version.rb +1 -1
- data/lib/toisb/wrapper.rb +6 -6
- data/uspec/wrapper_spec.rb +39 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 684f1d9c560b6d9549f1625421ccfe97fb11fbe10f5fbdfdf74e6478050c1208
|
4
|
+
data.tar.gz: bb7efa230a19cf8853639d41fa36f215a83bcd140b6d25680f8b160a47482a3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0625d4f1db9df617b71fccdd629ee211e0677aa6c43482bfa5b5197047c02d904760f936ba845b9ba9f9f989f8d8434d6cebc82364341ae422515493d20a055e
|
7
|
+
data.tar.gz: 608677245d2af0a735cf7a23c8cf4a1052b2e9701a18a090b070c71af8830dbeb2739b96b6f0bede20195e3d4b473da1d84a26936f8e6b206d57aa6c55692050
|
data/lib/toisb/version.rb
CHANGED
data/lib/toisb/wrapper.rb
CHANGED
@@ -25,7 +25,7 @@ module TOISB; class Wrapper
|
|
25
25
|
# show a nicely formated version of the class and its superclass
|
26
26
|
# displays it in the style of a path, with the superclass as the parent directory
|
27
27
|
def klassinfo
|
28
|
-
[superklass, klass].compact.join "/"
|
28
|
+
[superklass, klass].compact.map(&:name).join "/"
|
29
29
|
end
|
30
30
|
|
31
31
|
# show a nicely formated version of the class and its superclass
|
@@ -44,19 +44,19 @@ module TOISB; class Wrapper
|
|
44
44
|
@ancestors ||= singleton.ancestors
|
45
45
|
end
|
46
46
|
|
47
|
-
# Collects only the ancestors which are Classes
|
47
|
+
# Collects only the ancestors which are Classes and not Modules or singleton classes
|
48
48
|
def ancestor_klasses
|
49
|
-
@ancestor_klasses ||= ancestors.select {|a| Class === a }
|
49
|
+
@ancestor_klasses ||= ancestors.select {|a| Class === a && !a.singleton_class? }
|
50
50
|
end
|
51
51
|
|
52
|
-
# Returns the class of the object
|
52
|
+
# Returns the class of the object
|
53
53
|
def klass
|
54
|
-
@klass ||=
|
54
|
+
@klass ||= ancestor_klasses[0]
|
55
55
|
end
|
56
56
|
|
57
57
|
# Returns the superclass of the object
|
58
58
|
def superklass
|
59
|
-
|
59
|
+
@superklass ||= ancestor_klasses[1]
|
60
60
|
end
|
61
61
|
|
62
62
|
# Gets the object ID of an object
|
data/uspec/wrapper_spec.rb
CHANGED
@@ -5,6 +5,9 @@ obj = ::TestObject.new
|
|
5
5
|
toisb = TOISB.wrap obj
|
6
6
|
|
7
7
|
bowrap = TOISB.wrap BasicObject.new
|
8
|
+
arraywrap = TOISB.wrap(Array)
|
9
|
+
anonwrap = TOISB.wrap(Class.new Class.new)
|
10
|
+
modwrap = TOISB.wrap(Module.new)
|
8
11
|
|
9
12
|
spec "can inspect BasicObject subclasses" do
|
10
13
|
expected = "BasicObject/TestObject"
|
@@ -85,3 +88,39 @@ spec "generates correct subklassinfo for BasicObject subclasses" do
|
|
85
88
|
actual = toisb.subklassinfo
|
86
89
|
actual == expected || actual
|
87
90
|
end
|
91
|
+
|
92
|
+
spec "generates correct klassinfo for classes like Array" do
|
93
|
+
expected = "Module/Class"
|
94
|
+
actual = arraywrap.klassinfo
|
95
|
+
actual == expected || actual
|
96
|
+
end
|
97
|
+
|
98
|
+
spec "generates correct subklassinfo for classes like Array" do
|
99
|
+
expected = "Class < Module"
|
100
|
+
actual = arraywrap.subklassinfo
|
101
|
+
actual == expected || actual
|
102
|
+
end
|
103
|
+
|
104
|
+
spec "generates correct klassinfo for anonymous classes" do
|
105
|
+
expected = "Module/Class"
|
106
|
+
actual = anonwrap.klassinfo
|
107
|
+
actual == expected || actual
|
108
|
+
end
|
109
|
+
|
110
|
+
spec "generates correct subklassinfo for anonymous classes" do
|
111
|
+
expected = "Class < Module"
|
112
|
+
actual = anonwrap.subklassinfo
|
113
|
+
actual == expected || actual
|
114
|
+
end
|
115
|
+
|
116
|
+
spec "generates correct klassinfo for anonymous modules" do
|
117
|
+
expected = "Object/Module"
|
118
|
+
actual = modwrap.klassinfo
|
119
|
+
actual == expected || actual
|
120
|
+
end
|
121
|
+
|
122
|
+
spec "generates correct subklassinfo for anonymous modules" do
|
123
|
+
expected = "Module < Object"
|
124
|
+
actual = modwrap.subklassinfo
|
125
|
+
actual == expected || actual
|
126
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: that_object_is_so_basic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony M. Cook
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: uspec
|