Skip to content

Commit b4c31be

Browse files
committedNov 1, 2014
Add built rspec (for now) ughh
1 parent 5b4f6cd commit b4c31be

File tree

7 files changed

+20269
-55
lines changed

7 files changed

+20269
-55
lines changed
 

‎.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
.DS_Store
22
Gemfile.lock
3-
opal/opal/rspec/rspec.js
43
*.gem

‎Gemfile

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ source 'https://rubygems.org'
22
gemspec
33

44
gem 'opal', :github => 'opal/opal'
5-
# gem 'opal', path: '../opal'
65

76
gem 'rspec', :path => 'rspec'
87
gem 'rspec-support', :path => 'rspec-support'

‎Rakefile

+21
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,24 @@ Bundler::GemHelper.install_tasks
55

66
require 'opal/rspec/rake_task'
77
Opal::RSpec::RakeTask.new(:default)
8+
9+
desc "Build rspec.js"
10+
task :build_rspec do
11+
gems = %w(rspec rspec-core rspec-expectations rspec-mocks rspec-support)
12+
13+
File.open('opal/opal/rspec/rspec.js', 'w+') do |out|
14+
gems.each do |gem|
15+
spec = Gem::Specification.find_by_name gem
16+
lib = File.join spec.gem_dir, 'lib'
17+
18+
Dir["#{lib}/**/*.rb"].each do |file|
19+
asset = file.sub(/^#{lib}\//, '').sub(/\.rb$/, '')
20+
puts "#{file} => #{asset}"
21+
js = Opal.compile(File.read(file), requirable: true, file: asset,
22+
dynamic_require_severity: :warning)
23+
24+
out.puts js
25+
end
26+
end
27+
end
28+
end

‎lib/opal/rspec.rb

-17
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,3 @@
33

44
# Just register our opal code path with opal build tools
55
Opal.append_path File.expand_path('../../../opal', __FILE__)
6-
7-
%w[rspec rspec-core rspec-expectations rspec-mocks rspec-support].each do |gem|
8-
Opal.append_path File.expand_path("../../../#{gem}/lib", __FILE__)
9-
end
10-
11-
::Opal::Processor.dynamic_require_severity = :warning
12-
Opal::Processor.stub_file "rspec/matchers/built_in/have"
13-
Opal::Processor.stub_file "diff/lcs"
14-
Opal::Processor.stub_file "diff/lcs/hunk"
15-
Opal::Processor.stub_file "fileutils"
16-
Opal::Processor.stub_file "test/unit/assertions"
17-
Opal::Processor.stub_file "coderay"
18-
Opal::Processor.stub_file "optparse"
19-
Opal::Processor.stub_file "shellwords"
20-
Opal::Processor.stub_file "socket"
21-
Opal::Processor.stub_file "uri"
22-
Opal::Processor.stub_file "drb/drb"

‎opal-rspec.gemspec

-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ Gem::Specification.new do |s|
1212

1313
s.files = `git ls-files`.split("\n")
1414

15-
%w[rspec rspec-core rspec-expectations rspec-mocks rspec-support].each do |gem|
16-
s.files += Dir["#{gem}/lib/**/*.rb"]
17-
end
18-
1915
s.require_paths = ['lib']
2016

2117
s.add_dependency 'opal', '~> 0.7.0.beta1'

‎opal/opal/rspec/requires.rb

+38-32
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,46 @@
77
require 'rbconfig'
88
require 'pathname'
99

10+
def opal_require_rspec(path)
11+
`Opal.require(path)`
12+
end
13+
14+
require 'opal/rspec/rspec'
15+
1016
# TODO: still needed? meh..
11-
require 'rspec/core/version'
12-
require 'rspec/core/flat_map'
13-
require 'rspec/core/filter_manager'
14-
require 'rspec/core/dsl'
15-
require 'rspec/core/reporter'
16-
require 'rspec/core/hooks'
17-
require 'rspec/core/memoized_helpers'
18-
require 'rspec/core/metadata'
19-
require 'rspec/core/pending'
20-
require 'rspec/core/formatters'
21-
require 'rspec/core/ordering'
22-
require 'rspec/core/world'
23-
require 'rspec/core/configuration'
24-
require 'rspec/core/option_parser'
25-
require 'rspec/core/configuration_options'
26-
require 'rspec/core/command_line'
27-
require 'rspec/core/runner'
28-
require 'rspec/core/example'
29-
require 'rspec/core/shared_example_group/collection'
30-
require 'rspec/core/shared_example_group'
31-
require 'rspec/core/example_group'
17+
opal_require_rspec 'rspec/core/version'
18+
opal_require_rspec 'rspec/core/flat_map'
19+
opal_require_rspec 'rspec/core/filter_manager'
20+
opal_require_rspec 'rspec/core/dsl'
21+
opal_require_rspec 'rspec/core/reporter'
22+
opal_require_rspec 'rspec/core/hooks'
23+
opal_require_rspec 'rspec/core/memoized_helpers'
24+
opal_require_rspec 'rspec/core/metadata'
25+
opal_require_rspec 'rspec/core/pending'
26+
opal_require_rspec 'rspec/core/formatters'
27+
opal_require_rspec 'rspec/core/ordering'
28+
opal_require_rspec 'rspec/core/world'
29+
opal_require_rspec 'rspec/core/configuration'
30+
opal_require_rspec 'rspec/core/option_parser'
31+
opal_require_rspec 'rspec/core/configuration_options'
32+
opal_require_rspec 'rspec/core/command_line'
33+
opal_require_rspec 'rspec/core/runner'
34+
opal_require_rspec 'rspec/core/example'
35+
opal_require_rspec 'rspec/core/shared_example_group/collection'
36+
opal_require_rspec 'rspec/core/shared_example_group'
37+
opal_require_rspec 'rspec/core/example_group'
3238

33-
require 'rspec/core/mocking/with_rspec'
39+
opal_require_rspec 'rspec/core/mocking/with_rspec'
3440

35-
require 'rspec/support'
36-
require 'rspec/core'
37-
require 'rspec/expectations'
38-
require 'rspec/mocks'
39-
require 'rspec'
41+
opal_require_rspec 'rspec/support'
42+
opal_require_rspec 'rspec/core'
43+
opal_require_rspec 'rspec/expectations'
44+
opal_require_rspec 'rspec/mocks'
45+
opal_require_rspec 'rspec'
4046

4147
# FIXME: still needed?
42-
require 'rspec/core/formatters/base_text_formatter'
43-
require 'rspec/core/formatters/html_printer'
44-
require 'rspec/matchers/pretty'
45-
require 'rspec/matchers/built_in/base_matcher'
46-
require 'rspec/matchers/built_in/be'
48+
opal_require_rspec 'rspec/core/formatters/base_text_formatter'
49+
opal_require_rspec 'rspec/core/formatters/html_printer'
50+
opal_require_rspec 'rspec/matchers/pretty'
51+
opal_require_rspec 'rspec/matchers/built_in/base_matcher'
52+
opal_require_rspec 'rspec/matchers/built_in/be'

‎opal/opal/rspec/rspec.js

+20,210
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)
Please sign in to comment.