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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 47902d338ff5dca666c0812e85f89f914cbe0461
4
- data.tar.gz: ee8d7d7a206e8b032267b8e41179f9de1c2c3b4e
3
+ metadata.gz: 91e8e17312c22438ccf5dc770ba7a08194c65462
4
+ data.tar.gz: 4779a4ddc4fab7e9b58ad36fd7049e3f1bd78335
5
5
  SHA512:
6
- metadata.gz: 61a8f72002617a95a7252465267e252c450e158dd2eed6993f507d882be0d997255e5e7ab3e8aedd1ac5283a134b9043e3cac1c3f973cd8a5ded6468d2ab2e04
7
- data.tar.gz: 6255420cf34a22296bd9bfc6a693c4a49112fc30d182280ce0cad75d14b5ac65096120be90bc3fb333c6cae9bebca94eb6ae93ef2adce7509b1507e804a31a3a
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
@@ -1,3 +1,3 @@
1
1
  class Wedge
2
- VERSION = '0.1.44'
2
+ VERSION = '0.1.45'
3
3
  end
data/lib/wedge.rb CHANGED
@@ -50,6 +50,7 @@ class Wedge
50
50
  s.prefix = Wedge.assets_url
51
51
  s.debug = Wedge.config.debug
52
52
  s.append_path "#{Dir.pwd}/#{Wedge.config.app_dir}"
53
+ s.headers = Wedge.config.assets_headers
53
54
  }}
54
55
 
55
56
  if Wedge.config.debug
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wedge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.44
4
+ version: 0.1.45
5
5
  platform: ruby
6
6
  authors:
7
7
  - cj