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 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