wedge 0.2.3 → 0.2.4

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: 8e3268823a6d3afeb59aaa396b0bb3a50e0419ec
4
- data.tar.gz: cd382179d6f4aa7ccf6fca95cfb8d53855548771
3
+ metadata.gz: 54944284d00e24ca9e6e454c117aba4d64a9af6e
4
+ data.tar.gz: 77d2c5b902b1554c3603c281c1dd22a61aacc50b
5
5
  SHA512:
6
- metadata.gz: f00a9fb7b3a39d28a9c3aa0c274555a0c4218b6a8d69de71d854dd060c0d259b928f8ebecd5fc485fcf58011b9df73909df13961fd5dd46d1c600b0c1f9d05f9
7
- data.tar.gz: 12d197e7d0716ddb531983d0255b03e7a464ef6b5289433c0545c933488e80e68f96abfbeaabdc2af68ecae1fd4dd8c70a18831eb83ca1c3f630700ff52d8b86
6
+ metadata.gz: 06d7116b3e7ddef035a3905ddc83f8af1d90f0228f9a679e89747cd9f6b4ddcc1bcefc74c89ba779e60cdbc6849770334b32df7850fcc2de156f303161ae1e22
7
+ data.tar.gz: b2dcb475ae9ff5b2e03217b0c92b3cc8262a26918538ec9268b3d15df3d50672d4bba32762a0e8a8ba5c83e69eb6f7bdc881d8b40fe8ca56279b687233bf5fd5
@@ -1,156 +1,157 @@
1
- unless RUBY_ENGINE == 'opal'
2
- module Opal
3
- class Builder
4
- # @return [String] Compiled javascript.
5
- def javascript
6
- to_s
7
- end
8
- end
9
-
10
- def self.original_compile(source, options = {})
11
- Compiler.new(source, options).original_compile
12
- end
13
-
14
- class Compiler
15
- alias_method :original_compile, :compile
16
- def compile
17
- @result = original_compile
18
-
19
- if defined? Wedge
20
- logical_path = self.file
21
- classes = Wedge.config.component_class
22
- comp_class = classes["#{Wedge.config.app_dir}/#{logical_path}".gsub(/\//, '__')] || classes[logical_path.gsub(/\//, '__')]
23
-
24
- if logical_path == 'wedge'
25
- compiled_data = Base64.encode64 Wedge.config.client_data.to_json
26
- # We need to merge in some data that is only set on the server.
27
- # i.e. path, assets_key etc....
28
- @result << Opal.original_compile("require '#{self.file}'; Wedge.config.data = HashObject.new(Wedge.config.data.to_h.merge JSON.parse(Base64.decode64('#{compiled_data}')))")
29
- # load all global plugins into wedge
30
- Wedge.config.plugins.each do |path|
31
- @result << Builder.build(path).to_s
32
- end
33
- elsif comp_class
34
- comp_class.config.on_compile.each { |blk| comp_class.instance_exec(true, &blk) }
35
- comp_name = comp_class.config.name
36
- compiled_data = Base64.encode64 comp_class.config.client_data.to_json
37
- js = ''
1
+ class Wedge
2
+ # Create our own opal instance.
3
+ Opal = ::Opal.dup
38
4
 
39
- 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}')))"
40
- # todo: discuss: pass plugin settings that were set server side?
41
- js << "; Wedge.plugin(:#{comp_name.to_s.gsub(/_plugin$/, '')})" if comp_class.config.is_plugin
5
+ unless RUBY_ENGINE == 'opal'
6
+ module Opal
7
+ class Builder
8
+ # @return [String] Compiled javascript.
9
+ def javascript
10
+ to_s
11
+ end
12
+ end
42
13
 
43
- @result << Opal.original_compile(js)
14
+ def self.original_compile(source, options = {})
15
+ Compiler.new(source, options).original_compile
16
+ end
44
17
 
45
- if compile_str = comp_class.config.compile_str
46
- @result << compile_str
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
47
54
  end
48
-
49
- load_requires logical_path
50
55
  end
51
- end
52
56
 
53
- @result
54
- end
57
+ @result
58
+ end
55
59
 
56
- def load_requires path_name
57
- if requires = Wedge.config.requires[path_name.gsub(/\//, '__')]
58
- requires.each do |path|
59
- next unless comp_class = Wedge.config.component_class[path]
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]
60
64
 
61
- comp_class.config.on_compile.each { |blk| comp_class.instance_eval(&blk) }
65
+ comp_class.config.on_compile.each { |blk| comp_class.instance_eval(&blk) }
62
66
 
63
- comp_name = comp_class.config.name
64
- compiled_data = Base64.encode64 comp_class.config.client_data.to_json
67
+ comp_name = comp_class.config.name
68
+ compiled_data = Base64.encode64 comp_class.config.client_data.to_json
65
69
 
66
- load_requires path
70
+ load_requires path
67
71
 
68
- @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}')))")
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
69
74
  end
70
75
  end
71
76
  end
72
- end
73
77
 
74
- class Server
75
- attr_accessor :headers, :gzip
78
+ class Server
79
+ attr_accessor :headers, :gzip
76
80
 
77
- def initialize debug_or_options = {}
78
- unless Hash === debug_or_options
79
- warn "passing a boolean to control debug is deprecated.\n"+
80
- "Please pass an Hash instead: Server.new(debug: true)"
81
- options = {:debug => debug_or_options}
82
- else
83
- options = debug_or_options
84
- end
81
+ def initialize debug_or_options = {}
82
+ unless Hash === debug_or_options
83
+ warn "passing a boolean to control debug is deprecated.\n"+
84
+ "Please pass an Hash instead: Server.new(debug: true)"
85
+ options = {:debug => debug_or_options}
86
+ else
87
+ options = debug_or_options
88
+ end
85
89
 
86
- @headers = {}
87
- @gzip = false
88
- @use_index = true
89
- @public_root = nil
90
- @public_urls = ['/']
91
- @sprockets = options.fetch(:sprockets, ::Sprockets::Environment.new)
92
- @debug = options.fetch(:debug, true)
93
- @prefix = options.fetch(:prefix, '/assets')
90
+ @headers = {}
91
+ @gzip = false
92
+ @use_index = true
93
+ @public_root = nil
94
+ @public_urls = ['/']
95
+ @sprockets = options.fetch(:sprockets, ::Sprockets::Environment.new)
96
+ @debug = options.fetch(:debug, true)
97
+ @prefix = options.fetch(:prefix, '/assets')
94
98
 
95
- Opal.paths.each { |p| @sprockets.append_path(p) }
99
+ Opal.paths.each { |p| @sprockets.append_path(p) }
96
100
 
97
- yield self if block_given?
98
- create_app
99
- end
100
-
101
- def create_app
102
- server, sprockets, prefix, headers = self, @sprockets, self.prefix, @headers
103
- sprockets.logger.level ||= Logger::DEBUG
104
- source_map_enabled = self.source_map_enabled
105
- if source_map_enabled
106
- maps_prefix = SOURCE_MAPS_PREFIX_PATH
107
- maps_app = SourceMapServer.new(sprockets, maps_prefix)
108
- ::Opal::Sprockets::SourceMapHeaderPatch.inject!(maps_prefix)
101
+ yield self if block_given?
102
+ create_app
109
103
  end
110
104
 
111
- @app = Rack::Builder.app do
112
- not_found = lambda { |env| [404, {}, []] }
113
- use Rack::Deflater
114
- use Rack::ShowExceptions
115
- use Index, server if server.use_index
116
- use Headers, server
105
+ def create_app
106
+ server, sprockets, prefix, headers = self, @sprockets, self.prefix, @headers
107
+ sprockets.logger.level ||= Logger::DEBUG
108
+ source_map_enabled = self.source_map_enabled
117
109
  if source_map_enabled
118
- map(maps_prefix) do
119
- require 'rack/conditionalget'
120
- require 'rack/etag'
121
- use Rack::ConditionalGet
122
- use Rack::ETag
123
- run maps_app
110
+ maps_prefix = SOURCE_MAPS_PREFIX_PATH
111
+ maps_app = SourceMapServer.new(sprockets, maps_prefix)
112
+ ::Opal::Sprockets::SourceMapHeaderPatch.inject!(maps_prefix)
113
+ end
114
+
115
+ @app = Rack::Builder.app do
116
+ not_found = lambda { |env| [404, {}, []] }
117
+ use Rack::Deflater
118
+ use Rack::ShowExceptions
119
+ use Index, server if server.use_index
120
+ use Headers, server
121
+ if source_map_enabled
122
+ map(maps_prefix) do
123
+ require 'rack/conditionalget'
124
+ require 'rack/etag'
125
+ use Rack::ConditionalGet
126
+ use Rack::ETag
127
+ run maps_app
128
+ end
124
129
  end
130
+ map(prefix) { run sprockets }
131
+ run Rack::Static.new(not_found, root: server.public_root, urls: server.public_urls)
125
132
  end
126
- map(prefix) { run sprockets }
127
- run Rack::Static.new(not_found, root: server.public_root, urls: server.public_urls)
128
133
  end
129
- end
130
134
 
131
- class Headers
132
- def initialize(app, server)
133
- @app = app
134
- @server = server
135
- end
135
+ class Headers
136
+ def initialize(app, server)
137
+ @app = app
138
+ @server = server
139
+ end
136
140
 
137
- def call(env)
138
- if env['PATH_INFO'][@server.prefix]
139
- status, headers, body = @app.call env
141
+ def call(env)
142
+ if env['PATH_INFO'][@server.prefix]
143
+ status, headers, body = @app.call env
140
144
 
141
- [status, headers.merge(@server.headers), [body]]
142
- else
143
- @app.call env
145
+ [status, headers.merge(@server.headers), [body]]
146
+ else
147
+ @app.call env
148
+ end
144
149
  end
145
150
  end
146
151
  end
147
152
  end
148
153
  end
149
- end
150
154
 
151
- class Wedge
152
- # Create our own opal instance.
153
- Opal = ::Opal.dup
154
155
 
155
156
  def self.version
156
157
  Wedge::VERSION
@@ -1,3 +1,3 @@
1
1
  class Wedge
2
- VERSION = '0.2.3'
2
+ VERSION = '0.2.4'
3
3
  end
@@ -18,8 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_runtime_dependency "opal-wedge", '>= 0.8.0'
22
- spec.add_runtime_dependency "opal-jquery", '~> 0.4.0'
21
+ spec.add_runtime_dependency "opal-jquery", '~> 0.4.1'
23
22
  spec.add_runtime_dependency "nokogiri"
24
23
 
25
24
  spec.add_development_dependency 'rspec'
metadata CHANGED
@@ -1,43 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wedge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - cj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-04 00:00:00.000000000 Z
11
+ date: 2016-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: opal-wedge
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 0.8.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: 0.8.0
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: opal-jquery
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - "~>"
32
18
  - !ruby/object:Gem::Version
33
- version: 0.4.0
19
+ version: 0.4.1
34
20
  type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
24
  - - "~>"
39
25
  - !ruby/object:Gem::Version
40
- version: 0.4.0
26
+ version: 0.4.1
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: nokogiri
43
29
  requirement: !ruby/object:Gem::Requirement