spade 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,7 @@
1
1
  require 'rack'
2
2
  require 'rack/static'
3
3
  require 'tempfile'
4
+ require 'child_labor'
4
5
 
5
6
  module Spade
6
7
  module Server
@@ -8,7 +9,7 @@ module Spade
8
9
  rootdir = Spade.discover_root(working)
9
10
  static = Rack::Static.new(nil, :urls => ['/'], :root => rootdir)
10
11
  static = CommandRunner.new(static)
11
- static = Rack::ShowStatus.new(Rack::ShowExceptions.new(static))
12
+ static = Rack::ShowStatus.new(Rack::ShowExceptions.new(Rack::Chunked.new(Rack::ContentLength.new(static))))
12
13
 
13
14
  Rack::Handler::WEBrick.run static, :Port => port.to_i
14
15
  end
@@ -39,12 +40,22 @@ module Spade
39
40
  tempfile.write(params['code'])
40
41
  tempfile.close
41
42
 
43
+
42
44
  puts "Running: #{command_path}"
43
- output = `#{command_path} < #{tempfile.path}`
45
+
46
+ output, error = nil
47
+ process = ChildLabor.subprocess("#{command_path} < #{tempfile.path}") do |p|
48
+ output = p.read
49
+ error = p.read_stderr
50
+ end
44
51
 
45
52
  tempfile.delete
46
53
 
47
- [200, {}, output]
54
+ if process.exit_status == 0
55
+ [200, {}, output]
56
+ else
57
+ [500, {}, error]
58
+ end
48
59
  else
49
60
  @app.call(env)
50
61
  end
@@ -1,3 +1,3 @@
1
1
  module Spade
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spade",
3
- "version": "0.0.1",
3
+ "version": "0.0.6",
4
4
  "description": "CommonJS Microkernel for Browser and Command Line",
5
5
 
6
6
  "maintainers": [
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.add_dependency "json_pure", "~> 1.4.6"
25
25
  s.add_dependency "rack", "~> 1.2.1"
26
26
  s.add_dependency "thor", "~> 0.14.3"
27
+ s.add_dependency "childlabor", "~> 0.0.3"
27
28
  s.add_dependency "therubyracer", "~> 0.8.0" if mri
28
29
 
29
30
  s.add_development_dependency "rspec"
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: spade
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.5
5
+ version: 0.0.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Charles Jolley
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-05 00:00:00 Z
13
+ date: 2011-04-06 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: gemcutter
@@ -79,27 +79,38 @@ dependencies:
79
79
  type: :runtime
80
80
  version_requirements: *id006
81
81
  - !ruby/object:Gem::Dependency
82
- name: therubyracer
82
+ name: childlabor
83
83
  prerelease: false
84
84
  requirement: &id007 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ~>
88
88
  - !ruby/object:Gem::Version
89
- version: 0.8.0
89
+ version: 0.0.3
90
90
  type: :runtime
91
91
  version_requirements: *id007
92
92
  - !ruby/object:Gem::Dependency
93
- name: rspec
93
+ name: therubyracer
94
94
  prerelease: false
95
95
  requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: 0.8.0
101
+ type: :runtime
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
104
+ name: rspec
105
+ prerelease: false
106
+ requirement: &id009 !ruby/object:Gem::Requirement
96
107
  none: false
97
108
  requirements:
98
109
  - - ">="
99
110
  - !ruby/object:Gem::Version
100
111
  version: "0"
101
112
  type: :development
102
- version_requirements: *id008
113
+ version_requirements: *id009
103
114
  description: Unified JavaScript runner for browser and command line
104
115
  email:
105
116
  - charles@sproutcore.com