wedge 0.1.44 → 0.1.45
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/wedge/opal.rb +79 -0
- data/lib/wedge/version.rb +1 -1
- data/lib/wedge.rb +1 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91e8e17312c22438ccf5dc770ba7a08194c65462
|
4
|
+
data.tar.gz: 4779a4ddc4fab7e9b58ad36fd7049e3f1bd78335
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b77b8a55850545908c158ddf06677f4f1af9f377cd9255633d90dd09487682e4fca4d6043e9317934e63b4e1917c1b1776cfaf9097a49f37b32b801b06c1419
|
7
|
+
data.tar.gz: 1c1367eed5c7cae0c498cdc0dd057659adcb2d1982da2a0152c091cfdd2fd0cd8b82706bbb668fc3e6c84811d80952ee358cd4316daaefb21b57c09b77599dc0
|
data/lib/wedge/opal.rb
CHANGED
@@ -70,6 +70,85 @@ unless RUBY_ENGINE == 'opal'
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
end
|
73
|
+
|
74
|
+
class Server
|
75
|
+
attr_accessor :headers
|
76
|
+
|
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
|
85
|
+
|
86
|
+
@headers = {}
|
87
|
+
@use_index = true
|
88
|
+
@public_root = nil
|
89
|
+
@public_urls = ['/']
|
90
|
+
@sprockets = options.fetch(:sprockets, ::Sprockets::Environment.new)
|
91
|
+
@debug = options.fetch(:debug, true)
|
92
|
+
@prefix = options.fetch(:prefix, '/assets')
|
93
|
+
|
94
|
+
Opal.paths.each { |p| @sprockets.append_path(p) }
|
95
|
+
|
96
|
+
yield self if block_given?
|
97
|
+
create_app
|
98
|
+
end
|
99
|
+
|
100
|
+
def headers
|
101
|
+
@headers
|
102
|
+
end
|
103
|
+
|
104
|
+
def create_app
|
105
|
+
server, sprockets, prefix, headers = self, @sprockets, self.prefix, @headers
|
106
|
+
sprockets.logger.level ||= Logger::DEBUG
|
107
|
+
source_map_enabled = self.source_map_enabled
|
108
|
+
if source_map_enabled
|
109
|
+
maps_prefix = SOURCE_MAPS_PREFIX_PATH
|
110
|
+
maps_app = SourceMapServer.new(sprockets, maps_prefix)
|
111
|
+
::Opal::Sprockets::SourceMapHeaderPatch.inject!(maps_prefix)
|
112
|
+
end
|
113
|
+
|
114
|
+
@app = Rack::Builder.app do
|
115
|
+
not_found = lambda { |env| [404, {}, []] }
|
116
|
+
use Rack::Deflater
|
117
|
+
use Rack::ShowExceptions
|
118
|
+
use Index, server if server.use_index
|
119
|
+
use Headers, server
|
120
|
+
if source_map_enabled
|
121
|
+
map(maps_prefix) do
|
122
|
+
require 'rack/conditionalget'
|
123
|
+
require 'rack/etag'
|
124
|
+
use Rack::ConditionalGet
|
125
|
+
use Rack::ETag
|
126
|
+
run maps_app
|
127
|
+
end
|
128
|
+
end
|
129
|
+
map(prefix) { run sprockets }
|
130
|
+
run Rack::Static.new(not_found, root: server.public_root, urls: server.public_urls)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
class Headers
|
135
|
+
def initialize(app, server)
|
136
|
+
@app = app
|
137
|
+
@server = server
|
138
|
+
end
|
139
|
+
|
140
|
+
def call(env)
|
141
|
+
status, headers, body = @app.call env
|
142
|
+
|
143
|
+
if env['PATH_INFO'][@server.prefix]
|
144
|
+
status, headers, body = @app.call env
|
145
|
+
[status, headers.merge(@server.headers), [body]]
|
146
|
+
else
|
147
|
+
@app.call env
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
73
152
|
end
|
74
153
|
end
|
75
154
|
|
data/lib/wedge/version.rb
CHANGED
data/lib/wedge.rb
CHANGED