opal-rails 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +38 -0
- data/.gitignore +1 -0
- data/Appraisals +10 -14
- data/CHANGELOG.md +62 -0
- data/Gemfile +7 -4
- data/README.md +45 -9
- data/app/helpers/opal_helper.rb +6 -5
- data/bin/rackup +29 -0
- data/bin/rails +8 -0
- data/bin/rails-engine +13 -0
- data/bin/rails-sandbox +18 -0
- data/bin/rake +29 -0
- data/bin/rspec +29 -0
- data/bin/sandbox +39 -0
- data/bin/sandbox-setup +14 -0
- data/bin/setup +8 -0
- data/gemfiles/rails_6_0_opal_1_0.gemfile +9 -0
- data/gemfiles/rails_6_0_opal_1_1.gemfile +9 -0
- data/gemfiles/rails_6_1_opal_1_0.gemfile +9 -0
- data/gemfiles/rails_6_1_opal_1_1.gemfile +9 -0
- data/lib/assets/javascripts/opal_ujs.js.rb +1 -4
- data/lib/generators/opal/assets/assets_generator.rb +7 -0
- data/lib/{rails/generators → generators}/opal/assets/templates/javascript.js.rb +0 -0
- data/lib/generators/opal/install/USAGE +8 -0
- data/lib/generators/opal/install/install_generator.rb +12 -0
- data/lib/generators/opal/install/templates/application.js.rb +12 -0
- data/lib/opal/rails.rb +0 -4
- data/lib/opal/rails/engine.rb +9 -2
- data/lib/opal/rails/template_handler.rb +16 -7
- data/lib/opal/rails/version.rb +1 -1
- data/opal-rails.gemspec +45 -40
- data/spec/helpers/opal_helper_spec.rb +23 -9
- data/spec/integration/assigns_spec.rb +58 -2
- data/spec/integration/source_map_spec.rb +9 -5
- data/spec/support/capybara.rb +2 -0
- data/test_apps/{application_controller.rb → app/application_controller.rb} +1 -1
- data/test_apps/app/assets/config/manifest.js +1 -0
- data/test_apps/{assets → app/assets}/javascripts/application.js.rb +1 -0
- data/test_apps/{assets → app/assets}/javascripts/bar.rb +0 -0
- data/test_apps/{assets → app/assets}/javascripts/foo.js.rb +0 -0
- data/test_apps/{assets → app/assets}/javascripts/source_map_example.js.rb +0 -0
- data/test_apps/{assets → app/assets}/javascripts/with_assignments.js.rb +0 -0
- data/test_apps/{rails5.rb → rails6.rb} +1 -3
- metadata +49 -84
- data/.travis.yml +0 -42
- data/gemfiles/rails_5_1_opal_1_0.gemfile +0 -12
- data/gemfiles/rails_5_1_opal_master.gemfile +0 -11
- data/gemfiles/rails_5_2_opal_1_0.gemfile +0 -12
- data/gemfiles/rails_5_2_opal_master.gemfile +0 -11
- data/lib/rails/generators/opal/assets/assets_generator.rb +0 -12
- data/spec/integration/template_spec.rb +0 -9
- data/test_apps/rails4.rb +0 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49586db0f49f4f31e3e289e1f813275e1b81ab083aa5e771887e5e93bc08b83b
|
4
|
+
data.tar.gz: 02d8db2458c45f4fe2554028571288b2664f8cfc64bba320a62d59a9ea120567
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec6e2d6ce3226094ef31bcb2b75a5317b7d0a1e05cb3af627022dfd00697787ad1ed6fdd739cfb485a741685e4cfd8b746d3fb29a1e4a29b6bcc1b6163aef362
|
7
|
+
data.tar.gz: eac8d359fbd8589edd16c7df490a619fe9d2e3a09640ab0d1d14ece16cd5f6d1fa31cb2d82f9bacb8ffe8bf6bf164a565ff72181e89f109f45566992d8a72631
|
@@ -0,0 +1,38 @@
|
|
1
|
+
on:
|
2
|
+
pull_request:
|
3
|
+
branches:
|
4
|
+
- master
|
5
|
+
push:
|
6
|
+
branches:
|
7
|
+
- ci-check
|
8
|
+
- "*/ci-check"
|
9
|
+
- master
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
build:
|
13
|
+
strategy:
|
14
|
+
matrix:
|
15
|
+
ruby: ['2.5.x', '2.6.x', '2.7.x', '3.0.x']
|
16
|
+
rails: ['rails_6_0', 'rails_6_1']
|
17
|
+
opal: ['opal_1_0', 'opal_1_1']
|
18
|
+
runs-on: ubuntu-latest
|
19
|
+
|
20
|
+
steps:
|
21
|
+
- name: Install libraries
|
22
|
+
run: |
|
23
|
+
sudo apt-get update
|
24
|
+
sudo apt-get install -y sqlite3 libsqlite3-dev
|
25
|
+
- uses: actions/checkout@v1
|
26
|
+
- name: Set up Ruby
|
27
|
+
uses: actions/setup-ruby@v1
|
28
|
+
with:
|
29
|
+
ruby-version: ${{ matrix.ruby }}
|
30
|
+
- name: Install Dependencies
|
31
|
+
run: |
|
32
|
+
export BUNDLE_GEMFILE="gemfiles/${{ matrix.rails }}_${{ matrix.opal }}.gemfile"
|
33
|
+
gem install bundler
|
34
|
+
bundle install --jobs 4 --retry 3
|
35
|
+
- name: Test with Rake
|
36
|
+
run: |
|
37
|
+
export BUNDLE_GEMFILE="gemfiles/${{ matrix.rails }}_${{ matrix.opal }}.gemfile"
|
38
|
+
bundle exec rake
|
data/.gitignore
CHANGED
data/Appraisals
CHANGED
@@ -1,34 +1,30 @@
|
|
1
1
|
current_ruby = Gem::Version.new(RUBY_VERSION)
|
2
|
-
ruby_2_2_2 = Gem::Version.new('2.2.2')
|
3
2
|
ruby_2_4_0 = Gem::Version.new('2.4.0')
|
3
|
+
ruby_2_5_0 = Gem::Version.new('2.5.0')
|
4
4
|
|
5
5
|
ENV['OPAL_VERSION'] = nil # ensure the env is clean
|
6
6
|
|
7
7
|
github = -> repo_name { "https://github.com/#{repo_name}.git" }
|
8
8
|
|
9
9
|
{
|
10
|
-
|
11
|
-
|
12
|
-
gemfile.gem 'opal'
|
13
|
-
gemfile.gem 'opal-rspec', git: github['opal/opal-rspec'], branch: :master
|
14
|
-
gemfile.gem 'opal-sprockets', git: github['opal/opal-sprockets'], branch: :master
|
10
|
+
opal_1_1: -> gemfile do
|
11
|
+
gemfile.gem 'opal', '~> 1.1.0'
|
12
|
+
gemfile.gem 'opal-sprockets'
|
15
13
|
end,
|
16
14
|
|
17
15
|
opal_1_0: -> gemfile do
|
18
16
|
gemfile.gem 'opal', '~> 1.0.0'
|
19
|
-
gemfile.gem 'opal-rspec', git: github['opal/opal-rspec'], branch: :master
|
20
|
-
gemfile.gem 'opal-jquery', git: github['opal/opal-jquery'], branch: :master
|
21
17
|
gemfile.gem 'opal-sprockets'
|
22
18
|
end,
|
23
19
|
|
24
20
|
}.each do |opal_version, gem_opal|
|
25
|
-
appraise "
|
26
|
-
gem "rails", "~>
|
21
|
+
appraise "rails_6_0_#{opal_version}" do
|
22
|
+
gem "rails", "~> 6.0.0"
|
27
23
|
gem_opal[self]
|
28
|
-
end if current_ruby >=
|
24
|
+
end if current_ruby >= ruby_2_5_0
|
29
25
|
|
30
|
-
appraise "
|
31
|
-
gem "rails", "~>
|
26
|
+
appraise "rails_6_1_#{opal_version}" do
|
27
|
+
gem "rails", "~> 6.1.0"
|
32
28
|
gem_opal[self]
|
33
|
-
end if current_ruby >=
|
29
|
+
end if current_ruby >= ruby_2_5_0
|
34
30
|
end
|
data/CHANGELOG.md
CHANGED
@@ -18,6 +18,67 @@ Whitespace conventions:
|
|
18
18
|
- 1 spaces before normal text
|
19
19
|
-->
|
20
20
|
|
21
|
+
## [2.0](https://github.com/opal/opal-rails/compare/v1.1.2...v2.0.0) - unreleased
|
22
|
+
|
23
|
+
*Bumping a major version, since this version will make a number of dependencies opt-in and drop older Rails and Sprockets versions*
|
24
|
+
|
25
|
+
### Added
|
26
|
+
|
27
|
+
- Added support for Rails v6.1
|
28
|
+
- Added a generator for the initial setup (`bin/rails generate opal:install`) that will configure sprockets and create the main `application.js.rb`
|
29
|
+
|
30
|
+
### Changed
|
31
|
+
|
32
|
+
- Now the template handler will encode/decode local and instance variables with ActiveSupport::JSON
|
33
|
+
|
34
|
+
### Removed
|
35
|
+
|
36
|
+
- Removed support for Rails 5.x
|
37
|
+
- `opal-jquery` and `opal-activesupport` are no longer dependencies of `opal-rails`, if you need them you'll need to require and setup them manually
|
38
|
+
|
39
|
+
|
40
|
+
## [1.1.2](https://github.com/opal/opal-rails/compare/v1.1.1...v1.1.2) - 2019-09-26
|
41
|
+
|
42
|
+
|
43
|
+
### Fixed
|
44
|
+
|
45
|
+
- Default `skip_onload` to `true` when `javascript_asset_tag` is in debug mode, otherwise some assets may be loaded in the browser after the main source, thus being never loading by the Opal runtime.
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
## [1.1.1](https://github.com/opal/opal-rails/compare/v1.1.0...v1.1.1) - 2019-09-14
|
51
|
+
|
52
|
+
|
53
|
+
### Fixed
|
54
|
+
|
55
|
+
- Fix a problem with require order with regards to `opal-sprockets`.
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
## [1.1.0](https://github.com/opal/opal-rails/compare/v1.0.1...v1.1.0) - 2019-09-14
|
61
|
+
|
62
|
+
|
63
|
+
### Added
|
64
|
+
|
65
|
+
- Added the ability to pass only locals or only ivars when reproducing assigns in Opal templates, `Rails.application.config.opal.assigns_in_templates` can now be set to `:locals` or `:ivars` in addition to the already possible `true`.
|
66
|
+
|
67
|
+
|
68
|
+
### Changed
|
69
|
+
|
70
|
+
- The template handler now allows for the new Rails 6 api taking in both the template object and a source argument, but still allows the old behavior
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
## [1.0.1](https://github.com/opal/opal-rails/compare/v1.0.0...v1.0.1) - 2019-09-07
|
76
|
+
|
77
|
+
|
78
|
+
### Added
|
79
|
+
|
80
|
+
- Added support for Rails v6.0 (Sprockets)
|
81
|
+
|
21
82
|
|
22
83
|
|
23
84
|
|
@@ -43,6 +104,7 @@ Whitespace conventions:
|
|
43
104
|
|
44
105
|
|
45
106
|
|
107
|
+
|
46
108
|
## [0.9.5](https://github.com/opal/opal-rails/compare/v0.9.4...v0.9.5) - 2018-09-07
|
47
109
|
|
48
110
|
|
data/Gemfile
CHANGED
@@ -2,10 +2,13 @@ source 'https://rubygems.org'
|
|
2
2
|
gemspec
|
3
3
|
github = -> repo { "https://github.com/#{repo}.git" }
|
4
4
|
|
5
|
-
|
5
|
+
case ENV['OPAL_VERSION']
|
6
|
+
when 'local'
|
7
|
+
gem 'opal', path: '../opal'
|
8
|
+
gem 'opal-rspec', path: '../opal-rspec'
|
9
|
+
gem 'opal-sprockets', path: '../opal-sprockets'
|
10
|
+
gem 'pry'
|
11
|
+
when 'master'
|
6
12
|
gem 'opal', git: github['opal/opal'], branch: :master
|
7
|
-
gem 'opal-rspec', git: github['opal/opal-rspec'], branch: :master
|
8
13
|
gem 'opal-sprockets', git: github['opal/opal-sprockets'], branch: :master
|
9
14
|
end
|
10
|
-
|
11
|
-
gem 'c_lexer'
|
data/README.md
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
# Opal Rails
|
2
2
|
|
3
|
-
[![Build Status](https://
|
4
|
-
[![
|
3
|
+
[![Build Status](https://github.com/opal/opal-rails/workflows/CI/badge.svg)](https://github.com/opal/opal-rails/actions)
|
4
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/31dda24adcecb836348f/maintainability)](https://codeclimate.com/github/opal/opal-rails/maintainability)
|
5
5
|
[![Gem Version](https://badge.fury.io/rb/opal-rails.svg)](http://badge.fury.io/rb/opal-rails)
|
6
6
|
![fun guaranteed](https://img.shields.io/badge/fun-guaranteed-brightgreen.svg)
|
7
7
|
![web scale](http://img.shields.io/badge/webscale-over%209000-green.svg)
|
8
8
|
|
9
|
-
_Rails bindings for [Opal
|
9
|
+
_Rails bindings for [Opal](http://opalrb.com). ([Changelog](https://github.com/opal/opal-rails/blob/master/CHANGELOG.md))_
|
10
10
|
|
11
|
+
### Looking for Webpack support? 👀
|
12
|
+
|
13
|
+
If you want to integrate Opal via Webpack please refer to [opal-webpack-loader](https://github.com/isomorfeus/opal-webpack-loader#installation) installation instructions.
|
14
|
+
|
15
|
+
ℹ️ Webpack and ES6 modules are not yet officially supported, but we're working on it thanks to the awesome work done in _opal-webpack-loader_.
|
11
16
|
|
12
17
|
|
13
18
|
## Installation
|
@@ -18,10 +23,10 @@ In your `Gemfile`
|
|
18
23
|
gem 'opal-rails'
|
19
24
|
```
|
20
25
|
|
21
|
-
|
26
|
+
Add `app/assets/javascript` to your asset-pipeline manifest in `app/assets/config/manifest.js`:
|
22
27
|
|
23
|
-
```
|
24
|
-
rails
|
28
|
+
```
|
29
|
+
bin/rails opal:install
|
25
30
|
```
|
26
31
|
|
27
32
|
|
@@ -36,9 +41,17 @@ Rails.application.config.opal.optimized_operators = true
|
|
36
41
|
Rails.application.config.opal.arity_check = !Rails.env.production?
|
37
42
|
Rails.application.config.opal.const_missing = true
|
38
43
|
Rails.application.config.opal.dynamic_require_severity = :ignore
|
44
|
+
|
45
|
+
# Other options
|
46
|
+
|
47
|
+
# Send local and instance variables down to the view after converting
|
48
|
+
# thier value with `.to_json`
|
49
|
+
Rails.application.config.opal.assigns_in_templates = true
|
50
|
+
Rails.application.config.opal.assigns_in_templates = :locals # only locals
|
51
|
+
Rails.application.config.opal.assigns_in_templates = :ivars # only instance variables
|
39
52
|
```
|
40
53
|
|
41
|
-
For a full list of the available configuration options please refer to: [lib/opal/config.rb](https://github.com/opal/opal/blob/master/lib/opal/config.rb).
|
54
|
+
For a full list of the available configuration options for the compiler please refer to: [lib/opal/config.rb](https://github.com/opal/opal/blob/master/lib/opal/config.rb).
|
42
55
|
|
43
56
|
|
44
57
|
|
@@ -178,7 +191,6 @@ Of course you need to require `haml-rails` separately since its presence is not
|
|
178
191
|
Element.find('.comments').effect(:fade_in)
|
179
192
|
end
|
180
193
|
end
|
181
|
-
|
182
194
|
```
|
183
195
|
|
184
196
|
|
@@ -244,10 +256,34 @@ Opal.use_gem 'cannonbol'
|
|
244
256
|
```
|
245
257
|
|
246
258
|
|
259
|
+
## Contributing
|
260
|
+
|
261
|
+
Run the specs:
|
262
|
+
|
263
|
+
```
|
264
|
+
bin/setup
|
265
|
+
bin/rake
|
266
|
+
```
|
267
|
+
|
268
|
+
Inspect the test app:
|
269
|
+
|
270
|
+
```
|
271
|
+
bin/rackup
|
272
|
+
# visit localhost:9292
|
273
|
+
```
|
274
|
+
|
275
|
+
Tinker with a sandbox app:
|
276
|
+
|
277
|
+
```
|
278
|
+
bin/sandbox # will re-create the app
|
279
|
+
bin/rails s # will start the sandbox app server
|
280
|
+
# visit localhost:3000
|
281
|
+
```
|
282
|
+
|
247
283
|
|
248
284
|
## License
|
249
285
|
|
250
|
-
© 2012-
|
286
|
+
© 2012-2021 Elia Schito
|
251
287
|
|
252
288
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
253
289
|
of this software and associated documentation files (the "Software"), to deal
|
data/app/helpers/opal_helper.rb
CHANGED
@@ -10,20 +10,21 @@ module OpalHelper
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def javascript_include_tag(*sources)
|
13
|
-
options = sources.extract_options
|
13
|
+
options = sources.extract_options!.symbolize_keys
|
14
|
+
debug = options[:debug] != false
|
14
15
|
skip_loader = options.delete(:skip_opal_loader)
|
15
|
-
|
16
|
+
force_opal_loader_tag = options.delete(:force_opal_loader_tag) || debug
|
16
17
|
|
17
|
-
return super(*sources, options) if skip_loader
|
18
|
+
return super(*sources, options) if skip_loader && !force_opal_loader_tag
|
18
19
|
|
19
20
|
script_tags = "".html_safe
|
20
21
|
sources.each do |source|
|
21
22
|
load_asset_code = Opal::Sprockets.load_asset(source)
|
22
23
|
loading_code = "if(window.Opal && Opal.modules[#{source.to_json}]){#{load_asset_code}}"
|
23
24
|
|
24
|
-
if
|
25
|
+
if force_opal_loader_tag
|
25
26
|
script_tags << super(source, options)
|
26
|
-
script_tags << javascript_tag(loading_code)
|
27
|
+
script_tags << "\n".html_safe + javascript_tag(loading_code)
|
27
28
|
else
|
28
29
|
script_tags << super(source, options.merge(onload: loading_code))
|
29
30
|
end
|
data/bin/rackup
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rackup' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rack", "rackup")
|
data/bin/rails
ADDED
data/bin/rails-engine
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# This command will automatically be run when you run "rails" with Rails gems
|
3
|
+
# installed from the root of your application.
|
4
|
+
|
5
|
+
ENGINE_ROOT = File.expand_path('..', __dir__)
|
6
|
+
ENGINE_PATH = File.expand_path('../lib/opal/rails/engine', __dir__)
|
7
|
+
|
8
|
+
# Set up gems listed in the Gemfile.
|
9
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
|
10
|
+
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
|
11
|
+
|
12
|
+
require 'rails/all'
|
13
|
+
require 'rails/engine/commands'
|
data/bin/rails-sandbox
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# frozen_string_literal: true
|
4
|
+
|
5
|
+
app_root = 'sandbox'
|
6
|
+
|
7
|
+
unless File.exist? "#{app_root}/bin/rails"
|
8
|
+
warn 'Creating the sandbox app...'
|
9
|
+
Dir.chdir "#{__dir__}/.." do
|
10
|
+
system "#{__dir__}/sandbox" or begin # rubocop:disable Style/AndOr
|
11
|
+
warn 'Automatic creation of the sandbox app failed'
|
12
|
+
exit 1
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Dir.chdir app_root
|
18
|
+
exec 'bin/rails', *ARGV
|
data/bin/rake
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rake' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rake", "rake")
|
data/bin/rspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
#
|
5
|
+
# This file was generated by Bundler.
|
6
|
+
#
|
7
|
+
# The application 'rspec' is installed as part of a gem, and
|
8
|
+
# this file is here to facilitate running it.
|
9
|
+
#
|
10
|
+
|
11
|
+
require "pathname"
|
12
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
13
|
+
Pathname.new(__FILE__).realpath)
|
14
|
+
|
15
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
16
|
+
|
17
|
+
if File.file?(bundle_binstub)
|
18
|
+
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
19
|
+
load(bundle_binstub)
|
20
|
+
else
|
21
|
+
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
22
|
+
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "bundler/setup"
|
28
|
+
|
29
|
+
load Gem.bin_path("rspec-core", "rspec")
|