spade 0.1.0 → 0.1.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 (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