wedge 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wedge.rb +8 -33
- data/lib/wedge/component.rb +1 -1
- data/lib/wedge/opal.rb +4 -90
- data/lib/wedge/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c71fcced61481b9f728755337c97887dda0694c5
|
4
|
+
data.tar.gz: 1ab6d87facb32dfc95fd4251ba172959f8eb12e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a041c32b5a735350d65379a9b2e01172a49748bb91d3bedf8bb993f7d220c62685549e4622b10689bc5eebf50f6a1620336b1b27407d2909dd29a6d7355bb4db
|
7
|
+
data.tar.gz: c4a459c0dcabb30556997bc436caea9ff6f993aeec49d70ddc24685deb18933e8348aa61ef1cf9165e2f6948474531e3721dee0de1ba2038039d2c0e1833e108
|
data/lib/wedge.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
|
2
|
-
require 'opal
|
1
|
+
unless RUBY_ENGINE == 'opal'
|
2
|
+
require 'opal'
|
3
|
+
Opal.append_path File.expand_path('../', __FILE__).untaint
|
4
|
+
end
|
5
|
+
|
3
6
|
require 'wedge/version'
|
4
|
-
require 'wedge/opal'
|
5
7
|
require 'wedge/utilis/indifferent_hash'
|
6
8
|
require 'wedge/utilis/hash'
|
7
9
|
require 'wedge/utilis/blank'
|
@@ -12,6 +14,7 @@ require 'wedge/utilis/element'
|
|
12
14
|
require 'base64'
|
13
15
|
require 'forwardable'
|
14
16
|
unless RUBY_ENGINE == 'opal'
|
17
|
+
require 'wedge/opal'
|
15
18
|
require 'nokogiri'
|
16
19
|
require 'wedge/utilis/nokogiri'
|
17
20
|
require 'wedge/middleware'
|
@@ -22,7 +25,7 @@ require 'wedge/dom'
|
|
22
25
|
require 'wedge/events'
|
23
26
|
require 'wedge/config'
|
24
27
|
require 'wedge/component'
|
25
|
-
require 'wedge/railtie' if RUBY_ENGINE
|
28
|
+
require 'wedge/railtie' if RUBY_ENGINE != 'opal' && defined?(Rails::Railtie)
|
26
29
|
|
27
30
|
class Wedge
|
28
31
|
include Methods
|
@@ -214,35 +217,7 @@ class Wedge
|
|
214
217
|
build(path_name, options).to_s
|
215
218
|
end
|
216
219
|
else
|
217
|
-
|
218
|
-
# url = "#{url}?body=1" if Wedge.config.debug
|
219
|
-
cache = options[:cache_assets]
|
220
|
-
|
221
|
-
if !Wedge.config.debug
|
222
|
-
url ||= "#{Wedge.assets_url_with_host}/#{options[:path]}.js"
|
223
|
-
|
224
|
-
`jQuery.ajax({ url: url, dataType: "script", cache: cache }).done(function() {`
|
225
|
-
trigger_javascript_loaded path_name, options
|
226
|
-
`}).fail(function(jqxhr, settings, exception){ window.console.log(exception); })`
|
227
|
-
else
|
228
|
-
url = "#{Wedge.assets_url_with_host}/wedge/list_assets.call"
|
229
|
-
payload = { path_name: path_name}
|
230
|
-
headers = {
|
231
|
-
'X-CSRF-TOKEN' => Element.find('meta[name=_csrf]').attr('content'),
|
232
|
-
}
|
233
|
-
HTTP.post(url, dataType: 'json', headers: headers, payload: payload) do |response|
|
234
|
-
res = JSON.from_object(`response`)
|
235
|
-
|
236
|
-
res[:body][:urls].each do |url|
|
237
|
-
`jQuery.ajax({url: url, dataType: "script", cache: cache, async: false})`
|
238
|
-
end
|
239
|
-
|
240
|
-
code = res[:body][:code]
|
241
|
-
`jQuery.globalEval(code);`
|
242
|
-
|
243
|
-
trigger_javascript_loaded path_name, options
|
244
|
-
end
|
245
|
-
end
|
220
|
+
trigger_javascript_loaded path_name, options
|
246
221
|
end
|
247
222
|
end
|
248
223
|
|
data/lib/wedge/component.rb
CHANGED
data/lib/wedge/opal.rb
CHANGED
@@ -1,80 +1,13 @@
|
|
1
1
|
class Wedge
|
2
|
+
module Plugins
|
3
|
+
end
|
4
|
+
|
2
5
|
# Create our own opal instance.
|
3
6
|
Opal = ::Opal.dup
|
7
|
+
# Opal = Marshal.load(Marshal.dump(::Opal))
|
4
8
|
|
5
9
|
unless RUBY_ENGINE == 'opal'
|
6
10
|
module Opal
|
7
|
-
class Builder
|
8
|
-
# @return [String] Compiled javascript.
|
9
|
-
def javascript
|
10
|
-
to_s
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.original_compile(source, options = {})
|
15
|
-
Compiler.new(source, options).original_compile
|
16
|
-
end
|
17
|
-
|
18
|
-
class Compiler
|
19
|
-
alias_method :original_compile, :compile
|
20
|
-
def compile
|
21
|
-
@result = original_compile
|
22
|
-
|
23
|
-
if defined? Wedge
|
24
|
-
logical_path = self.file
|
25
|
-
classes = Wedge.config.component_class
|
26
|
-
comp_class = classes["#{Wedge.config.app_dir}/#{logical_path}".gsub(/\//, '__')] || classes[logical_path.gsub(/\//, '__')]
|
27
|
-
|
28
|
-
if logical_path == 'wedge'
|
29
|
-
compiled_data = Base64.encode64 Wedge.config.client_data.to_json
|
30
|
-
# We need to merge in some data that is only set on the server.
|
31
|
-
# i.e. path, assets_key etc....
|
32
|
-
@result << Opal.original_compile("require '#{self.file}'; Wedge.config.data = HashObject.new(Wedge.config.data.to_h.merge JSON.parse(Base64.decode64('#{compiled_data}')))")
|
33
|
-
# load all global plugins into wedge
|
34
|
-
Wedge.config.plugins.each do |path|
|
35
|
-
@result << Builder.build(path).to_s
|
36
|
-
end
|
37
|
-
elsif comp_class
|
38
|
-
comp_class.config.on_compile.each { |blk| comp_class.instance_exec(true, &blk) }
|
39
|
-
comp_name = comp_class.config.name
|
40
|
-
compiled_data = Base64.encode64 comp_class.config.client_data.to_json
|
41
|
-
js = ''
|
42
|
-
|
43
|
-
js << "require '#{self.file}'; Wedge.config.component_class[:#{comp_name}].config.data = HashObject.new(Wedge.config.component_class[:#{comp_name}].config.data.to_h.merge JSON.parse(Base64.decode64('#{compiled_data}')))"
|
44
|
-
# todo: discuss: pass plugin settings that were set server side?
|
45
|
-
js << "; Wedge.plugin(:#{comp_name.to_s.gsub(/_plugin$/, '')})" if comp_class.config.is_plugin
|
46
|
-
|
47
|
-
@result << Opal.original_compile(js)
|
48
|
-
|
49
|
-
if compile_str = comp_class.config.compile_str
|
50
|
-
@result << compile_str
|
51
|
-
end
|
52
|
-
|
53
|
-
load_requires logical_path
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
@result
|
58
|
-
end
|
59
|
-
|
60
|
-
def load_requires path_name
|
61
|
-
if requires = Wedge.config.requires[path_name.gsub(/\//, '__')]
|
62
|
-
requires.each do |path|
|
63
|
-
next unless comp_class = Wedge.config.component_class[path]
|
64
|
-
|
65
|
-
comp_class.config.on_compile.each { |blk| comp_class.instance_eval(&blk) }
|
66
|
-
|
67
|
-
comp_name = comp_class.config.name
|
68
|
-
compiled_data = Base64.encode64 comp_class.config.client_data.to_json
|
69
|
-
|
70
|
-
load_requires path
|
71
|
-
|
72
|
-
@result << Opal.original_compile("require '#{path}'; Wedge.config.component_class[:#{comp_name}].config.data = HashObject.new(Wedge.config.component_class[:#{comp_name}].config.data.to_h.merge JSON.parse(Base64.decode64('#{compiled_data}')))")
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
11
|
class Server
|
79
12
|
attr_accessor :headers, :gzip
|
80
13
|
|
@@ -165,24 +98,5 @@ if RUBY_ENGINE == 'opal'
|
|
165
98
|
alias_native :replace_with, :replaceWith
|
166
99
|
# alias_native :selectize
|
167
100
|
end
|
168
|
-
else
|
169
|
-
# issue:
|
170
|
-
# Wedge::Opal.use_gem 'wedge'
|
171
|
-
# NoMethodError: method `runtime_dependencies' for nil:NilClass
|
172
|
-
# /home/rof/cache/bundler/ruby/2.1.0/bundler/gems/opal-921df0c1dcf0/lib/opal/paths.rb:36:in `require_paths_for_gem'
|
173
|
-
# /home/rof/cache/bundler/ruby/2.1.0/bundler/gems/opal-921df0c1dcf0/lib/opal/paths.rb:37:in `block in require_paths_for_gem'
|
174
|
-
# /home/rof/cache/bundler/ruby/2.1.0/bundler/gems/opal-921df0c1dcf0/lib/opal/paths.rb:36:in `each'
|
175
|
-
# /home/rof/cache/bundler/ruby/2.1.0/bundler/gems/opal-921df0c1dcf0/lib/opal/paths.rb:36:in `require_paths_for_gem'
|
176
|
-
# /home/rof/cache/bundler/ruby/2.1.0/bundler/gems/opal-921df0c1dcf0/lib/opal/paths.rb:27:in `use_gem'
|
177
|
-
# /home/rof/cache/bundler/ruby/2.1.0/gems/wedge-0.1.29/lib/wedge/opal.rb:92:in `<top (required)>'
|
178
|
-
# /home/rof/cache/bundler/ruby/2.1.0/gems/wedge-0.1.29/lib/wedge.rb:1:in `require'
|
179
|
-
# /home/rof/cache/bundler/ruby/2.1.0/gems/wedge-0.1.29/lib/wedge.rb:1:in `<top (required)>'
|
180
|
-
# /home/rof/src/github.com/acdcorp/autolink.cuba/app/config/boot.rb:10:in `require'
|
181
|
-
# /home/rof/src/github.com/acdcorp/autolink.cuba/app/config/boot.rb:10:in `<top (required)>'
|
182
|
-
# /home/rof/src/github.com/acdcorp/autolink.cuba/Rakefile:15:in `require'
|
183
|
-
# /home/rof/src/github.com/acdcorp/autolink.cuba/Rakefile:15:in `<top (required)>'
|
184
|
-
# (See full trace by running task with --trace)
|
185
|
-
# make: *** [test] Error 1
|
186
|
-
Wedge::Opal.append_path Wedge.method(:version).source_location.first.sub('wedge/opal.rb', '')
|
187
101
|
end
|
188
102
|
|
data/lib/wedge/version.rb
CHANGED
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.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal-jquery
|