wedge 0.0.2 → 0.0.3
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/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
|