slinky 0.5.0 → 0.6.0

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.
@@ -58,7 +58,6 @@ module Slinky
58
58
  data = ProxyServer.replace_path(data, path, new_path, proxy[1].path)
59
59
  new_host = proxy[1].select(:host, :port).join(":")
60
60
  data = ProxyServer.replace_host(data, new_host)
61
- puts [data, [proxy[1].host, proxy[1].port]].inspect
62
61
  [proxy[1].host, proxy[1].port]
63
62
  else :slinky
64
63
  end
data/lib/slinky/runner.rb CHANGED
@@ -59,12 +59,18 @@ module Slinky
59
59
  EM::run {
60
60
  Slinky::Server.dir = @options[:src_dir]
61
61
  Slinky::Server.config = @config
62
+ manifest = Manifest.new(Slinky::Server.dir,
63
+ Slinky::Server.config)
64
+ Slinky::Server.manifest = manifest
65
+
62
66
  if @config && !@config.proxies.empty? && !@options[:no_proxy]
63
67
  server = EM::start_server "127.0.0.1", @options[:port]+1, Slinky::Server
64
- ProxyServer.run(@config.proxies, @options[:port], 5324)
68
+ ProxyServer.run(@config.proxies, @options[:port], @options[:port]+1)
65
69
  else
66
70
  EM::start_server "0.0.0.0", @options[:port], Slinky::Server
67
71
  end
72
+
73
+ Listener.new(manifest).run
68
74
  puts "Started static file server on port #{@options[:port]}"
69
75
  }
70
76
  end
data/lib/slinky/server.rb CHANGED
@@ -10,6 +10,9 @@ module Slinky
10
10
  def self.config= _config; @config = _config; end
11
11
  def self.config; @config || {}; end
12
12
 
13
+ def self.manifest= _manifest; @manifest = _manifest; end
14
+ def self.manifest; @manifest; end
15
+
13
16
  # Splits a uri into its components, returning only the path sans
14
17
  # initial forward slash.
15
18
  def self.path_for_uri uri
@@ -60,13 +63,20 @@ module Slinky
60
63
 
61
64
  # Method called for every HTTP request made
62
65
  def process_http_request
63
- @manifest = Manifest.new(Server.dir, Server.config)
64
-
65
- path = Server.path_for_uri(@http_request_uri)
66
- file = @manifest.find_by_path(path)
66
+ manifest = Server.manifest
67
67
  resp = EventMachine::DelegatedHttpResponse.new(self)
68
+
69
+ begin
70
+ path = Server.path_for_uri(@http_request_uri)
71
+ rescue
72
+ resp.status = 500
73
+ resp.content = "Invalid request"
74
+ return
75
+ end
76
+
77
+ file = manifest.find_by_path(path).first
68
78
  if file.is_a? ManifestDir
69
- file = @manifest.find_by_path(path+"/index.html")
79
+ file = manifest.find_by_path(path+"/index.html").first
70
80
  end
71
81
  resp.content_type MIME::Types.type_for(path).first
72
82
  Server.handle_file(resp, file).send_response
data/slinky.gemspec CHANGED
@@ -4,15 +4,15 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{slinky}
8
- s.version = "0.5.0"
7
+ s.name = "slinky"
8
+ s.version = "0.6.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = [%q{mwylde}]
12
- s.date = %q{2011-10-25}
13
- s.description = %q{A static file server for rich javascript apps that automatically compiles SASS, HAML, CoffeeScript and more}
14
- s.email = %q{mwylde@wesleyan.edu}
15
- s.executables = [%q{slinky}]
11
+ s.authors = ["Micah Wylde"]
12
+ s.date = "2012-06-15"
13
+ s.description = "A static file server for rich web apps that automatically compiles SASS, HAML, CoffeeScript and more"
14
+ s.email = "micah@micahw.com"
15
+ s.executables = ["slinky"]
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE.txt",
18
18
  "README.md"
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.files = [
21
21
  ".document",
22
22
  ".rspec",
23
+ ".travis.yml",
23
24
  "Gemfile",
24
25
  "LICENSE.txt",
25
26
  "README.md",
@@ -36,6 +37,7 @@ Gem::Specification.new do |s|
36
37
  "lib/slinky/compilers/sass-compiler.rb",
37
38
  "lib/slinky/config_reader.rb",
38
39
  "lib/slinky/em-popen3.rb",
40
+ "lib/slinky/listener.rb",
39
41
  "lib/slinky/manifest.rb",
40
42
  "lib/slinky/proxy_server.rb",
41
43
  "lib/slinky/runner.rb",
@@ -44,15 +46,11 @@ Gem::Specification.new do |s|
44
46
  "spec/slinky_spec.rb",
45
47
  "spec/spec_helper.rb"
46
48
  ]
47
- s.homepage = %q{http://github.com/mwylde/slinky}
48
- s.licenses = [%q{MIT}]
49
- s.require_paths = [%q{lib}]
50
- s.rubygems_version = %q{1.8.6}
51
- s.summary = %q{Static file server for javascript apps}
52
- s.test_files = [
53
- "spec/slinky_spec.rb",
54
- "spec/spec_helper.rb"
55
- ]
49
+ s.homepage = "http://mwylde.github.com/slinky/"
50
+ s.licenses = ["MIT"]
51
+ s.require_paths = ["lib"]
52
+ s.rubygems_version = "1.8.10"
53
+ s.summary = "Static file server for javascript apps"
56
54
 
57
55
  if s.respond_to? :specification_version then
58
56
  s.specification_version = 3
@@ -60,55 +58,58 @@ Gem::Specification.new do |s|
60
58
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
61
59
  s.add_runtime_dependency(%q<eventmachine>, [">= 0.12.0"])
62
60
  s.add_runtime_dependency(%q<eventmachine_httpserver>, [">= 0.2.0"])
63
- s.add_runtime_dependency(%q<em-proxy>, [">= 0.1.5"])
64
- s.add_runtime_dependency(%q<rainbow>, [">= 1.1.1"])
61
+ s.add_runtime_dependency(%q<em-proxy>, [">= 0.1.6"])
62
+ s.add_runtime_dependency(%q<rainbow>, [">= 1.1.3"])
65
63
  s.add_runtime_dependency(%q<haml>, [">= 3.0.0"])
66
64
  s.add_runtime_dependency(%q<sass>, [">= 3.1.1"])
67
65
  s.add_runtime_dependency(%q<coffee-script>, [">= 2.2.0"])
68
66
  s.add_runtime_dependency(%q<mime-types>, [">= 1.16"])
69
67
  s.add_runtime_dependency(%q<yui-compressor>, [">= 0.9.6"])
70
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
68
+ s.add_runtime_dependency(%q<listen>, [">= 0.4.5"])
69
+ s.add_development_dependency(%q<rspec>, ["~> 2.10.0"])
71
70
  s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
72
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
73
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
71
+ s.add_development_dependency(%q<bundler>, ["~> 1.1.0"])
72
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.0"])
74
73
  s.add_development_dependency(%q<cover_me>, [">= 1.0.0.rc6"])
75
- s.add_development_dependency(%q<fakefs>, [">= 0"])
76
- s.add_development_dependency(%q<em-http-request>, [">= 0"])
74
+ s.add_development_dependency(%q<fakefs>, ["~> 0.4.0"])
75
+ s.add_development_dependency(%q<em-http-request>, ["~> 1.0.0"])
77
76
  else
78
77
  s.add_dependency(%q<eventmachine>, [">= 0.12.0"])
79
78
  s.add_dependency(%q<eventmachine_httpserver>, [">= 0.2.0"])
80
- s.add_dependency(%q<em-proxy>, [">= 0.1.5"])
81
- s.add_dependency(%q<rainbow>, [">= 1.1.1"])
79
+ s.add_dependency(%q<em-proxy>, [">= 0.1.6"])
80
+ s.add_dependency(%q<rainbow>, [">= 1.1.3"])
82
81
  s.add_dependency(%q<haml>, [">= 3.0.0"])
83
82
  s.add_dependency(%q<sass>, [">= 3.1.1"])
84
83
  s.add_dependency(%q<coffee-script>, [">= 2.2.0"])
85
84
  s.add_dependency(%q<mime-types>, [">= 1.16"])
86
85
  s.add_dependency(%q<yui-compressor>, [">= 0.9.6"])
87
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
86
+ s.add_dependency(%q<listen>, [">= 0.4.5"])
87
+ s.add_dependency(%q<rspec>, ["~> 2.10.0"])
88
88
  s.add_dependency(%q<yard>, ["~> 0.6.0"])
89
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
90
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
89
+ s.add_dependency(%q<bundler>, ["~> 1.1.0"])
90
+ s.add_dependency(%q<jeweler>, ["~> 1.8.0"])
91
91
  s.add_dependency(%q<cover_me>, [">= 1.0.0.rc6"])
92
- s.add_dependency(%q<fakefs>, [">= 0"])
93
- s.add_dependency(%q<em-http-request>, [">= 0"])
92
+ s.add_dependency(%q<fakefs>, ["~> 0.4.0"])
93
+ s.add_dependency(%q<em-http-request>, ["~> 1.0.0"])
94
94
  end
95
95
  else
96
96
  s.add_dependency(%q<eventmachine>, [">= 0.12.0"])
97
97
  s.add_dependency(%q<eventmachine_httpserver>, [">= 0.2.0"])
98
- s.add_dependency(%q<em-proxy>, [">= 0.1.5"])
99
- s.add_dependency(%q<rainbow>, [">= 1.1.1"])
98
+ s.add_dependency(%q<em-proxy>, [">= 0.1.6"])
99
+ s.add_dependency(%q<rainbow>, [">= 1.1.3"])
100
100
  s.add_dependency(%q<haml>, [">= 3.0.0"])
101
101
  s.add_dependency(%q<sass>, [">= 3.1.1"])
102
102
  s.add_dependency(%q<coffee-script>, [">= 2.2.0"])
103
103
  s.add_dependency(%q<mime-types>, [">= 1.16"])
104
104
  s.add_dependency(%q<yui-compressor>, [">= 0.9.6"])
105
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
105
+ s.add_dependency(%q<listen>, [">= 0.4.5"])
106
+ s.add_dependency(%q<rspec>, ["~> 2.10.0"])
106
107
  s.add_dependency(%q<yard>, ["~> 0.6.0"])
107
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
108
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
108
+ s.add_dependency(%q<bundler>, ["~> 1.1.0"])
109
+ s.add_dependency(%q<jeweler>, ["~> 1.8.0"])
109
110
  s.add_dependency(%q<cover_me>, [">= 1.0.0.rc6"])
110
- s.add_dependency(%q<fakefs>, [">= 0"])
111
- s.add_dependency(%q<em-http-request>, [">= 0"])
111
+ s.add_dependency(%q<fakefs>, ["~> 0.4.0"])
112
+ s.add_dependency(%q<em-http-request>, ["~> 1.0.0"])
112
113
  end
113
114
  end
114
115
 
data/spec/slinky_spec.rb CHANGED
@@ -39,12 +39,12 @@ describe "Slinky" do
39
39
  end
40
40
 
41
41
  it "should find files in the manifest by path" do
42
- @mdevel.find_by_path("test.haml").source.should == "/src/test.haml"
43
- @mdevel.find_by_path("asdf.haml").should == nil
44
- @mdevel.find_by_path("l1/l2/test.txt").source.should == "/src/l1/l2/test.txt"
45
- @mdevel.find_by_path("l1/test.css").source.should == "/src/l1/test.sass"
42
+ @mdevel.find_by_path("test.haml").first.source.should == "/src/test.haml"
43
+ @mdevel.find_by_path("asdf.haml").first.should == nil
44
+ @mdevel.find_by_path("l1/l2/test.txt").first.source.should == "/src/l1/l2/test.txt"
45
+ @mdevel.find_by_path("l1/test.css").first.source.should == "/src/l1/test.sass"
46
46
  l1 = @mdevel.manifest_dir.children.find{|c| c.dir == "/src/l1"}
47
- l1.find_by_path("../test.haml").source.should == "/src/test.haml"
47
+ l1.find_by_path("../test.haml").first.source.should == "/src/test.haml"
48
48
  end
49
49
 
50
50
  it "should produce the correct scripts string for production" do
@@ -98,6 +98,7 @@ describe "Slinky" do
98
98
  it "should compile files that need it" do
99
99
  $stdout.should_receive(:puts).with("Compiled /src/test.haml".foreground(:green))
100
100
  mf = Slinky::ManifestFile.new("/src/test.haml", "/src/build", @mprod)
101
+ FileUtils.mkdir("/src/build")
101
102
  build_path = mf.process mf.build_to
102
103
  build_path.to_s.split(".")[-1].should == "html"
103
104
  File.read("/src/test.haml").match("<head>").should == nil
@@ -107,6 +108,7 @@ describe "Slinky" do
107
108
  mf = Slinky::ManifestFile.new("/src/test.haml", "/src/build", @mprod)
108
109
  build_path = mf.process "/src/build/test.html"
109
110
  File.read("/src/build/test.html").match("<head>").should_not == nil
111
+ FileUtils.rm_rf("/src/build") rescue nil
110
112
  end
111
113
 
112
114
  it "should report errors for bad files" do
@@ -194,6 +196,92 @@ describe "Slinky" do
194
196
  proc { manifest.dependency_list }.should raise_error Slinky::DependencyError
195
197
  end
196
198
 
199
+ it "should handle depends directives" do
200
+ File.open("/src/l1/test5.coffee", "w+"){|f| f.write("slinky_depends('test.sass')")}
201
+ manifest = Slinky::Manifest.new("/src", @config, :devel => true)
202
+ f = manifest.find_by_path("l1/test5.js").first
203
+ f.should_not == nil
204
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/test.sass/)
205
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/test5.coffee/)
206
+ f.process
207
+ end
208
+
209
+ it "should handle depends directives with glob patterns" do
210
+ File.open("/src/l1/test5.coffee", "w+"){|f| f.write("slinky_depends('*.sass')")}
211
+ File.open("/src/l1/test2.sass", "w+"){|f| f.write("body\n\tcolor: red")}
212
+ manifest = Slinky::Manifest.new("/src", @config, :devel => true)
213
+ f = manifest.find_by_path("l1/test5.js").first
214
+ f.should_not == nil
215
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/test.sass/)
216
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/test2.sass/)
217
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/test5.coffee/)
218
+ f.process
219
+ end
220
+
221
+ it "should handle depends directives with infinite loops" do
222
+ File.open("/src/l1/test5.coffee", "w+"){|f| f.write("slinky_depends('*.sass')")}
223
+ File.open("/src/l1/test2.sass", "w+"){|f| f.write("/* slinky_depends('*.coffee')")}
224
+ manifest = Slinky::Manifest.new("/src", @config, :devel => true)
225
+ f = manifest.find_by_path("l1/test5.js").first
226
+ f.should_not == nil
227
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/test.sass/)
228
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/test2.sass/)
229
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/test5.coffee/)
230
+ f.process
231
+ end
232
+
233
+ it "should cache files" do
234
+ File.open("/src/l1/cache.coffee", "w+"){|f| f.write("() -> 'hello, world!'\n")}
235
+ manifest = Slinky::Manifest.new("/src", @config, :devel => true)
236
+ f = manifest.find_by_path("l1/cache.js").first
237
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/cache.coffee/)
238
+ f.process
239
+ f.process
240
+ File.open("/src/l1/cache.coffee", "a"){|f| f.write("() -> 'goodbye, world!'\n")}
241
+ $stdout.should_receive(:puts).with(/Compiled \/src\/l1\/cache.coffee/)
242
+ f.process
243
+ end
244
+
245
+ it "should handle new directives" do
246
+ manifest = Slinky::Manifest.new("/src", @config, :devel => true)
247
+ f = manifest.find_by_path("l1/test.js").first
248
+ f.process
249
+ f.directives.should == {:slinky_require=>["test2.js", "l2/test3.js"]}
250
+ File.open("/src/l1/test.js", "a"){|f| f.write("slinky_require('test5.js')\n")}
251
+ f.process
252
+ f.directives.should == {:slinky_require=>["test2.js", "l2/test3.js", "test5.js"]}
253
+ end
254
+
255
+ it "should detect new files" do
256
+ $stdout.should_receive(:puts).with(/Compiled \/src\/test.haml/)
257
+ manifest = Slinky::Manifest.new("/src", @config, :devel => true)
258
+ File.open("/src/l1/cache.coffee", "w+"){|f| f.write("console.log 'hello'")}
259
+ manifest.add_all_by_path(["/src/l1/cache.coffee"])
260
+ f = manifest.find_by_path("l1/cache.js").first
261
+ f.should_not == nil
262
+ manifest.scripts_string.match("cache.js").should_not == nil
263
+ FileUtils.mkdir("/src/l1/hello")
264
+ File.open("/src/l1/hello/asdf.sass", "w+"){|f| f.write("hello")}
265
+ f = manifest.find_by_path("l1/hello/asdf.sass")
266
+ f.should_not == nil
267
+ end
268
+
269
+ it "should handle deletion of files" do
270
+ File.open("/src/l1/cache.coffee", "w+"){|f| f.write("console.log 'hello'")}
271
+ $stdout.should_receive(:puts).with(/Compiled \/src\/test.haml/)
272
+ manifest = Slinky::Manifest.new("/src", @config, :devel => true)
273
+ f = manifest.find_by_path("l1/cache.coffee").first
274
+ f.should_not == nil
275
+ manifest.scripts_string.match("l1/cache.js").should_not == nil
276
+
277
+ FileUtils.rm("/src/l1/cache.coffee")
278
+ File.exists?("/src/l1/cache.coffee").should == false
279
+ manifest.remove_all_by_path(["/src/l1/cache.coffee"])
280
+ f = manifest.find_by_path("l1/cache.coffee").first
281
+ f.should == nil
282
+ manifest.scripts_string.match("l1/cache.js").should == nil
283
+ end
284
+
197
285
  it "should ignore the build directory" do
198
286
  $stdout.should_receive(:puts).with(/Compiled \/src\/.+/).exactly(6).times
199
287
  Slinky::Builder.build("/src", "/src/build", @config)
@@ -204,6 +292,7 @@ describe "Slinky" do
204
292
  end
205
293
 
206
294
  it "should combine and compress javascript" do
295
+ FileUtils.rm_rf("/build") rescue nil
207
296
  $stdout.should_receive(:puts).with(/Compiled \/src\/.+/).exactly(3).times
208
297
  @mprod.build
209
298
  File.exists?("/build/scripts.js").should == true
@@ -281,29 +370,41 @@ describe "Slinky" do
281
370
  end
282
371
  end
283
372
 
284
- # it "should serve files for realz" do
285
- # $stdout.should_receive(:puts).with(/Started static file server on port 43453/)
286
- # @results = []
287
- # run_for 3 do
288
- # Slinky::Runner.new(["start","--port", "43453", "--src-dir", "/src"]).run
289
- # base = "http://localhost:43453"
290
- # multi = EventMachine::MultiRequest.new
291
-
292
- # # add multiple requests to the multi-handler
293
- # multi.add(EventMachine::HttpRequest.new("#{base}/index.html").get)
294
- # multi.add(EventMachine::HttpRequest.new(base).get)
295
- # multi.callback do
296
- # multi.responses[:succeeded].size.should == 2
297
- # multi.responses[:succeeded].each{|r|
298
- # $stderr.puts r.response
299
- # r.response.include?("hello").should == true
300
- # }
301
- # multi.responses[:failed].size.should == 0
302
- # EM.stop_event_loop
303
- # end
304
- # end
305
- # end
373
+ it "should serve files for realz" do
374
+ $stdout.should_receive(:puts).with(/Started static file server on port 43453/)
375
+ @results = []
376
+ File.open("/src/index.haml", "w+"){|f|
377
+ f.write <<eos
378
+ !!5
379
+ %head
380
+ slinky_scripts
381
+ slinky_styles
382
+ %body
383
+ h1. index
384
+ eos
385
+ }
386
+ run_for 3 do
387
+ Slinky::Runner.new(["start","--port", "43453", "--src-dir", "/src"]).run
388
+ base = "http://localhost:43453"
389
+ multi = EventMachine::MultiRequest.new
390
+ $stdout.should_receive(:puts).with(/Compiled \/src\/index.haml/)
391
+
392
+ # add multiple requests to the multi-handler
393
+ multi.add(:index, EventMachine::HttpRequest.new("#{base}/index.html").get)
394
+ multi.add(:base, EventMachine::HttpRequest.new(base).get)
395
+ multi.callback do
396
+ rs = [multi.responses[:callback][:index], multi.responses[:callback][:base]]
397
+ rs.compact.size.should == 2
398
+ rs.each{|r|
399
+ r.response.include?("index").should == true
400
+ }
401
+ multi.responses[:errback].size.should == 0
402
+ EM.stop_event_loop
403
+ end
404
+ end
405
+ end
306
406
  end
407
+
307
408
  context "Builder" do
308
409
  before :each do
309
410
  @compilation_subs = {".sass" => ".css", ".coffee" => ".js", ".haml" => ".html"}
data/spec/spec_helper.rb CHANGED
@@ -17,8 +17,18 @@ module FakeFS
17
17
  RealFile.absolute_path(*args)
18
18
  end
19
19
  end
20
- end
21
20
 
21
+ # Neccessary to fix a problem between FakeFS and Tempfile
22
+ class Dir
23
+ def self.mkdir(string, integer = 0)
24
+ parent = string.split('/')
25
+ parent.pop
26
+ raise Errno::ENOENT, "No such file or directory - #{string}" unless parent.join == "" || parent.join == "." || FileSystem.find(parent.join('/'))
27
+ raise Errno::EEXIST, "File exists - #{string}" if File.exists?(string)
28
+ FileUtils.mkdir_p(string)
29
+ end
30
+ end
31
+ end
22
32
 
23
33
  module Slinky
24
34
  module CoffeeCompiler
@@ -29,6 +39,11 @@ module Slinky
29
39
  o
30
40
  end
31
41
  end
42
+
43
+ # No way to make this work with FakeFS, so just disabled it
44
+ class Listener
45
+ def run; end
46
+ end
32
47
  end
33
48
 
34
49
  RSpec.configure do |config|
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slinky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - mwylde
8
+ - Micah Wylde
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-25 00:00:00.000000000Z
12
+ date: 2012-06-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine
16
- requirement: &70314013066900 !ruby/object:Gem::Requirement
16
+ requirement: &70288588008440 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.12.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70314013066900
24
+ version_requirements: *70288588008440
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: eventmachine_httpserver
27
- requirement: &70314013061980 !ruby/object:Gem::Requirement
27
+ requirement: &70288588022920 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,32 +32,32 @@ dependencies:
32
32
  version: 0.2.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70314013061980
35
+ version_requirements: *70288588022920
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: em-proxy
38
- requirement: &70314013050540 !ruby/object:Gem::Requirement
38
+ requirement: &70288588021180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
42
42
  - !ruby/object:Gem::Version
43
- version: 0.1.5
43
+ version: 0.1.6
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70314013050540
46
+ version_requirements: *70288588021180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rainbow
49
- requirement: &70314013047220 !ruby/object:Gem::Requirement
49
+ requirement: &70288588019100 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
- version: 1.1.1
54
+ version: 1.1.3
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70314013047220
57
+ version_requirements: *70288588019100
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: haml
60
- requirement: &70314013045140 !ruby/object:Gem::Requirement
60
+ requirement: &70288588031920 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 3.0.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70314013045140
68
+ version_requirements: *70288588031920
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sass
71
- requirement: &70314013042780 !ruby/object:Gem::Requirement
71
+ requirement: &70288588029260 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 3.1.1
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70314013042780
79
+ version_requirements: *70288588029260
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: coffee-script
82
- requirement: &70314013032040 !ruby/object:Gem::Requirement
82
+ requirement: &70288588026700 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 2.2.0
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70314013032040
90
+ version_requirements: *70288588026700
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: mime-types
93
- requirement: &70314013029780 !ruby/object:Gem::Requirement
93
+ requirement: &70288588025080 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '1.16'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *70314013029780
101
+ version_requirements: *70288588025080
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: yui-compressor
104
- requirement: &70314013027660 !ruby/object:Gem::Requirement
104
+ requirement: &70288588039500 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,21 +109,32 @@ dependencies:
109
109
  version: 0.9.6
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *70314013027660
112
+ version_requirements: *70288588039500
113
+ - !ruby/object:Gem::Dependency
114
+ name: listen
115
+ requirement: &70288588035780 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: 0.4.5
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: *70288588035780
113
124
  - !ruby/object:Gem::Dependency
114
125
  name: rspec
115
- requirement: &70314013017960 !ruby/object:Gem::Requirement
126
+ requirement: &70288588032800 !ruby/object:Gem::Requirement
116
127
  none: false
117
128
  requirements:
118
129
  - - ~>
119
130
  - !ruby/object:Gem::Version
120
- version: 2.3.0
131
+ version: 2.10.0
121
132
  type: :development
122
133
  prerelease: false
123
- version_requirements: *70314013017960
134
+ version_requirements: *70288588032800
124
135
  - !ruby/object:Gem::Dependency
125
136
  name: yard
126
- requirement: &70314013016320 !ruby/object:Gem::Requirement
137
+ requirement: &70288588047820 !ruby/object:Gem::Requirement
127
138
  none: false
128
139
  requirements:
129
140
  - - ~>
@@ -131,32 +142,32 @@ dependencies:
131
142
  version: 0.6.0
132
143
  type: :development
133
144
  prerelease: false
134
- version_requirements: *70314013016320
145
+ version_requirements: *70288588047820
135
146
  - !ruby/object:Gem::Dependency
136
147
  name: bundler
137
- requirement: &70314013015020 !ruby/object:Gem::Requirement
148
+ requirement: &70288588056400 !ruby/object:Gem::Requirement
138
149
  none: false
139
150
  requirements:
140
151
  - - ~>
141
152
  - !ruby/object:Gem::Version
142
- version: 1.0.0
153
+ version: 1.1.0
143
154
  type: :development
144
155
  prerelease: false
145
- version_requirements: *70314013015020
156
+ version_requirements: *70288588056400
146
157
  - !ruby/object:Gem::Dependency
147
158
  name: jeweler
148
- requirement: &70314013014020 !ruby/object:Gem::Requirement
159
+ requirement: &70288588055540 !ruby/object:Gem::Requirement
149
160
  none: false
150
161
  requirements:
151
162
  - - ~>
152
163
  - !ruby/object:Gem::Version
153
- version: 1.5.2
164
+ version: 1.8.0
154
165
  type: :development
155
166
  prerelease: false
156
- version_requirements: *70314013014020
167
+ version_requirements: *70288588055540
157
168
  - !ruby/object:Gem::Dependency
158
169
  name: cover_me
159
- requirement: &70314013011880 !ruby/object:Gem::Requirement
170
+ requirement: &70288588054760 !ruby/object:Gem::Requirement
160
171
  none: false
161
172
  requirements:
162
173
  - - ! '>='
@@ -164,32 +175,32 @@ dependencies:
164
175
  version: 1.0.0.rc6
165
176
  type: :development
166
177
  prerelease: false
167
- version_requirements: *70314013011880
178
+ version_requirements: *70288588054760
168
179
  - !ruby/object:Gem::Dependency
169
180
  name: fakefs
170
- requirement: &70314013000920 !ruby/object:Gem::Requirement
181
+ requirement: &70288588053400 !ruby/object:Gem::Requirement
171
182
  none: false
172
183
  requirements:
173
- - - ! '>='
184
+ - - ~>
174
185
  - !ruby/object:Gem::Version
175
- version: '0'
186
+ version: 0.4.0
176
187
  type: :development
177
188
  prerelease: false
178
- version_requirements: *70314013000920
189
+ version_requirements: *70288588053400
179
190
  - !ruby/object:Gem::Dependency
180
191
  name: em-http-request
181
- requirement: &70314012997080 !ruby/object:Gem::Requirement
192
+ requirement: &70288588051060 !ruby/object:Gem::Requirement
182
193
  none: false
183
194
  requirements:
184
- - - ! '>='
195
+ - - ~>
185
196
  - !ruby/object:Gem::Version
186
- version: '0'
197
+ version: 1.0.0
187
198
  type: :development
188
199
  prerelease: false
189
- version_requirements: *70314012997080
190
- description: A static file server for rich javascript apps that automatically compiles
191
- SASS, HAML, CoffeeScript and more
192
- email: mwylde@wesleyan.edu
200
+ version_requirements: *70288588051060
201
+ description: A static file server for rich web apps that automatically compiles SASS,
202
+ HAML, CoffeeScript and more
203
+ email: micah@micahw.com
193
204
  executables:
194
205
  - slinky
195
206
  extensions: []
@@ -199,6 +210,7 @@ extra_rdoc_files:
199
210
  files:
200
211
  - .document
201
212
  - .rspec
213
+ - .travis.yml
202
214
  - Gemfile
203
215
  - LICENSE.txt
204
216
  - README.md
@@ -215,6 +227,7 @@ files:
215
227
  - lib/slinky/compilers/sass-compiler.rb
216
228
  - lib/slinky/config_reader.rb
217
229
  - lib/slinky/em-popen3.rb
230
+ - lib/slinky/listener.rb
218
231
  - lib/slinky/manifest.rb
219
232
  - lib/slinky/proxy_server.rb
220
233
  - lib/slinky/runner.rb
@@ -222,7 +235,7 @@ files:
222
235
  - slinky.gemspec
223
236
  - spec/slinky_spec.rb
224
237
  - spec/spec_helper.rb
225
- homepage: http://github.com/mwylde/slinky
238
+ homepage: http://mwylde.github.com/slinky/
226
239
  licenses:
227
240
  - MIT
228
241
  post_install_message:
@@ -237,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
237
250
  version: '0'
238
251
  segments:
239
252
  - 0
240
- hash: 1146780105758659184
253
+ hash: -2592602911110738570
241
254
  required_rubygems_version: !ruby/object:Gem::Requirement
242
255
  none: false
243
256
  requirements:
@@ -246,10 +259,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
259
  version: '0'
247
260
  requirements: []
248
261
  rubyforge_project:
249
- rubygems_version: 1.8.6
262
+ rubygems_version: 1.8.10
250
263
  signing_key:
251
264
  specification_version: 3
252
265
  summary: Static file server for javascript apps
253
- test_files:
254
- - spec/slinky_spec.rb
255
- - spec/spec_helper.rb
266
+ test_files: []