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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 104befdb183707b249388b194de614ac87ebc47c
4
- data.tar.gz: 9b007fe20e46d8207c4334c9defeebf8007e0fd3
3
+ metadata.gz: c28c7cc402cb626100b4890daa762072096d0e0a
4
+ data.tar.gz: 1f0c5c2356493eb129497d939b888d36ac8904ce
5
5
  SHA512:
6
- metadata.gz: a99bbb4dddcea088c59fc6e5600c169c9c77e025c73bbe59f68c97c4945a489b9d814c2a65505ed30b48f7f78ca4fcb25cf5d06cad4f5cabb317ab4e91fadfcb
7
- data.tar.gz: 860a55ee486f858393be4bcb539fa94a23123f6adbcfb732850379e4e908c442acf0a6b0be0a75325dc2a13468f7787a0fd5f4f971307ede66ef31d8cf7c32ad
6
+ metadata.gz: 69e20c930d5eab6c1de8a456ffd0975529a7f9198d8b50bab204a5e294168660681629266807c0523e5dc3cb6534ea4be6a4110306a1cceeca381afd4022830f
7
+ data.tar.gz: 41a17bed621248980ec71dca986af93c84a93f50dd9376df91b94b32498b821701e3ce2f695b2a7950206b3d6e8a855776ee680f63535c95a4c7d462f5bd5bb7
@@ -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 object_events)
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("/#{wedge_opts.assets_url}/#{path_name}.call",
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 event[:name]
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[:klass].new params_obj[key], opts
107
+ form = Wedge[event[:options][:form], init: [params_obj[key], opts]]
109
108
  else
110
- form = event[:klass].new params_obj, opts
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 == 'Wedge::DOM'
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
@@ -1,3 +1,3 @@
1
1
  module Wedge
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/test/dummy/app.rb CHANGED
@@ -31,4 +31,4 @@ end
31
31
  Dir["#{ROOT_PATH}/forms/*.rb"].sort.each { |file| require file }
32
32
  Dir["#{ROOT_PATH}/components/*.rb"].sort.each { |file| require file }
33
33
 
34
- Wedge.cache # cache files on app load
34
+ Wedge.compile_opal # cache files on app load
@@ -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
- dom
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.2
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-27 00:00:00.000000000 Z
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