goat 0.3.17 → 0.3.18
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/goat.gemspec +1 -1
- data/lib/goat.rb +16 -4
- data/lib/goat/js/component.js +9 -1
- metadata +4 -4
data/goat.gemspec
CHANGED
data/lib/goat.rb
CHANGED
@@ -787,6 +787,8 @@ module Goat
|
|
787
787
|
StateSrvClient.register_page(@id, pg_spec)
|
788
788
|
end
|
789
789
|
|
790
|
+
def _dom; self.dom; end
|
791
|
+
|
790
792
|
def html_from_erb
|
791
793
|
html = self.erb(@erb, :layout => false)
|
792
794
|
end
|
@@ -796,7 +798,7 @@ module Goat
|
|
796
798
|
helper = ExpansionHelper.new
|
797
799
|
|
798
800
|
Dynamic.let(:expander => helper) do
|
799
|
-
exp = DOMTools.expanded_dom(self.
|
801
|
+
exp = DOMTools.expanded_dom(self._dom)
|
800
802
|
end
|
801
803
|
|
802
804
|
distiller = DOMDistiller.new(exp, helper.components)
|
@@ -1101,6 +1103,7 @@ module Goat
|
|
1101
1103
|
|
1102
1104
|
class Component
|
1103
1105
|
attr_reader :id, :handlers, :page, :params, :initargs
|
1106
|
+
attr_accessor :parent
|
1104
1107
|
|
1105
1108
|
include HTMLHelpers # sure just shit it in with everything else - TODO remove?
|
1106
1109
|
|
@@ -1129,7 +1132,7 @@ module Goat
|
|
1129
1132
|
c = Kernel.fetch_class(skel.cls).from_skel(skel)
|
1130
1133
|
c.deserialize(skel.state)
|
1131
1134
|
Profile.out(:create_component)
|
1132
|
-
|
1135
|
+
|
1133
1136
|
c.rerender
|
1134
1137
|
end
|
1135
1138
|
|
@@ -1226,6 +1229,7 @@ module Goat
|
|
1226
1229
|
|
1227
1230
|
def initialize
|
1228
1231
|
@id = 'dom_' + String.random(10)
|
1232
|
+
@parent = Dynamic[:parent] if Dynamic.variable?(:parent)
|
1229
1233
|
end
|
1230
1234
|
|
1231
1235
|
def live_for(spec)
|
@@ -1277,7 +1281,7 @@ module Goat
|
|
1277
1281
|
def clientside_args; []; end
|
1278
1282
|
|
1279
1283
|
def clientside_instance
|
1280
|
-
args = [id, clientside_args].to_json[1..-2]
|
1284
|
+
args = [id, @parent ? @parent.id : nil, clientside_args].to_json[1..-2]
|
1281
1285
|
"(new #{self.class.name}('#{self.class.name}', #{args}))"
|
1282
1286
|
end
|
1283
1287
|
|
@@ -1319,7 +1323,15 @@ module Goat
|
|
1319
1323
|
end
|
1320
1324
|
|
1321
1325
|
def expanded_dom
|
1322
|
-
@expanded_dom ||= DOMTools.expanded_dom(inject_prefixes(self.
|
1326
|
+
@expanded_dom ||= DOMTools.expanded_dom(inject_prefixes(self._dom))
|
1327
|
+
end
|
1328
|
+
|
1329
|
+
def _dom
|
1330
|
+
if Dynamic.variable?(:in_a_dom) && !Dynamic.variable(:parent)
|
1331
|
+
raise "You must set the parent of a component before inserting it into the DOM tree. Try calling #parent=."
|
1332
|
+
end
|
1333
|
+
|
1334
|
+
Dynamic.let(:parent => self, :in_a_dom => true) { self.dom }
|
1323
1335
|
end
|
1324
1336
|
|
1325
1337
|
def dom_as_expanded
|
data/lib/goat/js/component.js
CHANGED
@@ -1,12 +1,20 @@
|
|
1
1
|
var Component = Class.extend({
|
2
|
-
init: function(cls, id, args) {
|
2
|
+
init: function(cls, id, par, args) {
|
3
3
|
this.id = id;
|
4
4
|
this.cls = cls;
|
5
5
|
this.loaded = false;
|
6
|
+
this.parentid = par;
|
6
7
|
|
7
8
|
for(var k in args) {
|
8
9
|
this[k] = args[k]
|
9
10
|
}
|
11
|
+
|
12
|
+
if(this.initialize)
|
13
|
+
this.initialize(args);
|
14
|
+
},
|
15
|
+
|
16
|
+
parent: function() {
|
17
|
+
return Goat.components[this.parentid];
|
10
18
|
},
|
11
19
|
|
12
20
|
onLoad: function() {
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 55
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 18
|
10
|
+
version: 0.3.18
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Patrick Collison
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-30 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|