jimmy 0.2 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jimmy/schema_creation.rb +11 -5
- data/lib/jimmy/schema_type.rb +8 -1
- data/lib/jimmy/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b145c1cfe4c89af444c4b4244125acf8cc7976d
|
4
|
+
data.tar.gz: 6cf8d0705db84c4da118d22f359b823eec1a294c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b790bbe36cf3350c930f3f958d065b614a768b7ca6eaddbacfb97a5207981b5bfc8a5de0fd8eb7f5a8516f97385d7f8ee00ebf33ac695415da40d34f091a838d
|
7
|
+
data.tar.gz: 0062dea3b6fdf538e052d37cd7e25292bc19ce9eac5668bcbcee68f1f8111b55d90b4942e5068cb346e63a0c319dca9741368a5ff2dbf795ddaa36839902431e
|
@@ -28,17 +28,16 @@ module Jimmy
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def with_locals(**locals)
|
31
|
-
|
31
|
+
locals.each_key do |key|
|
32
|
+
raise "Local '#{key}' conflicts with an existing DSL method" if reserved? key
|
33
|
+
end
|
32
34
|
original = locals
|
33
35
|
@locals = original.merge(locals)
|
34
36
|
yield.tap { @locals = original }
|
35
37
|
end
|
36
38
|
|
37
39
|
def respond_to_missing?(method, *)
|
38
|
-
locals.key?(method) ||
|
39
|
-
SchemaTypes.key?(method) ||
|
40
|
-
domain.types.key?(method) ||
|
41
|
-
super
|
40
|
+
locals.key?(method) || reserved?(method, false) || super
|
42
41
|
end
|
43
42
|
|
44
43
|
def method_missing(method, *args, &block)
|
@@ -64,6 +63,13 @@ module Jimmy
|
|
64
63
|
super method, *args, &block
|
65
64
|
end
|
66
65
|
|
66
|
+
private
|
67
|
+
|
68
|
+
def reserved?(key, all = true)
|
69
|
+
domain.autoload_type key
|
70
|
+
(all && respond_to?(key)) || SchemaTypes.key?(key) || domain.types.key?(key)
|
71
|
+
end
|
72
|
+
|
67
73
|
end
|
68
74
|
|
69
75
|
end
|
data/lib/jimmy/schema_type.rb
CHANGED
@@ -62,11 +62,18 @@ module Jimmy
|
|
62
62
|
def include(*partial_names, **locals)
|
63
63
|
partial_names.each do |name|
|
64
64
|
with_locals locals do
|
65
|
-
|
65
|
+
evaluate_partial domain.partials[name.to_s]
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
+
private
|
71
|
+
|
72
|
+
# Minimize collisions with local scope (hence the weird name __args)
|
73
|
+
def evaluate_partial(__args)
|
74
|
+
instance_eval *__args
|
75
|
+
end
|
76
|
+
|
70
77
|
end
|
71
78
|
|
72
79
|
end
|
data/lib/jimmy/version.rb
CHANGED