wedge 0.1.44 → 0.1.45
Sign up to get free protection for your applications and to get access to all the features.
- 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