yuki 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/VERSION +1 -1
- data/lib/yuki.rb +3 -4
- data/test/yuki_test.rb +23 -7
- data/yuki.rb +1 -1
- metadata +2 -2
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/yuki.rb
CHANGED
@@ -155,15 +155,14 @@ module Yuki
|
|
155
155
|
# or
|
156
156
|
# "Bar"
|
157
157
|
def resolve(cls_def)
|
158
|
-
if cls_def.
|
158
|
+
if cls_def.is_a? Hash
|
159
159
|
class_key = cls_def.keys.first
|
160
160
|
clazz = resolve(cls_def[class_key][:type])
|
161
|
-
resource = clazz.new(info[class_key]) if clazz
|
162
161
|
else
|
163
162
|
clazz = begin
|
164
|
-
cls_def.split("::").inject(Object) { |obj, const|
|
163
|
+
cls_def.to_s.split("::").inject(Object) { |obj, const|
|
165
164
|
obj.const_get(const)
|
166
|
-
} unless cls_def.strip.empty?
|
165
|
+
} unless cls_def.to_s.strip.empty?
|
167
166
|
rescue NameError => e
|
168
167
|
puts "given #{cls_def} got #{e.inspect}"
|
169
168
|
raise e
|
data/test/yuki_test.rb
CHANGED
@@ -81,6 +81,28 @@ class YukiTest < Test::Unit::TestCase
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
|
+
context "a module's type" do
|
85
|
+
module Moo
|
86
|
+
class Bar
|
87
|
+
include Yuki
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
should "be resolved given a hash with type attr" do
|
92
|
+
assert_equal Moo::Bar.resolve(
|
93
|
+
{
|
94
|
+
:class_id => {
|
95
|
+
:type => :"YukiTest::Moo::Bar"
|
96
|
+
}
|
97
|
+
}
|
98
|
+
), Moo::Bar
|
99
|
+
end
|
100
|
+
|
101
|
+
should "be resolved given a string representation of the classes name" do
|
102
|
+
assert_equal Moo::Bar.resolve("YukiTest::Moo::Bar"), Moo::Bar
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
84
106
|
context "a model's lifecyle operations" do
|
85
107
|
should "provide callbacks" do
|
86
108
|
|
@@ -105,13 +127,7 @@ class YukiTest < Test::Unit::TestCase
|
|
105
127
|
|
106
128
|
context "a model's serialized type" do
|
107
129
|
should "default to the model's class name" do
|
108
|
-
|
109
|
-
class Bar
|
110
|
-
include Yuki
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
assert "YukiTest::Foo::Bar", Foo::Bar.new.to_h['type']
|
130
|
+
assert "YukiTest::Moo::Bar", Moo::Bar.new.to_h['type']
|
115
131
|
end
|
116
132
|
end
|
117
133
|
|
data/yuki.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
$:
|
1
|
+
$: << File.join(File.dirname(__FILE__), 'lib')
|
2
2
|
require 'yuki'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yuki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- softprops
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-02 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|