wedge 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wedge/component.rb +9 -3
- data/lib/wedge/dom.rb +6 -6
- data/lib/wedge/events.rb +7 -8
- data/lib/wedge/utilis/nokogiri.rb +1 -3
- data/lib/wedge/version.rb +1 -1
- data/test/dummy/app.rb +1 -1
- data/test/dummy/components/layout.rb +26 -0
- data/test/dummy/components/root.rb +4 -16
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c28c7cc402cb626100b4890daa762072096d0e0a
|
4
|
+
data.tar.gz: 1f0c5c2356493eb129497d939b888d36ac8904ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69e20c930d5eab6c1de8a456ffd0975529a7f9198d8b50bab204a5e294168660681629266807c0523e5dc3cb6534ea4be6a4110306a1cceeca381afd4022830f
|
7
|
+
data.tar.gz: 41a17bed621248980ec71dca986af93c84a93f50dd9376df91b94b32498b821701e3ce2f695b2a7950206b3d6e8a855776ee680f63535c95a4c7d462f5bd5bb7
|
data/lib/wedge/component.rb
CHANGED
@@ -2,7 +2,7 @@ module Wedge
|
|
2
2
|
class Component
|
3
3
|
include Methods
|
4
4
|
|
5
|
-
ALLOWED_CLIENT_OPTS = %i(name path_name method_args method_called cache tmpl key cache_assets assets_key assets_url requires
|
5
|
+
ALLOWED_CLIENT_OPTS = %i(name path_name method_args method_called cache tmpl key cache_assets assets_key assets_url requires)
|
6
6
|
|
7
7
|
class << self
|
8
8
|
# Override the default new behaviour
|
@@ -53,7 +53,7 @@ module Wedge
|
|
53
53
|
end
|
54
54
|
|
55
55
|
# Append the initialize javscript
|
56
|
-
if server? && opts.js
|
56
|
+
if server? && meth == wedge_opts.method_called && opts.js
|
57
57
|
result = result.to_html if result.is_a? DOM
|
58
58
|
result << wedge_javascript if result.is_a? String
|
59
59
|
end
|
@@ -190,7 +190,7 @@ module Wedge
|
|
190
190
|
payload[:method_called] = meth
|
191
191
|
payload[:method_args] = args
|
192
192
|
|
193
|
-
HTTP.post("
|
193
|
+
HTTP.post("#{Wedge.assets_url}/#{path_name}.call",
|
194
194
|
headers: {
|
195
195
|
'X-CSRF-TOKEN' => Element.find('meta[name=_csrf]').attr('content'),
|
196
196
|
'X-WEDGE-METHOD-REQUEST' => true
|
@@ -325,6 +325,12 @@ module Wedge
|
|
325
325
|
end
|
326
326
|
alias_method :trigger, :wedge_trigger
|
327
327
|
|
328
|
+
def wedge_super *args, &block
|
329
|
+
caller_str = "#{caller[0]}"
|
330
|
+
calling_method = (caller_str =~ /`([^']*)'/ and $1)
|
331
|
+
self.class.superclass.instance_method(:"wedge_original_#{calling_method}").bind(self).call(*args, &block)
|
332
|
+
end
|
333
|
+
|
328
334
|
if RUBY_ENGINE == 'opal'
|
329
335
|
def wedge(*args)
|
330
336
|
Wedge[*args]
|
data/lib/wedge/dom.rb
CHANGED
@@ -25,18 +25,18 @@ module Wedge
|
|
25
25
|
|
26
26
|
def find string, &block
|
27
27
|
if client?
|
28
|
-
node = DOM.new dom.find(string)
|
28
|
+
node = Wedge::DOM.new dom.find(string)
|
29
29
|
elsif server?
|
30
30
|
if block_given?
|
31
|
-
node = DOM.new dom.css(string)
|
31
|
+
node = Wedge::DOM.new dom.css(string)
|
32
32
|
else
|
33
|
-
node = DOM.new dom.at(string)
|
33
|
+
node = Wedge::DOM.new dom.at(string)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
37
|
if block_given?
|
38
38
|
node.each_with_index do |n, i|
|
39
|
-
block.call DOM.new(n), i
|
39
|
+
block.call Wedge::DOM.new(n), i
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -103,9 +103,9 @@ module Wedge
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def to_html
|
106
|
-
@dom ||= DOM.new '<div>'
|
106
|
+
@dom ||= Wedge::DOM.new '<div>'
|
107
107
|
el = dom.first
|
108
|
-
DOM.new('<div>').append(el).html
|
108
|
+
Wedge::DOM.new('<div>').append(el).html
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
data/lib/wedge/events.rb
CHANGED
@@ -65,18 +65,16 @@ module Wedge
|
|
65
65
|
def trigger_browser_event event
|
66
66
|
comp = Wedge[scope.wedge_opts.name]
|
67
67
|
|
68
|
-
case
|
69
|
-
when 'ready'
|
68
|
+
case
|
69
|
+
when event[:name].to_s == 'ready'
|
70
70
|
el = Element.find(event[:selector] != '' ? event[:selector] : 'body')
|
71
71
|
|
72
72
|
comp.instance_exec el, &event[:block]
|
73
|
-
when 'history_change'
|
73
|
+
when event[:name].to_s == 'history_change'
|
74
74
|
$window.history.change do |he|
|
75
75
|
comp.instance_exec he, &event[:block]
|
76
76
|
end
|
77
|
-
when 'form
|
78
|
-
warn 'missing form class option' unless event[:klass]
|
79
|
-
|
77
|
+
when event[:name].to_s == 'submit' && event[:options][:form]
|
80
78
|
Document.on :submit, event[:selector] do |evt|
|
81
79
|
el = evt.current_target
|
82
80
|
evt.prevent_default
|
@@ -102,12 +100,13 @@ module Wedge
|
|
102
100
|
params_obj = params_obj.deep_merge keys.reverse.inject(value) { |a, n| { n => a } }
|
103
101
|
end
|
104
102
|
|
103
|
+
opts = event[:options].dup.reject { |k, v| k.to_s == 'form' }
|
105
104
|
opts[:dom] = el
|
106
105
|
|
107
106
|
if opts && key = opts[:key]
|
108
|
-
form = event[:
|
107
|
+
form = Wedge[event[:options][:form], init: [params_obj[key], opts]]
|
109
108
|
else
|
110
|
-
form = event[:
|
109
|
+
form = Wedge[event[:options][:form], init: [params_obj, opts]]
|
111
110
|
end
|
112
111
|
|
113
112
|
el.find(opts[:error_selector] || '.field-error').remove
|
@@ -18,10 +18,8 @@ module Nokogiri
|
|
18
18
|
|
19
19
|
alias_method :original_coerce, :coerce
|
20
20
|
def coerce data # :nodoc:
|
21
|
-
if data.class.to_s
|
21
|
+
if data.class.to_s[/DOM$/]
|
22
22
|
data = data.dom
|
23
|
-
elsif data.class.to_s[/DOM$/]
|
24
|
-
return original_coerce data
|
25
23
|
end
|
26
24
|
|
27
25
|
case data
|
data/lib/wedge/version.rb
CHANGED
data/test/dummy/app.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
class DummyApp
|
2
|
+
class LayoutComponent < Wedge::Component
|
3
|
+
config.name :layout
|
4
|
+
config.html <<-HTML
|
5
|
+
<!DOCTYPE html>
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<script src="//code.jquery.com/jquery-1.11.2.js"></script>
|
9
|
+
#{Wedge.script_tag}
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
</body>
|
13
|
+
</html>
|
14
|
+
HTML
|
15
|
+
config.dom do
|
16
|
+
dom.find('body') << assets(:js)
|
17
|
+
end
|
18
|
+
|
19
|
+
def display &block
|
20
|
+
return unless server?
|
21
|
+
|
22
|
+
dom.find('body').add_child block.call
|
23
|
+
dom
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -3,26 +3,14 @@ require_relative 'base' unless RUBY_ENGINE == 'opal'
|
|
3
3
|
class DummyApp
|
4
4
|
class RootComponent < BaseComponent
|
5
5
|
config.name :root
|
6
|
-
config.html <<-HTML
|
7
|
-
<!DOCTYPE html>
|
8
|
-
<html>
|
9
|
-
<head>
|
10
|
-
<script src="//code.jquery.com/jquery-1.11.2.js"></script>
|
11
|
-
#{Wedge.script_tag}
|
12
|
-
</head>
|
13
|
-
<body>
|
14
|
-
<div id='foo'>bar</div>
|
15
|
-
</body>
|
16
|
-
</html>
|
17
|
-
HTML
|
18
|
-
config.dom do
|
19
|
-
dom.find('body') << assets(:js)
|
20
|
-
end
|
21
6
|
config.requires :base, :bar, :foo_form, :pjax_plugin
|
7
|
+
config.html "<div id='foo'>bar</div>"
|
22
8
|
|
23
9
|
def display
|
24
10
|
if server?
|
25
|
-
|
11
|
+
wedge(:layout).display do
|
12
|
+
dom.to_html
|
13
|
+
end
|
26
14
|
else
|
27
15
|
el = Element['<div>']
|
28
16
|
el.html 'foo'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wedge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal
|
@@ -188,6 +188,7 @@ files:
|
|
188
188
|
- test/dummy/app.rb
|
189
189
|
- test/dummy/components/bar.rb
|
190
190
|
- test/dummy/components/base.rb
|
191
|
+
- test/dummy/components/layout.rb
|
191
192
|
- test/dummy/components/root.rb
|
192
193
|
- test/dummy/config.ru
|
193
194
|
- test/dummy/forms/bar.rb
|
@@ -225,6 +226,7 @@ test_files:
|
|
225
226
|
- test/dummy/app.rb
|
226
227
|
- test/dummy/components/bar.rb
|
227
228
|
- test/dummy/components/base.rb
|
229
|
+
- test/dummy/components/layout.rb
|
228
230
|
- test/dummy/components/root.rb
|
229
231
|
- test/dummy/config.ru
|
230
232
|
- test/dummy/forms/bar.rb
|