wedge 0.1.12 → 0.1.13

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: f1fb126f1b18f0f6061d4e1b0d3d967f3d78928f
4
- data.tar.gz: 6f421eb5d042463bec1af15d8868f3b867903367
3
+ metadata.gz: ce2530673c2bea5a82a3493eccee06ca6b38edb8
4
+ data.tar.gz: 749f488627caa91778e41654e56624e6497c0c1b
5
5
  SHA512:
6
- metadata.gz: a467b85df744470770de8c6d657cff332c6888a9148e524cdd6fd4e6bd1a3f5d117409091054b50cba121d269eacba68c57473c65032bb5cdb40ca84b932d6ca
7
- data.tar.gz: 6ce2261bd89a666e40e0ffed0779bc48b79bcad79ddc7ef4db26400bb3d11fcc6dd75f8032eb177aeacc0b44fbc234061e2be9862e4c7e206ec3ebfff3856d1b
6
+ metadata.gz: 59e62d4db567029a0a3b52ea62828d830c5305eb13d2f08cf6ab8c8643564a46b2d001477e87e4e7f10339ea6eb66b4cc31d326857f2bfaff4577f57b381546a
7
+ data.tar.gz: ac916c88681edf2a142e660b0dee92c07a46108acbb26b200324e691c1421f592de925f6cdfb1ec2c968549d26477b11acbfffa8435d5dfbe145617d37869e37
@@ -145,28 +145,7 @@ class Wedge
145
145
 
146
146
  if server?
147
147
  javascript_cache[path_name] ||= begin
148
- js = options.delete(:js) || build(path_name, options).javascript
149
-
150
- if path_name == 'wedge'
151
- compiled_data = Base64.encode64 config.client_data.to_json
152
- # We need to merge in some data that is only set on the server.
153
- # i.e. path, assets_key etc....
154
- js << Opal.compile("Wedge.config.data = HashObject.new(Wedge.config.data.to_h.merge JSON.parse(Base64.decode64('#{compiled_data}')))")
155
- # load all global plugins into wedge
156
- config.plugins.each do |path|
157
- js << Wedge.javascript(path)
158
- end
159
- elsif comp_class = Wedge.config.component_class[path_name.gsub(/\//, '__')]
160
- comp_class.config.on_compile.each { |blk| comp_class.instance_eval(&blk) }
161
- comp_name = comp_class.config.name
162
- compiled_data = Base64.encode64 comp_class.config.client_data.to_json
163
-
164
- js << Opal.compile("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}')))")
165
-
166
- load_requires path_name, js
167
- end
168
-
169
- js
148
+ build(path_name, options).to_s
170
149
  end
171
150
  else
172
151
  url = "#{Wedge.assets_url_with_host}/#{options[:path]}.js"
@@ -196,23 +175,6 @@ class Wedge
196
175
  end
197
176
  end
198
177
 
199
- def load_requires path_name, js
200
- if requires = config.requires[path_name.gsub(/\//, '__')]
201
- requires.each do |path|
202
- next unless comp_class = Wedge.config.component_class[path]
203
-
204
- comp_class.config.on_compile.each { |blk| comp_class.instance_eval(&blk) }
205
-
206
- comp_name = comp_class.config.name
207
- compiled_data = Base64.encode64 comp_class.config.client_data.to_json
208
-
209
- load_requires path, js
210
-
211
- js << Opal.compile("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}')))")
212
- end
213
- end
214
- end
215
-
216
178
  def config
217
179
  @config ||= begin
218
180
  args = { component_class: IndifferentHash.new }
@@ -17,6 +17,7 @@ class Wedge
17
17
  html: nil,
18
18
  scope: nil,
19
19
  debug: false,
20
+ app_dir: 'app',
20
21
  assets_url: '/assets/wedge',
21
22
  assets_key: nil,
22
23
  cache_assets: false,
@@ -9,6 +9,61 @@ unless RUBY_ENGINE == 'opal'
9
9
  to_s
10
10
  end
11
11
  end
12
+
13
+ def self.original_compile(source, options = {})
14
+ Compiler.new(source, options).original_compile
15
+ end
16
+
17
+ class Compiler
18
+ alias_method :original_compile, :compile
19
+ def compile
20
+ @result = original_compile
21
+
22
+ if defined? Wedge
23
+ logical_path = self.file
24
+ classes = Wedge.config.component_class
25
+ comp_class = classes["#{Wedge.config.app_dir}/#{logical_path}".gsub(/\//, '__')] || classes[logical_path.gsub(/\//, '__')]
26
+
27
+ if logical_path == 'wedge'
28
+ compiled_data = Base64.encode64 Wedge.config.client_data.to_json
29
+ # We need to merge in some data that is only set on the server.
30
+ # i.e. path, assets_key etc....
31
+ @result << Opal.original_compile("require '#{self.file}'; Wedge.config.data = HashObject.new(Wedge.config.data.to_h.merge JSON.parse(Base64.decode64('#{compiled_data}')))")
32
+ # load all global plugins into wedge
33
+ Wedge.config.plugins.each do |path|
34
+ @result << Builder.build(path).to_s
35
+ end
36
+ elsif comp_class
37
+ comp_class.config.on_compile.each { |blk| comp_class.instance_eval(&blk) }
38
+ comp_name = comp_class.config.name
39
+ compiled_data = Base64.encode64 comp_class.config.client_data.to_json
40
+
41
+ @result << Opal.original_compile("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}')))")
42
+
43
+ load_requires logical_path
44
+ end
45
+ end
46
+
47
+ @result
48
+ end
49
+
50
+ def load_requires path_name
51
+ if requires = Wedge.config.requires[path_name.gsub(/\//, '__')]
52
+ requires.each do |path|
53
+ next unless comp_class = Wedge.config.component_class[path]
54
+
55
+ comp_class.config.on_compile.each { |blk| comp_class.instance_eval(&blk) }
56
+
57
+ comp_name = comp_class.config.name
58
+ compiled_data = Base64.encode64 comp_class.config.client_data.to_json
59
+
60
+ load_requires path
61
+
62
+ @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}')))")
63
+ end
64
+ end
65
+ end
66
+ end
12
67
  end
13
68
  end
14
69
 
@@ -1,3 +1,3 @@
1
1
  class Wedge
2
- VERSION = '0.1.12'
2
+ VERSION = '0.1.13'
3
3
  end
@@ -25,8 +25,14 @@ class Playground
25
25
  }
26
26
  }
27
27
 
28
+ # builder = Opal::Builder.new(:stubs=>['opal'])
29
+ # builder.append_paths(APP_ROOT)
30
+ # builder.use_gem('opal-jquery')
31
+ # builder.use_gem('wedge')
32
+
28
33
  plugin :assets, {
29
34
  path: "#{APP_ROOT}/../", css_dir: '', js_dir: '', group_subdirs: false,
35
+ # js_opts: { builder: builder }
30
36
  css: {
31
37
  default: [
32
38
  'public/vendor/normalize-css/normalize.css',
@@ -1,3 +1,5 @@
1
+ require_relative 'layout'
2
+
1
3
  class Playground
2
4
  class IndexComponent < Wedge::Component
3
5
  name :index
@@ -1,9 +1,3 @@
1
- <script type="text/javascript">
2
- document.write('<script src="http://'
3
- + (location.host || 'localhost').split(':')[0]
4
- + ':35729/livereload.js"></'
5
- + 'script>')</script>
6
- </script>
7
1
  <meta charset="utf-8" />
8
2
  <!--Page Info--><title>Wedge - </title><!--Styles-->
9
3
  <link href="css/styles.css" rel="stylesheet" />
@@ -1,12 +1,6 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
- <script type="text/javascript">
5
- document.write('<script src="http://'
6
- + (location.host || 'localhost').split(':')[0]
7
- + ':35729/livereload.js"></'
8
- + 'script>')</script>
9
- </script>
10
4
  <meta charset="utf-8" />
11
5
  <!--Page Info--><title>Wedge - </title><!--Styles-->
12
6
  <link href="css/styles.css" rel="stylesheet" />
@@ -1,12 +1,6 @@
1
1
  <!DOCTYPE html>
2
2
  <html>
3
3
  <head>
4
- <script type="text/javascript">
5
- document.write('<script src="http://'
6
- + (location.host || 'localhost').split(':')[0]
7
- + ':35729/livereload.js"></'
8
- + 'script>')</script>
9
- </script>
10
4
  <meta charset="utf-8" />
11
5
  <!--Page Info--><title>Wedge - </title><!--Styles-->
12
6
  <link href="css/styles.css" rel="stylesheet" />
@@ -1,9 +1,9 @@
1
1
  / Remove this in production
2
- javascript:
3
- document.write('<script src="http://'
4
- + (location.host || 'localhost').split(':')[0]
5
- + ':35729/livereload.js"></'
6
- + 'script>')</script>
2
+ /javascript:
3
+ / document.write('<script async src="http://'
4
+ / + (location.host || 'localhost').split(':')[0]
5
+ / + ':35729/livereload.js"></'
6
+ / + 'script>')</script>
7
7
  meta charset="utf-8"
8
8
  /! Page Info
9
9
  title
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.1.12
4
+ version: 0.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - cj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-26 00:00:00.000000000 Z
11
+ date: 2015-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opal
@@ -281,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
281
281
  version: '0'
282
282
  requirements: []
283
283
  rubyforge_project:
284
- rubygems_version: 2.4.3
284
+ rubygems_version: 2.2.2
285
285
  signing_key:
286
286
  specification_version: 4
287
287
  summary: Components for the Browser and Server