wedge 0.2.3 → 0.2.4

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