roda-component 0.1.26 → 0.1.27
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/roda/component.rb +21 -0
- data/lib/roda/component/element.rb +8 -0
- data/lib/roda/component/version.rb +1 -1
- data/lib/roda/plugins/component.rb +18 -13
- 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: 34af2117ec9844c79388172c7925327234a15420
|
4
|
+
data.tar.gz: 47664199fa77227ee28102b6b3e7f0b79525f49e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1da41e5dd0a4abb369e5c51b3d6407f5dfe46686bd43e7a5f44ba1cddf75300ab2993ab485d712e815cf5418289c1bd9f0024c6d33c2e852582b2cb6eee0541
|
7
|
+
data.tar.gz: 4bf89d4fb46a3d17ecab201d12e2fc462acb3baf2410ddbd857422f1ffc45dc5ab41600644c65ff720498c146ce38e37410339590e0d3d66c7fd1fef207e0589
|
data/lib/roda/component.rb
CHANGED
@@ -6,6 +6,27 @@ unless RUBY_ENGINE == 'opal'
|
|
6
6
|
require 'tilt'
|
7
7
|
require 'nokogiri'
|
8
8
|
|
9
|
+
# this is to fix `.maps` not using correct url.
|
10
|
+
module Opal
|
11
|
+
class Processor < Tilt::Template
|
12
|
+
def evaluate(context, locals, &block)
|
13
|
+
return Opal.compile data unless context.is_a? ::Sprockets::Context
|
14
|
+
|
15
|
+
path = context.logical_path
|
16
|
+
prerequired = []
|
17
|
+
|
18
|
+
builder = self.class.new_builder(context)
|
19
|
+
result = builder.build_str(data, path, :prerequired => prerequired)
|
20
|
+
|
21
|
+
if self.class.source_map_enabled
|
22
|
+
register_source_map(context.logical_path, result.source_map.to_s)
|
23
|
+
"#{result.to_s}\n//# sourceMappingURL=/#{Roda::Component.app.component_opts[:assets_route]}/#{context.logical_path}.map\n"
|
24
|
+
else
|
25
|
+
result.to_s
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
9
30
|
|
10
31
|
module Nokogiri
|
11
32
|
module XML
|
@@ -4,6 +4,14 @@ class Element
|
|
4
4
|
alias_native :serialize_array, :serializeArray
|
5
5
|
alias_native :has_class, :hasClass
|
6
6
|
alias_native :click
|
7
|
+
|
8
|
+
def get_script url, &block
|
9
|
+
%x{
|
10
|
+
$.getScript(url, function(){
|
11
|
+
#{block.call if block_given?}
|
12
|
+
});
|
13
|
+
}
|
14
|
+
end
|
7
15
|
end
|
8
16
|
|
9
17
|
class String
|
@@ -81,26 +81,28 @@ class Roda
|
|
81
81
|
options = Base64.encode64 options.to_json
|
82
82
|
comp_name = comp.class._name
|
83
83
|
|
84
|
+
file_path = comp.class.instance_methods(false).map { |m|
|
85
|
+
comp.class.instance_method(m).source_location.first
|
86
|
+
}.uniq.first.gsub("#{Dir.pwd}/#{component_opts[:path]}", '').gsub(/\.rb\Z/, '.js')
|
87
|
+
|
84
88
|
js = <<-EOF
|
85
89
|
unless $faye
|
86
90
|
$faye = Roda::Component::Faye.new('/faye')
|
87
91
|
end
|
88
92
|
|
89
93
|
unless $component_opts[:comp][:"#{comp_name}"]
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
94
|
+
$component_opts[:comp][:"#{comp_name}"] = true
|
95
|
+
`$.getScript("/#{component_opts[:assets_route]}#{file_path}", function(){`
|
96
|
+
Document.ready? do
|
97
|
+
c = $component_opts[:comp][:"#{comp_name}"] = #{comp.class}.new
|
98
|
+
c.instance_variable_set(:@_cache, JSON.parse(Base64.decode64('#{cache}')))
|
99
|
+
c.events.trigger_jquery_events
|
100
|
+
c.#{action}(JSON.parse(Base64.decode64('#{options}')))
|
101
|
+
end
|
102
|
+
`});`
|
96
103
|
end
|
97
104
|
EOF
|
98
105
|
|
99
|
-
file_path = comp.class.instance_methods(false).map { |m|
|
100
|
-
comp.class.instance_method(m).source_location.first
|
101
|
-
}.uniq.first.gsub("#{Dir.pwd}/#{component_opts[:path]}", '').gsub(/\.rb\Z/, '.js')
|
102
|
-
|
103
|
-
loaded_component_js << "<script type=\"text/javascript\" src=\"/#{component_opts[:assets_route]}#{file_path}\"></script>"
|
104
106
|
loaded_component_js << ("<script>#{Opal.compile(js)}</script>")
|
105
107
|
end
|
106
108
|
|
@@ -194,12 +196,16 @@ class Roda
|
|
194
196
|
opal = Opal::Server.new do |s|
|
195
197
|
# Append the gems path
|
196
198
|
if scope.component_opts[:debug]
|
197
|
-
s.debug
|
199
|
+
s.debug = true
|
198
200
|
s.source_map = true
|
199
201
|
else
|
200
202
|
s.source_map = false
|
201
203
|
end
|
202
204
|
|
205
|
+
# we are loading the source maps ourselves
|
206
|
+
|
207
|
+
s.prefix = "/#{scope.component_opts[:assets_route]}"
|
208
|
+
|
203
209
|
s.append_path Gem::Specification.find_by_name("roda-component").gem_dir + '/lib'
|
204
210
|
|
205
211
|
# Append the path to the components folder
|
@@ -217,7 +223,6 @@ class Roda
|
|
217
223
|
if path[/\.rb\Z/] && js_file = scope.request.env['PATH_INFO'].scan(/(.*\.map)/)
|
218
224
|
scope.request.env['PATH_INFO'] = path.gsub(js_file.last.first, '').gsub("/#{scope.component_opts[:assets_route]}", '')
|
219
225
|
end
|
220
|
-
|
221
226
|
run Opal::SourceMapServer.new(opal.sprockets, path)
|
222
227
|
end
|
223
228
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roda-component
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opal
|