spade 0.1.0 → 0.1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/.gitignore +0 -11
  2. data/.gitmodules +3 -6
  3. data/Gemfile +10 -0
  4. data/bin/spade +3 -1
  5. data/lib/spade.rb +70 -0
  6. data/lib/spade/bundle.rb +180 -0
  7. data/lib/spade/cli.rb +1 -17
  8. data/lib/spade/cli/base.rb +182 -0
  9. data/lib/spade/console.rb +39 -0
  10. data/lib/spade/context.rb +107 -0
  11. data/lib/spade/evaluator.rb +34 -0
  12. data/lib/spade/exports.rb +70 -0
  13. data/lib/spade/loader.rb +208 -0
  14. data/lib/spade/package/.gitignore +1 -0
  15. data/lib/spade/package/Gemfile +15 -0
  16. data/lib/spade/package/lib/spade.js +1283 -0
  17. data/lib/spade/package/lib/wrapper.js +15 -0
  18. data/lib/spade/package/package.json +17 -0
  19. data/lib/spade/package/spec/javascript/async-test.js +123 -0
  20. data/lib/spade/package/spec/javascript/compiler/javascript.js +13 -0
  21. data/lib/spade/package/spec/javascript/compiler/ruby.js +14 -0
  22. data/lib/spade/package/spec/javascript/loader-test.js +64 -0
  23. data/lib/spade/package/spec/javascript/normalize-test.js +73 -0
  24. data/lib/spade/package/spec/javascript/packages-test.js +50 -0
  25. data/lib/spade/package/spec/javascript/relative-require-test.js +72 -0
  26. data/lib/spade/package/spec/javascript/require-test.js +117 -0
  27. data/lib/spade/package/spec/javascript/sandbox/creation.js +44 -0
  28. data/lib/spade/package/spec/javascript/sandbox/evaluate.js +37 -0
  29. data/lib/spade/package/spec/javascript/sandbox/format.js +79 -0
  30. data/lib/spade/package/spec/javascript/sandbox/misc.js +58 -0
  31. data/lib/spade/package/spec/javascript/sandbox/preprocessor.js +81 -0
  32. data/lib/spade/package/spec/javascript/sandbox/require.js +48 -0
  33. data/lib/spade/package/spec/javascript/sandbox/run-command.js +21 -0
  34. data/lib/spade/package/spec/javascript/spade/externs.js +14 -0
  35. data/lib/spade/package/spec/javascript/spade/load-factory.js +15 -0
  36. data/lib/spade/package/spec/javascript/spade/misc.js +23 -0
  37. data/lib/spade/package/spec/javascript/spade/ready.js +12 -0
  38. data/lib/spade/package/spec/javascript/spade/register.js +13 -0
  39. data/lib/spade/package/spec/javascript_spec.rb +7 -0
  40. data/lib/spade/package/spec/spec_helper.rb +3 -0
  41. data/lib/spade/package/spec/support/core_test.rb +67 -0
  42. data/lib/spade/reactor.rb +159 -0
  43. data/lib/spade/server.rb +66 -0
  44. data/lib/spade/shell.rb +85 -0
  45. data/lib/spade/version.rb +1 -1
  46. data/spade.gemspec +15 -4
  47. data/spec/cli/update_spec.rb +65 -0
  48. data/spec/spec_helper.rb +22 -0
  49. data/spec/support/cli.rb +103 -0
  50. data/spec/support/matchers.rb +12 -0
  51. data/spec/support/path.rb +66 -0
  52. metadata +146 -78
  53. data/.rspec +0 -1
  54. data/Buildfile +0 -18
  55. data/README.md +0 -152
  56. data/Rakefile +0 -9
  57. data/examples/format-app/lib/hello.coffee +0 -1
  58. data/examples/format-app/lib/main.js +0 -6
  59. data/examples/format-app/package.json +0 -10
  60. data/examples/format-app/resources/README.txt +0 -1
  61. data/examples/format-app/resources/config.json +0 -3
  62. data/examples/path-test/lib/hello.js +0 -1
  63. data/examples/path-test/lib/main.js +0 -1
  64. data/examples/path-test/package.json +0 -5
  65. data/examples/sc-app/index.html +0 -13
  66. data/examples/sc-app/lib/main.js +0 -24
  67. data/examples/sc-app/package.json +0 -8
  68. data/examples/single-file.js +0 -22
  69. data/examples/todos/index.html +0 -11
  70. data/examples/todos/lib/main.js +0 -11
  71. data/examples/todos/lib/todos.js +0 -93
  72. data/examples/todos/package.json +0 -10
  73. data/examples/todos/resources/stylesheets/todos.css +0 -162
  74. data/examples/todos/resources/templates/todos.handlebars +0 -31
  75. data/examples/web-app/README.md +0 -83
  76. data/examples/web-app/index.html +0 -12
  77. data/examples/web-app/lib/main.js +0 -3
  78. data/examples/web-app/package.json +0 -6
  79. data/examples/web-app/tests.html +0 -12
  80. data/examples/web-app/tests/ct-example-test.js +0 -39
  81. data/examples/web-app/tests/qunit-test.js +0 -23
@@ -1,3 +1,3 @@
1
1
  module Spade
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1.1'
3
3
  end
@@ -13,14 +13,25 @@ Gem::Specification.new do |s|
13
13
  s.homepage = "http://github.com/strobecorp/spade"
14
14
  s.summary = s.description = "Unified JavaScript runner for browser and command line"
15
15
 
16
- s.add_dependency 'spade-packager', "~> 0.1.0"
17
- s.add_dependency 'spade-runtime', "~> 0.1.0"
16
+ s.add_dependency "eventmachine", "~> 0.12.10"
17
+ s.add_dependency "json_pure", "~> 1.4.6"
18
+ s.add_dependency "rack", "~> 1.2.1"
19
+ s.add_dependency "thor", "~> 0.14.3"
20
+ s.add_dependency "childlabor", "~> 0.0.3"
21
+ s.add_dependency "therubyracer", "~> 0.9.2"
18
22
 
19
- s.add_development_dependency 'rspec'
23
+ s.add_development_dependency "rspec"
24
+ s.add_development_dependency "bpm"
20
25
 
21
- s.files = `git ls-files`.split("\n")
26
+ paths = `git submodule`.split("\n").map do |line|
27
+ path = line.gsub(/^.\w+\s+(\S+).*/,'\1')
28
+ `cd #{path}; git ls-files`.split("\n").map { |p| File.join(path, p) }
29
+ end
30
+ paths << `git ls-files`.split("\n")
31
+ s.files = paths.flatten
22
32
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
23
33
 
24
34
  s.executables = ['spade']
25
35
  s.require_paths = ["lib"]
26
36
  end
37
+
@@ -0,0 +1,65 @@
1
+ require "spec_helper"
2
+
3
+ describe "spade update" do
4
+ before do
5
+ # prep the application
6
+ goto_home
7
+
8
+ FileUtils.mkdir_p (@app_path = tmp.join("update_test"))
9
+ FileUtils.mkdir_p (@app_packages_path = @app_path.join("packages"))
10
+ FileUtils.mkdir_p (@app_vendor_packages_path = @app_path.join("vendor/packages"))
11
+ app_package_file_path = @app_path.join("package.json")
12
+ File.open(app_package_file_path, 'w') do |f2|
13
+ f2.puts '{"name":"update_test","dependencies":{"fake_package": null}}'
14
+ end
15
+ cd(@app_path)
16
+
17
+ end
18
+ after do
19
+ cd(home)
20
+ FileUtils.rm_r @app_path
21
+ end
22
+
23
+ it "should use required packages if they are in the application's packages folder" do
24
+ FileUtils.mkdir_p (package_path = @app_packages_path.join("fake_package"))
25
+ package_file_path = package_path.join("package.json")
26
+ File.open(package_file_path, 'w') do |f|
27
+ f.puts '{"name": "fake_package"}'
28
+ end
29
+ spade("update", "--working=#{@app_path.to_s}")
30
+ wait()
31
+ "fake_package".should be_linked_to("../../packages/fake_package")
32
+ end
33
+
34
+ it "should use required packages if they are in the application's vendor/packages folder" do
35
+ FileUtils.mkdir_p (package_path = @app_vendor_packages_path.join("fake_package"))
36
+ package_file_path = package_path.join("package.json")
37
+ File.open(package_file_path, 'w') do |f|
38
+ f.puts '{"name": "fake_package"}'
39
+ end
40
+ spade("update", "--working=#{@app_path.to_s}")
41
+ wait()
42
+ "fake_package".should be_linked_to("../../vendor/packages/fake_package")
43
+ end
44
+
45
+ it "should use required packages if they are in the home bpm directory" do
46
+ FileUtils.mkdir_p (package_path = bpm_dir.join("gems","fake_package"))
47
+ package_file_path = package_path.join("package.json")
48
+ File.open(package_file_path, 'w') do |f|
49
+ f.puts '{"name": "fake_package"}'
50
+ end
51
+ unthreaded_spade("update", "--working=#{@app_path.to_s}")
52
+ "fake_package".should be_linked_to(package_path)
53
+ end
54
+
55
+ it "should not try to choose from the home spade directory if BPM is not installed"
56
+ it "should install from the network repository if it does not exist elsewhere"
57
+ it "should raise an error if the package is in none of the locations"
58
+ it "should not link to a package if it is the incorrect version"
59
+ it "should not try to install the package if BPM is not installed"
60
+ it "should install the correct version"
61
+ it "should raise an error if the package is only available in the wrong version"
62
+ it "should select packages in the correct order if there are multiple equal editions"
63
+ it "should create a spade-boot.js"
64
+ it "should record the versions in spade-boot.js"
65
+ end
@@ -0,0 +1,22 @@
1
+ Bundler.require :default, :development
2
+
3
+ require 'support/cli'
4
+ require 'support/path'
5
+ require 'support/matchers'
6
+
7
+ RSpec.configure do |config|
8
+ working_dir = Dir.pwd
9
+
10
+ config.include SpecHelpers
11
+
12
+ config.around do |blk|
13
+ reset!
14
+
15
+ blk.call
16
+
17
+ kill!
18
+ Dir.chdir working_dir if Dir.pwd != working_dir
19
+ end
20
+ end
21
+
22
+
@@ -0,0 +1,103 @@
1
+ require 'spade'
2
+ require 'thor'
3
+
4
+ module SpecHelpers
5
+ attr_reader :stdin, :stdout, :stderr
6
+
7
+ def env
8
+ @env ||= {}
9
+ end
10
+
11
+ def unthreaded_spade(*argv)
12
+ opts = Hash === argv.last ? argv.pop : {}
13
+ Spade::CLI::Base.start(argv)
14
+ end
15
+
16
+ def spade(*argv)
17
+ opts = Hash === argv.last ? argv.pop : {}
18
+
19
+ kill!
20
+ create_pipes
21
+
22
+ @pid = Process.fork do
23
+ Dir.chdir opts[:chdir] if opts[:chdir]
24
+
25
+ @stdout.close
26
+ STDOUT.reopen @stdout_child
27
+
28
+ @stdin.close
29
+ STDIN.reopen @stdin_child
30
+
31
+ if opts[:track_stderr]
32
+ @stderr.close
33
+ STDERR.reopen @stderr_child
34
+ end
35
+
36
+ env.each do |key, val|
37
+ ENV[key] = val
38
+ end
39
+
40
+ Spade::CLI::Base.start(argv)
41
+ end
42
+
43
+ @stdout_child.close
44
+ @stdin_child.close
45
+ @stderr_child.close
46
+ @pid
47
+ end
48
+
49
+ def out_until_block(io = stdout)
50
+ # read 1 first so we wait until the process is done processing the last write
51
+ chars = io.read(1)
52
+
53
+ loop do
54
+ chars << io.read_nonblock(1000)
55
+ sleep 0.05
56
+ end
57
+ rescue Errno::EAGAIN, EOFError
58
+ chars
59
+ end
60
+
61
+ def input(line, opts = {})
62
+ if on = opts[:on]
63
+ should_block_on on
64
+ end
65
+ stdin << "#{line}\n"
66
+ end
67
+
68
+ def wait
69
+ return unless @pid
70
+
71
+ pid, status = Process.wait2(@pid, 0)
72
+
73
+ @exit_status = status
74
+ @pid = nil
75
+ end
76
+
77
+ def exit_status
78
+ wait
79
+ @exit_status
80
+ end
81
+
82
+ def kill!
83
+ Process.kill(9, @pid) if @pid
84
+ end
85
+
86
+ def create_pipes
87
+ @stdout, @stdout_child = IO.pipe
88
+ @stdin_child, @stdin = IO.pipe
89
+ @stderr, @stderr_child = IO.pipe
90
+ end
91
+
92
+ def write_api_key(api_key)
93
+ write_creds("user@example.com", api_key)
94
+ end
95
+
96
+ def write_creds(email, api_key)
97
+ FileUtils.mkdir_p(spade_dir)
98
+ File.open(spade_dir("credentials"), "w") do |file|
99
+ file.write YAML.dump(:spade_api_key => api_key, :spade_email => email)
100
+ end
101
+ end
102
+ end
103
+
@@ -0,0 +1,12 @@
1
+ RSpec::Matchers.define :be_linked_to do |package_path|
2
+ include SpecHelpers
3
+ match do |package_name|
4
+ package_link_path = tmp.join("update_test",".spade","packages",package_name)
5
+ File.readlink(package_link_path).to_s == package_path.to_s
6
+ end
7
+ failure_message_for_should do |package_name|
8
+ package_link_path = tmp.join("update_test",".spade","packages",package_name)
9
+ "expected that #{package_name} would be linked to #{package_path}, but is linked to #{File.readlink(package_link_path)}"
10
+ end
11
+ end
12
+
@@ -0,0 +1,66 @@
1
+ module SpecHelpers
2
+ def reset!
3
+ FileUtils.rm_rf tmp
4
+ [ home, local ].each do |dir|
5
+ FileUtils.mkdir_p(dir)
6
+ end
7
+ end
8
+
9
+ def cd(path, &blk)
10
+ Dir.chdir(path, &blk)
11
+ end
12
+
13
+ def cwd(*args)
14
+ Pathname.new(Dir.pwd).join(*args)
15
+ end
16
+
17
+ def rm(path)
18
+ FileUtils.rm path
19
+ end
20
+
21
+ def rm_r(path)
22
+ FileUtils.rm_r path
23
+ end
24
+
25
+ def rm_rf(path)
26
+ FileUtils.rm_rf(path)
27
+ end
28
+
29
+ def root
30
+ @root ||= Pathname.new(File.expand_path("../../..", __FILE__))
31
+ end
32
+
33
+ def fixtures(*path)
34
+ root.join('spec/fixtures', *path)
35
+ end
36
+
37
+ def tmp(*path)
38
+ root.join("tmp", *path)
39
+ end
40
+
41
+ def home(*path)
42
+ tmp.join("home", *path)
43
+ end
44
+
45
+ def local(*path)
46
+ tmp.join("local", *path)
47
+ end
48
+
49
+ def spade_dir(*path)
50
+ home(Spade::SPADE_DIR, *path)
51
+ end
52
+
53
+ def bpm_dir(*path)
54
+ home(BPM::BPM_DIR, *path)
55
+ end
56
+
57
+ def goto_home
58
+ cd(home)
59
+ ENV["HOME"] = home.to_s
60
+ LibGems.clear_paths
61
+ end
62
+
63
+ module_function :root, :tmp, :home, :local
64
+ end
65
+
66
+
metadata CHANGED
@@ -1,124 +1,192 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: spade
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1.1
4
5
  prerelease:
5
- version: 0.1.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Charles Jolley
9
9
  - Peter Wagenet
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
-
14
- date: 2011-06-13 00:00:00 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: spade-packager
13
+ date: 2011-06-29 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: eventmachine
17
+ requirement: &2153224260 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 0.12.10
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *2153224260
26
+ - !ruby/object:Gem::Dependency
27
+ name: json_pure
28
+ requirement: &2153223720 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.4.6
34
+ type: :runtime
18
35
  prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
36
+ version_requirements: *2153223720
37
+ - !ruby/object:Gem::Dependency
38
+ name: rack
39
+ requirement: &2153223140 !ruby/object:Gem::Requirement
20
40
  none: false
21
- requirements:
41
+ requirements:
22
42
  - - ~>
23
- - !ruby/object:Gem::Version
24
- version: 0.1.0
43
+ - !ruby/object:Gem::Version
44
+ version: 1.2.1
25
45
  type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: spade-runtime
29
46
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
47
+ version_requirements: *2153223140
48
+ - !ruby/object:Gem::Dependency
49
+ name: thor
50
+ requirement: &2153222380 !ruby/object:Gem::Requirement
31
51
  none: false
32
- requirements:
52
+ requirements:
33
53
  - - ~>
34
- - !ruby/object:Gem::Version
35
- version: 0.1.0
54
+ - !ruby/object:Gem::Version
55
+ version: 0.14.3
36
56
  type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
57
+ prerelease: false
58
+ version_requirements: *2153222380
59
+ - !ruby/object:Gem::Dependency
60
+ name: childlabor
61
+ requirement: &2153219100 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: 0.0.3
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: *2153219100
70
+ - !ruby/object:Gem::Dependency
71
+ name: therubyracer
72
+ requirement: &2153218000 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.9.2
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: *2153218000
81
+ - !ruby/object:Gem::Dependency
39
82
  name: rspec
83
+ requirement: &2153217460 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :development
40
90
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
91
+ version_requirements: *2153217460
92
+ - !ruby/object:Gem::Dependency
93
+ name: bpm
94
+ requirement: &2153215880 !ruby/object:Gem::Requirement
42
95
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
47
100
  type: :development
48
- version_requirements: *id003
101
+ prerelease: false
102
+ version_requirements: *2153215880
49
103
  description: Unified JavaScript runner for browser and command line
50
- email:
104
+ email:
51
105
  - charles@sproutcore.com
52
106
  - peterw@strobecorp.com
53
- executables:
107
+ executables:
54
108
  - spade
55
109
  extensions: []
56
-
57
110
  extra_rdoc_files: []
58
-
59
- files:
111
+ files:
112
+ - lib/spade/package/.gitignore
113
+ - lib/spade/package/Gemfile
114
+ - lib/spade/package/lib/spade.js
115
+ - lib/spade/package/lib/wrapper.js
116
+ - lib/spade/package/package.json
117
+ - lib/spade/package/spec/javascript/async-test.js
118
+ - lib/spade/package/spec/javascript/compiler/javascript.js
119
+ - lib/spade/package/spec/javascript/compiler/ruby.js
120
+ - lib/spade/package/spec/javascript/loader-test.js
121
+ - lib/spade/package/spec/javascript/normalize-test.js
122
+ - lib/spade/package/spec/javascript/packages-test.js
123
+ - lib/spade/package/spec/javascript/relative-require-test.js
124
+ - lib/spade/package/spec/javascript/require-test.js
125
+ - lib/spade/package/spec/javascript/sandbox/creation.js
126
+ - lib/spade/package/spec/javascript/sandbox/evaluate.js
127
+ - lib/spade/package/spec/javascript/sandbox/format.js
128
+ - lib/spade/package/spec/javascript/sandbox/misc.js
129
+ - lib/spade/package/spec/javascript/sandbox/preprocessor.js
130
+ - lib/spade/package/spec/javascript/sandbox/require.js
131
+ - lib/spade/package/spec/javascript/sandbox/run-command.js
132
+ - lib/spade/package/spec/javascript/spade/externs.js
133
+ - lib/spade/package/spec/javascript/spade/load-factory.js
134
+ - lib/spade/package/spec/javascript/spade/misc.js
135
+ - lib/spade/package/spec/javascript/spade/ready.js
136
+ - lib/spade/package/spec/javascript/spade/register.js
137
+ - lib/spade/package/spec/javascript_spec.rb
138
+ - lib/spade/package/spec/spec_helper.rb
139
+ - lib/spade/package/spec/support/core_test.rb
60
140
  - .gitignore
61
141
  - .gitmodules
62
- - .rspec
63
- - Buildfile
64
- - README.md
65
- - Rakefile
142
+ - Gemfile
66
143
  - bin/spade
67
- - examples/format-app/lib/hello.coffee
68
- - examples/format-app/lib/main.js
69
- - examples/format-app/package.json
70
- - examples/format-app/resources/README.txt
71
- - examples/format-app/resources/config.json
72
- - examples/path-test/lib/hello.js
73
- - examples/path-test/lib/main.js
74
- - examples/path-test/package.json
75
- - examples/sc-app/index.html
76
- - examples/sc-app/lib/main.js
77
- - examples/sc-app/package.json
78
- - examples/single-file.js
79
- - examples/todos/index.html
80
- - examples/todos/lib/main.js
81
- - examples/todos/lib/todos.js
82
- - examples/todos/package.json
83
- - examples/todos/resources/stylesheets/todos.css
84
- - examples/todos/resources/templates/todos.handlebars
85
- - examples/web-app/README.md
86
- - examples/web-app/index.html
87
- - examples/web-app/lib/main.js
88
- - examples/web-app/package.json
89
- - examples/web-app/tests.html
90
- - examples/web-app/tests/ct-example-test.js
91
- - examples/web-app/tests/qunit-test.js
92
144
  - lib/spade.rb
145
+ - lib/spade/bundle.rb
93
146
  - lib/spade/cli.rb
147
+ - lib/spade/cli/base.rb
148
+ - lib/spade/console.rb
149
+ - lib/spade/context.rb
150
+ - lib/spade/evaluator.rb
151
+ - lib/spade/exports.rb
152
+ - lib/spade/loader.rb
153
+ - lib/spade/reactor.rb
154
+ - lib/spade/server.rb
155
+ - lib/spade/shell.rb
94
156
  - lib/spade/version.rb
95
157
  - spade.gemspec
158
+ - spec/cli/update_spec.rb
159
+ - spec/spec_helper.rb
160
+ - spec/support/cli.rb
161
+ - spec/support/matchers.rb
162
+ - spec/support/path.rb
96
163
  homepage: http://github.com/strobecorp/spade
97
164
  licenses: []
98
-
99
165
  post_install_message:
100
166
  rdoc_options: []
101
-
102
- require_paths:
167
+ require_paths:
103
168
  - lib
104
- required_ruby_version: !ruby/object:Gem::Requirement
169
+ required_ruby_version: !ruby/object:Gem::Requirement
105
170
  none: false
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: "0"
110
- required_rubygems_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
176
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: "0"
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
116
181
  requirements: []
117
-
118
182
  rubyforge_project:
119
183
  rubygems_version: 1.8.5
120
184
  signing_key:
121
185
  specification_version: 3
122
186
  summary: Unified JavaScript runner for browser and command line
123
- test_files: []
124
-
187
+ test_files:
188
+ - spec/cli/update_spec.rb
189
+ - spec/spec_helper.rb
190
+ - spec/support/cli.rb
191
+ - spec/support/matchers.rb
192
+ - spec/support/path.rb