astro 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/.gitignore +17 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +88 -0
  5. data/Guardfile +6 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +16 -0
  8. data/Rakefile +6 -0
  9. data/app/assets/javascripts/jquery.js +9807 -0
  10. data/app/assets/javascripts/sammy.js +2137 -0
  11. data/app/assets/javascripts/underscore.js +1227 -0
  12. data/astro.gemspec +32 -0
  13. data/config.ru +4 -0
  14. data/lib/assets/javascripts/astro.js +11 -0
  15. data/lib/astro/assets.rb +57 -0
  16. data/lib/astro/middleware/query_string.rb +23 -0
  17. data/lib/astro/middleware/sprockets.rb +25 -0
  18. data/lib/astro/server.rb +30 -0
  19. data/lib/astro/version.rb +3 -0
  20. data/lib/astro/views/error.erb +4 -0
  21. data/lib/astro.rb +11 -0
  22. data/spec/assets/javascripts/bar.js +3 -0
  23. data/spec/assets/javascripts/foo.js +1 -0
  24. data/spec/astro/middleware/query_string_spec.rb +27 -0
  25. data/spec/astro/middleware/sprockets_spec.rb +22 -0
  26. data/spec/astro/server_spec/astro_server/javascripts/bar/body.js +3 -0
  27. data/spec/astro/server_spec/astro_server/javascripts/bar/headers.txt +5 -0
  28. data/spec/astro/server_spec/astro_server/javascripts/baz/body.js +4 -0
  29. data/spec/astro/server_spec/astro_server/javascripts/baz/headers.txt +5 -0
  30. data/spec/astro/server_spec/astro_server/javascripts/empty/body.js +11 -0
  31. data/spec/astro/server_spec/astro_server/javascripts/empty/headers.txt +5 -0
  32. data/spec/astro/server_spec/astro_server/javascripts/foo/body.js +1 -0
  33. data/spec/astro/server_spec/astro_server/javascripts/foo/headers.txt +5 -0
  34. data/spec/astro/server_spec.rb +42 -0
  35. data/spec/spec_helper.rb +19 -0
  36. data/spec/support/approvals.rb +1 -0
  37. data/spec/support/pry.rb +1 -0
  38. metadata +260 -0
data/astro.gemspec ADDED
@@ -0,0 +1,32 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'astro/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'astro'
8
+ spec.version = Astro::VERSION
9
+ spec.authors = ['Jeremy Ruppel']
10
+ spec.email = ['jeremy.ruppel@gmail.com']
11
+ spec.description = %q{Your DIY asset distribution web service.}
12
+ spec.summary = %q{Your DIY asset distribution web service.}
13
+ spec.homepage = 'https://github.com/jeremyruppel/astro'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_dependency 'sinatra', '~> 1.4.3'
22
+ spec.add_dependency 'sprockets', '~> 2.10.0'
23
+
24
+ spec.add_development_dependency 'rake'
25
+ spec.add_development_dependency 'bundler', '~> 1.3'
26
+ spec.add_development_dependency 'rspec', '~> 2.13.0'
27
+ spec.add_development_dependency 'rack-test', '~> 0.6.2'
28
+ spec.add_development_dependency 'git-approvals', '~> 0.2.2'
29
+ spec.add_development_dependency 'uglifier', '~> 2.1.1'
30
+ spec.add_development_dependency 'guard-rspec', '~> 3.0.1'
31
+ spec.add_development_dependency 'pry', '~> 0.9.12.2'
32
+ end
data/config.ru ADDED
@@ -0,0 +1,4 @@
1
+ $: << File.expand_path( '../lib', __FILE__ )
2
+
3
+ require 'astro'
4
+ run Astro::Server
@@ -0,0 +1,11 @@
1
+ /**
2
+ * ______ __
3
+ * /\ _ \ /\ \__ __
4
+ * \ \ \L\ \ ____\ \ ,_\ _ __ ___ /\_\ ____
5
+ * \ \ __ \ /',__\\ \ \/ /\`'__\/ __`\ \/\ \ /',__\
6
+ * \ \ \/\ \/\__, `\\ \ \_\ \ \//\ \L\ \__ \ \ \/\__, `\
7
+ * \ \_\ \_\/\____/ \ \__\\ \_\\ \____/\_\_\ \ \/\____/
8
+ * \/_/\/_/\/___/ \/__/ \/_/ \/___/\/_/\ \_\ \/___/
9
+ * \ \____/
10
+ * \/___/
11
+ */
@@ -0,0 +1,57 @@
1
+ require 'sprockets'
2
+
3
+ module Astro
4
+
5
+ ##
6
+ # A simple sinatra extension to set up the sprockets environment.
7
+ module Assets
8
+
9
+ ##
10
+ # Sinatra extension interface.
11
+ def self.registered( app )
12
+ app.helpers do
13
+
14
+ ##
15
+ # The sprockets environment instance.
16
+ def assets
17
+ env[ 'astro.sprockets' ]
18
+ end
19
+ end
20
+
21
+ # development and production environments use assets
22
+ # in `app/assets`.
23
+ app.configure :development, :production do |app|
24
+ app.before do
25
+ assets.append_path 'app/assets/javascripts'
26
+ end
27
+ end
28
+
29
+ # the test environment uses assets in `test/assets`.
30
+ app.configure :test do |app|
31
+ app.before do
32
+ assets.append_path 'spec/assets/javascripts'
33
+ end
34
+ end
35
+
36
+ app.before do
37
+ assets.register_preprocessor \
38
+ 'application/javascript', :astro do |context, data|
39
+
40
+ ##
41
+ # If we're processing the root asset, require all of
42
+ # the assets in the assets list and return the data
43
+ # as-is. The root processed asset will take care of
44
+ # resolving the dependencies.
45
+ if context.logical_path == 'astro'
46
+ env[ 'astro.assets' ].each do |asset|
47
+ context.require_asset( asset )
48
+ end
49
+ end
50
+
51
+ data
52
+ end
53
+ end
54
+
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,23 @@
1
+ module Astro
2
+ module Middleware
3
+ class QueryString
4
+
5
+ def initialize( app )
6
+ @app = app
7
+ end
8
+
9
+ ##
10
+ # Parses the asset list query string format into an
11
+ # array of assets and assigns it to `env`. Currently,
12
+ # asset names are simply separated by commas.
13
+ def call( env )
14
+ req = Rack::Request.new( env )
15
+ str = Rack::Utils.unescape( req.query_string )
16
+
17
+ env[ 'astro.assets' ] = str.split ':'
18
+
19
+ @app.call env
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ require 'sprockets'
2
+
3
+ module Astro
4
+ module Middleware
5
+ class Sprockets
6
+
7
+ def initialize( app )
8
+ @app = app
9
+ end
10
+
11
+ ##
12
+ # Creates a new sprockets environment instance
13
+ # and adds an anonymous preprocessor to require
14
+ # dependencies from the `astro.assets` array.
15
+ def call( env )
16
+ sprockets = ::Sprockets::Environment.new
17
+ sprockets.append_path 'lib/assets/javascripts'
18
+
19
+ env[ 'astro.sprockets' ] = sprockets
20
+
21
+ @app.call env
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,30 @@
1
+ require 'sinatra/base'
2
+
3
+ module Astro
4
+ class Server < Sinatra::Base
5
+
6
+ register Astro::Assets
7
+
8
+ use Astro::Middleware::QueryString
9
+ use Astro::Middleware::Sprockets
10
+
11
+ ##
12
+ # TODO docs
13
+ error Sprockets::FileNotFound do
14
+ halt 404, erb( :error )
15
+ end
16
+
17
+ ##
18
+ # TODO docs
19
+ before( '/javascripts' ){ content_type 'application/javascript' }
20
+
21
+ ##
22
+ # TODO docs
23
+ get( '/javascripts' ){ assets[ 'astro.js' ].to_s }
24
+
25
+ # TODO get /javascripts/:name
26
+ # - display available versions?
27
+ # - 3xx if found, 4xx if missing?
28
+ # - display dependency graph?
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ module Astro
2
+ VERSION = '0.1.1'
3
+ end
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Astro.js <%= $!.to_s %>.
3
+ */
4
+ throw new Error( "Astro.js <%= $!.to_s %>." );
data/lib/astro.rb ADDED
@@ -0,0 +1,11 @@
1
+ require 'astro/version'
2
+
3
+ module Astro
4
+ autoload :Assets, 'astro/assets'
5
+ autoload :Server, 'astro/server'
6
+
7
+ module Middleware
8
+ autoload :QueryString, 'astro/middleware/query_string'
9
+ autoload :Sprockets, 'astro/middleware/sprockets'
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ //= require foo
2
+
3
+ 'bar.js';
@@ -0,0 +1 @@
1
+ 'foo.js';
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Astro::Middleware::QueryString do
4
+
5
+ ##
6
+ # Rack-test interface.
7
+ def app
8
+ described_class.new( lambda { |env|
9
+ [ 200, { 'Content-Type' => 'text/plain' }, [ '' ] ]
10
+ } )
11
+ end
12
+
13
+ subject { last_request.env[ 'astro.assets' ] }
14
+
15
+ it 'assigns an empty array when the query string is empty' do
16
+ get '/'
17
+ subject.should == [ ]
18
+ end
19
+ it 'parses one asset name' do
20
+ get '/?foo'
21
+ subject.should == [ 'foo' ]
22
+ end
23
+ it 'parses more than one asset name' do
24
+ get '?foo:bar'
25
+ subject.should == [ 'foo', 'bar' ]
26
+ end
27
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Astro::Middleware::Sprockets do
4
+
5
+ ##
6
+ # Rack-test interface.
7
+ def app
8
+ described_class.new( lambda { |env|
9
+ [ 200, { 'Content-Type' => 'text/plain' }, [ '' ] ]
10
+ } )
11
+ end
12
+
13
+ before { get '/' }
14
+ subject { last_request.env[ 'astro.sprockets' ] }
15
+
16
+ it { should be_a( Sprockets::Environment ) }
17
+ it { should have( 1 ).paths }
18
+
19
+ it 'has the correct paths' do
20
+ subject.paths[ 0 ].should =~ /lib\/assets\/javascripts$/
21
+ end
22
+ end
@@ -0,0 +1,3 @@
1
+ "foo.js";
2
+
3
+ "bar.js";
@@ -0,0 +1,5 @@
1
+ {
2
+ "Content-Type" => "application/javascript;charset=utf-8",
3
+ "Content-Length" => "500",
4
+ "X-Content-Type-Options" => "nosniff"
5
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Astro.js couldn't find file 'baz'.
3
+ */
4
+ throw new Error("Astro.js couldn't find file 'baz'.");
@@ -0,0 +1,5 @@
1
+ {
2
+ "Content-Type" => "application/javascript;charset=utf-8",
3
+ "Content-Length" => "103",
4
+ "X-Content-Type-Options" => "nosniff"
5
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * ______ __
3
+ * /\ _ \ /\ \__ __
4
+ * \ \ \L\ \ ____\ \ ,_\ _ __ ___ /\_\ ____
5
+ * \ \ __ \ /',__\\ \ \/ /\`'__\/ __`\ \/\ \ /',__\
6
+ * \ \ \/\ \/\__, `\\ \ \_\ \ \//\ \L\ \__ \ \ \/\__, `\
7
+ * \ \_\ \_\/\____/ \ \__\\ \_\\ \____/\_\_\ \ \/\____/
8
+ * \/_/\/_/\/___/ \/__/ \/_/ \/___/\/_/\ \_\ \/___/
9
+ * \ \____/
10
+ * \/___/
11
+ */
@@ -0,0 +1,5 @@
1
+ {
2
+ "Content-Type" => "application/javascript;charset=utf-8",
3
+ "Content-Length" => "479",
4
+ "X-Content-Type-Options" => "nosniff"
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "Content-Type" => "application/javascript;charset=utf-8",
3
+ "Content-Length" => "489",
4
+ "X-Content-Type-Options" => "nosniff"
5
+ }
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ describe Astro::Server do
4
+
5
+ ##
6
+ # Rack-test interface.
7
+ def app
8
+ described_class
9
+ end
10
+
11
+ describe 'javascripts' do
12
+ subject { last_response }
13
+
14
+ context 'empty' do
15
+ before { get '/javascripts' }
16
+ its( :status ){ should == 200 }
17
+ example( 'headers' ){ verify { subject.headers } }
18
+ example( 'body' ){ verify( :format => :js ){ subject.body } }
19
+ end
20
+
21
+ context 'foo' do
22
+ before { get '/javascripts?foo' }
23
+ its( :status ){ should == 200 }
24
+ example( 'headers' ){ verify { subject.headers } }
25
+ example( 'body' ){ verify( :format => :js ){ subject.body } }
26
+ end
27
+
28
+ context 'bar' do
29
+ before { get '/javascripts?bar' }
30
+ its( :status ){ should == 200 }
31
+ example( 'headers' ){ verify { subject.headers } }
32
+ example( 'body' ){ verify( :format => :js ){ subject.body } }
33
+ end
34
+
35
+ context 'baz' do
36
+ before { get '/javascripts?baz' }
37
+ its( :status ){ should == 404 }
38
+ example( 'headers' ){ verify { subject.headers } }
39
+ example( 'body' ){ verify( :format => :js ){ subject.body } }
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,19 @@
1
+ require 'astro'
2
+ require 'rack/test'
3
+
4
+ ENV[ 'RACK_ENV' ] ||= 'test'
5
+
6
+ Dir[ './spec/support/*.rb' ].each { |f| require f }
7
+
8
+ RSpec.configure do |config|
9
+ config.include Rack::Test::Methods
10
+ config.treat_symbols_as_metadata_keys_with_true_values = true
11
+ config.run_all_when_everything_filtered = true
12
+ config.filter_run :focus
13
+
14
+ # Run specs in random order to surface order dependencies. If you find an
15
+ # order dependency and want to debug it, you can fix the order by providing
16
+ # the seed, which is printed after each run.
17
+ # --seed 1234
18
+ config.order = 'random'
19
+ end
@@ -0,0 +1 @@
1
+ require 'rspec/approvals'
@@ -0,0 +1 @@
1
+ require 'pry'
metadata ADDED
@@ -0,0 +1,260 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: astro
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jeremy Ruppel
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-06-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sinatra
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.4.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.4.3
30
+ - !ruby/object:Gem::Dependency
31
+ name: sprockets
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 2.10.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.10.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '1.3'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '1.3'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 2.13.0
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 2.13.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: rack-test
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 0.6.2
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.6.2
110
+ - !ruby/object:Gem::Dependency
111
+ name: git-approvals
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 0.2.2
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 0.2.2
126
+ - !ruby/object:Gem::Dependency
127
+ name: uglifier
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 2.1.1
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 2.1.1
142
+ - !ruby/object:Gem::Dependency
143
+ name: guard-rspec
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: 3.0.1
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 3.0.1
158
+ - !ruby/object:Gem::Dependency
159
+ name: pry
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: 0.9.12.2
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: 0.9.12.2
174
+ description: Your DIY asset distribution web service.
175
+ email:
176
+ - jeremy.ruppel@gmail.com
177
+ executables: []
178
+ extensions: []
179
+ extra_rdoc_files: []
180
+ files:
181
+ - .gitignore
182
+ - .rspec
183
+ - Gemfile
184
+ - Gemfile.lock
185
+ - Guardfile
186
+ - LICENSE.txt
187
+ - README.md
188
+ - Rakefile
189
+ - app/assets/javascripts/jquery.js
190
+ - app/assets/javascripts/sammy.js
191
+ - app/assets/javascripts/underscore.js
192
+ - astro.gemspec
193
+ - config.ru
194
+ - lib/assets/javascripts/astro.js
195
+ - lib/astro.rb
196
+ - lib/astro/assets.rb
197
+ - lib/astro/middleware/query_string.rb
198
+ - lib/astro/middleware/sprockets.rb
199
+ - lib/astro/server.rb
200
+ - lib/astro/version.rb
201
+ - lib/astro/views/error.erb
202
+ - spec/assets/javascripts/bar.js
203
+ - spec/assets/javascripts/foo.js
204
+ - spec/astro/middleware/query_string_spec.rb
205
+ - spec/astro/middleware/sprockets_spec.rb
206
+ - spec/astro/server_spec.rb
207
+ - spec/astro/server_spec/astro_server/javascripts/bar/body.js
208
+ - spec/astro/server_spec/astro_server/javascripts/bar/headers.txt
209
+ - spec/astro/server_spec/astro_server/javascripts/baz/body.js
210
+ - spec/astro/server_spec/astro_server/javascripts/baz/headers.txt
211
+ - spec/astro/server_spec/astro_server/javascripts/empty/body.js
212
+ - spec/astro/server_spec/astro_server/javascripts/empty/headers.txt
213
+ - spec/astro/server_spec/astro_server/javascripts/foo/body.js
214
+ - spec/astro/server_spec/astro_server/javascripts/foo/headers.txt
215
+ - spec/spec_helper.rb
216
+ - spec/support/approvals.rb
217
+ - spec/support/pry.rb
218
+ homepage: https://github.com/jeremyruppel/astro
219
+ licenses:
220
+ - MIT
221
+ post_install_message:
222
+ rdoc_options: []
223
+ require_paths:
224
+ - lib
225
+ required_ruby_version: !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ! '>='
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ required_rubygems_version: !ruby/object:Gem::Requirement
232
+ none: false
233
+ requirements:
234
+ - - ! '>='
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ requirements: []
238
+ rubyforge_project:
239
+ rubygems_version: 1.8.23
240
+ signing_key:
241
+ specification_version: 3
242
+ summary: Your DIY asset distribution web service.
243
+ test_files:
244
+ - spec/assets/javascripts/bar.js
245
+ - spec/assets/javascripts/foo.js
246
+ - spec/astro/middleware/query_string_spec.rb
247
+ - spec/astro/middleware/sprockets_spec.rb
248
+ - spec/astro/server_spec.rb
249
+ - spec/astro/server_spec/astro_server/javascripts/bar/body.js
250
+ - spec/astro/server_spec/astro_server/javascripts/bar/headers.txt
251
+ - spec/astro/server_spec/astro_server/javascripts/baz/body.js
252
+ - spec/astro/server_spec/astro_server/javascripts/baz/headers.txt
253
+ - spec/astro/server_spec/astro_server/javascripts/empty/body.js
254
+ - spec/astro/server_spec/astro_server/javascripts/empty/headers.txt
255
+ - spec/astro/server_spec/astro_server/javascripts/foo/body.js
256
+ - spec/astro/server_spec/astro_server/javascripts/foo/headers.txt
257
+ - spec/spec_helper.rb
258
+ - spec/support/approvals.rb
259
+ - spec/support/pry.rb
260
+ has_rdoc: