astro 0.1.1

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