opal-rails 1.1.2 → 2.0.0
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.
- checksums.yaml +4 -4
- data/.github/workflows/{main.yml → build.yml} +12 -5
- data/.gitignore +1 -0
- data/Appraisals +8 -17
- data/CHANGELOG.md +16 -0
- data/Gemfile +7 -4
- data/README.md +30 -6
- 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 +0 -3
- 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/template_handler.rb +4 -2
- data/lib/opal/rails/version.rb +1 -1
- data/opal-rails.gemspec +45 -40
- data/spec/helpers/opal_helper_spec.rb +5 -3
- data/spec/integration/source_map_spec.rb +9 -5
- 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/rails6.rb +1 -3
- metadata +47 -82
- 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/gemfiles/rails_6_0_opal_master.gemfile +0 -11
- data/lib/rails/generators/opal/assets/assets_generator.rb +0 -12
- data/test_apps/rails5.rb +0 -50
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
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
on:
|
|
2
|
+
pull_request:
|
|
3
|
+
branches:
|
|
4
|
+
- master
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- ci-check
|
|
8
|
+
- "*/ci-check"
|
|
9
|
+
- master
|
|
3
10
|
|
|
4
11
|
jobs:
|
|
5
12
|
build:
|
|
6
13
|
strategy:
|
|
7
14
|
matrix:
|
|
8
|
-
ruby: ['2.5.x', '2.6.x']
|
|
9
|
-
rails: ['
|
|
10
|
-
opal: ['opal_1_0', '
|
|
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']
|
|
11
18
|
runs-on: ubuntu-latest
|
|
12
19
|
|
|
13
20
|
steps:
|
data/.gitignore
CHANGED
data/Appraisals
CHANGED
|
@@ -7,33 +7,24 @@ ENV['OPAL_VERSION'] = nil # ensure the env is clean
|
|
|
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 "rails_5_1_#{opal_version}" do
|
|
26
|
-
gem "rails", "~> 5.1.0"
|
|
27
|
-
gem_opal[self]
|
|
28
|
-
end if current_ruby >= ruby_2_4_0
|
|
29
|
-
|
|
30
|
-
appraise "rails_5_2_#{opal_version}" do
|
|
31
|
-
gem "rails", "~> 5.2.0"
|
|
32
|
-
gem_opal[self]
|
|
33
|
-
end if current_ruby >= ruby_2_4_0
|
|
34
|
-
|
|
35
21
|
appraise "rails_6_0_#{opal_version}" do
|
|
36
22
|
gem "rails", "~> 6.0.0"
|
|
37
23
|
gem_opal[self]
|
|
38
24
|
end if current_ruby >= ruby_2_5_0
|
|
25
|
+
|
|
26
|
+
appraise "rails_6_1_#{opal_version}" do
|
|
27
|
+
gem "rails", "~> 6.1.0"
|
|
28
|
+
gem_opal[self]
|
|
29
|
+
end if current_ruby >= ruby_2_5_0
|
|
39
30
|
end
|
data/CHANGELOG.md
CHANGED
|
@@ -18,7 +18,23 @@ 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
|
|
21
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
|
|
22
38
|
|
|
23
39
|
|
|
24
40
|
## [1.1.2](https://github.com/opal/opal-rails/compare/v1.1.1...v1.1.2) - 2019-09-26
|
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
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
|
|
9
9
|
_Rails bindings for [Opal](http://opalrb.com). ([Changelog](https://github.com/opal/opal-rails/blob/master/CHANGELOG.md))_
|
|
10
10
|
|
|
11
|
-
### Looking Webpack support? 👀
|
|
11
|
+
### Looking for Webpack support? 👀
|
|
12
12
|
|
|
13
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
14
|
|
|
15
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_.
|
|
16
16
|
|
|
17
|
+
|
|
17
18
|
## Installation
|
|
18
19
|
|
|
19
20
|
In your `Gemfile`
|
|
@@ -22,10 +23,10 @@ In your `Gemfile`
|
|
|
22
23
|
gem 'opal-rails'
|
|
23
24
|
```
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
Add `app/assets/javascript` to your asset-pipeline manifest in `app/assets/config/manifest.js`:
|
|
26
27
|
|
|
27
|
-
```
|
|
28
|
-
rails
|
|
28
|
+
```
|
|
29
|
+
bin/rails opal:install
|
|
29
30
|
```
|
|
30
31
|
|
|
31
32
|
|
|
@@ -190,7 +191,6 @@ Of course you need to require `haml-rails` separately since its presence is not
|
|
|
190
191
|
Element.find('.comments').effect(:fade_in)
|
|
191
192
|
end
|
|
192
193
|
end
|
|
193
|
-
|
|
194
194
|
```
|
|
195
195
|
|
|
196
196
|
|
|
@@ -256,10 +256,34 @@ Opal.use_gem 'cannonbol'
|
|
|
256
256
|
```
|
|
257
257
|
|
|
258
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
|
+
|
|
259
283
|
|
|
260
284
|
## License
|
|
261
285
|
|
|
262
|
-
© 2012-
|
|
286
|
+
© 2012-2021 Elia Schito
|
|
263
287
|
|
|
264
288
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
265
289
|
of this software and associated documentation files (the "Software"), to deal
|
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")
|
data/bin/sandbox
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
gem_name="$(ruby -rpathname -e"puts Pathname(ARGV.first).join('../..').expand_path.glob('*.gemspec').first.basename('.gemspec')" -- $0)"
|
|
4
|
+
|
|
5
|
+
# Stay away from the bundler env of the containing extension.
|
|
6
|
+
function unbundled {
|
|
7
|
+
ruby -rbundler -e'b = proc {system *ARGV}; Bundler.respond_to?(:with_unbundled_env) ? Bundler.with_unbundled_env(&b) : Bundler.with_clean_env(&b)' -- $@
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
rm -rf ./sandbox
|
|
11
|
+
unbundled bundle exec rails new sandbox \
|
|
12
|
+
--skip-bundle \
|
|
13
|
+
--skip-git \
|
|
14
|
+
--skip-keeps \
|
|
15
|
+
--skip-rc \
|
|
16
|
+
--skip-spring \
|
|
17
|
+
--skip-test \
|
|
18
|
+
$@
|
|
19
|
+
|
|
20
|
+
if [ ! -d "sandbox" ]; then
|
|
21
|
+
echo 'sandbox rails application failed'
|
|
22
|
+
exit 1
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
cd ./sandbox
|
|
26
|
+
cat <<RUBY >> Gemfile
|
|
27
|
+
gem '$gem_name', path: '..'
|
|
28
|
+
RUBY
|
|
29
|
+
|
|
30
|
+
unbundled bundle install --gemfile Gemfile
|
|
31
|
+
unbundled bin/rails webpacker:install
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
cd .. # Back to the project root.
|
|
35
|
+
bin/sandbox-setup # Run any custom setup.
|
|
36
|
+
|
|
37
|
+
echo
|
|
38
|
+
echo "🚀 Sandbox app successfully created for $gem_name!"
|
|
39
|
+
|
data/bin/sandbox-setup
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'pathname'
|
|
4
|
+
|
|
5
|
+
root = Pathname('sandbox')
|
|
6
|
+
|
|
7
|
+
system 'bin/rails opal:install'
|
|
8
|
+
system 'bin/rails g controller home index -f'
|
|
9
|
+
|
|
10
|
+
root.join('config/routes.rb').write <<~RUBY
|
|
11
|
+
Rails.application.routes.draw do
|
|
12
|
+
root to: "home#index"
|
|
13
|
+
end
|
|
14
|
+
RUBY
|
data/bin/setup
ADDED
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
source "https://rubygems.org"
|
|
4
4
|
|
|
5
|
-
gem "c_lexer"
|
|
6
5
|
gem "rails", "~> 6.0.0"
|
|
7
6
|
gem "opal", "~> 1.0.0"
|
|
8
|
-
gem "opal-rspec", git: "https://github.com/opal/opal-rspec.git", branch: :master
|
|
9
|
-
gem "opal-jquery", git: "https://github.com/opal/opal-jquery.git", branch: :master
|
|
10
7
|
gem "opal-sprockets"
|
|
11
8
|
|
|
12
9
|
gemspec path: "../"
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class Opal::InstallGenerator < Rails::Generators::Base
|
|
2
|
+
source_root File.expand_path('templates', __dir__)
|
|
3
|
+
|
|
4
|
+
def configure_sprockets
|
|
5
|
+
append_to_file 'app/assets/config/manifest.js', '//= link_directory ../javascript .js'
|
|
6
|
+
template "application.js.rb", "app/assets/javascript/application.js.rb"
|
|
7
|
+
|
|
8
|
+
# Add the javascript tag to the application head tag
|
|
9
|
+
gsub_file 'app/views/layouts/application.html.erb', %r{^( *)</head>},
|
|
10
|
+
'\1 <%= javascript_include_tag "application", "data-turbolinks-track": "reload" %>\1</head>'
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require "opal"
|
|
2
|
+
|
|
3
|
+
# Uncomment the following to print out you're hello-world with Opal:
|
|
4
|
+
#
|
|
5
|
+
# puts "hello world!"
|
|
6
|
+
#
|
|
7
|
+
# The following will append a hello-world to your <body> element:
|
|
8
|
+
#
|
|
9
|
+
# require "native"
|
|
10
|
+
# $$[:document].addEventListener :DOMContentLoaded do
|
|
11
|
+
# $$[:document][:body][:innerHTML] += '<h2>Hello World!</h2>'
|
|
12
|
+
# end
|
data/lib/opal/rails.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'active_support/json'
|
|
2
|
+
|
|
1
3
|
module Opal
|
|
2
4
|
module Rails
|
|
3
5
|
class TemplateHandler
|
|
@@ -17,11 +19,11 @@ module Opal
|
|
|
17
19
|
code << 'Object.new.instance_eval {'
|
|
18
20
|
|
|
19
21
|
if config.assign_locals_in_templates?
|
|
20
|
-
code << JSON.
|
|
22
|
+
code << ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(local_assigns)).map { |key, val| "\#{key} = \#{val.inspect};" }.join
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
if config.assign_instance_variables_in_templates?
|
|
24
|
-
code << JSON.
|
|
26
|
+
code << ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(@_assigns)).map { |key, val| "@\#{key} = \#{val.inspect};" }.join
|
|
25
27
|
end
|
|
26
28
|
|
|
27
29
|
code << #{string}
|
data/lib/opal/rails/version.rb
CHANGED
data/opal-rails.gemspec
CHANGED
|
@@ -1,41 +1,46 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Gem::Specification.new do |
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'lib/opal/rails/version'
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |spec|
|
|
6
|
+
spec.name = 'opal-rails'
|
|
7
|
+
spec.version = Opal::Rails::VERSION
|
|
8
|
+
spec.authors = ['Elia Schito']
|
|
9
|
+
spec.email = ['elia@schito.me']
|
|
10
|
+
|
|
11
|
+
spec.summary = %q{Rails bindings for opal JS engine}
|
|
12
|
+
spec.description = %q{Rails bindings for opal JS engine}
|
|
13
|
+
spec.homepage = 'https://github.com/opal/opal-rails#readme'
|
|
14
|
+
spec.license = 'MIT-LICENSE'
|
|
15
|
+
|
|
16
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
|
17
|
+
spec.metadata['source_code_uri'] = 'https://github.com/opal/opal-rails#readme'
|
|
18
|
+
spec.metadata['changelog_uri'] = 'https://github.com/opal/opal-rails/blob/master/CHANGELOG.md'
|
|
19
|
+
|
|
20
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.5')
|
|
21
|
+
|
|
22
|
+
# Specify which files should be added to the gem when it is released.
|
|
23
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
24
|
+
files = Dir.chdir(__dir__) { `git ls-files -z`.split("\x0") }
|
|
25
|
+
|
|
26
|
+
spec.files = files.grep_v(%r{^(test|spec|features)/})
|
|
27
|
+
spec.test_files = files.grep(%r{^(test|spec|features)/})
|
|
28
|
+
spec.bindir = "exe"
|
|
29
|
+
spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
30
|
+
spec.require_paths = ["lib"]
|
|
31
|
+
|
|
32
|
+
spec.add_dependency 'rails', '>= 6.0', '< 7'
|
|
33
|
+
spec.add_dependency 'sprockets-rails', '>= 3.0'
|
|
34
|
+
|
|
35
|
+
spec.add_dependency 'opal', '~> 1.0'
|
|
36
|
+
spec.add_dependency 'opal-sprockets', '~> 1.0'
|
|
37
|
+
|
|
38
|
+
spec.add_development_dependency 'execjs'
|
|
39
|
+
spec.add_development_dependency 'launchy'
|
|
40
|
+
spec.add_development_dependency 'capybara', '~> 3.25'
|
|
41
|
+
spec.add_development_dependency 'apparition'
|
|
42
|
+
spec.add_development_dependency 'rspec-rails'
|
|
43
|
+
spec.add_development_dependency 'appraisal', '~> 2.1'
|
|
44
|
+
spec.add_development_dependency 'sqlite3'
|
|
45
|
+
spec.add_development_dependency 'puma'
|
|
41
46
|
end
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
# We need the view type because helpers specs are to are too minimalistic
|
|
4
|
+
# and are missing some initialization stuff.
|
|
5
|
+
describe OpalHelper, :js, type: :view do
|
|
6
|
+
let(:helper) { view }
|
|
5
7
|
|
|
6
8
|
describe '#opal_tag' do
|
|
7
9
|
it 'compiles to js' do
|
|
@@ -21,7 +23,7 @@ describe OpalHelper, type: :helper do
|
|
|
21
23
|
allow(Rails.application).to receive(:assets).and_return(nil)
|
|
22
24
|
|
|
23
25
|
loading_code = [
|
|
24
|
-
%<if(window.Opal && Opal.modules["application"]){Opal.loaded(OpalLoaded
|
|
26
|
+
%<if(window.Opal && Opal.modules["application"]){Opal.loaded(typeof(OpalLoaded) === "undefined" ? [] : OpalLoaded);>,
|
|
25
27
|
%<Opal.require("application");}>,
|
|
26
28
|
].join("\n")
|
|
27
29
|
|
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
|
3
3
|
require 'opal/source_map'
|
|
4
4
|
|
|
5
5
|
describe Opal::SourceMap do
|
|
6
|
-
let(:js_asset_path) { '/assets/source_map_example.
|
|
6
|
+
let(:js_asset_path) { '/assets/source_map_example.debug.js' }
|
|
7
7
|
|
|
8
8
|
before do
|
|
9
9
|
expect(Rails.application.config.opal.source_map_enabled).to be_truthy
|
|
@@ -21,13 +21,16 @@ describe Opal::SourceMap do
|
|
|
21
21
|
Base64.decode64(response.body.lines.last.split(inline_map_prefix, 2)[1])
|
|
22
22
|
else
|
|
23
23
|
source_map_regexp = %r{^//[@#] sourceMappingURL=([^\n]+)}
|
|
24
|
+
|
|
24
25
|
header_map_path = response.headers['X-SourceMap'].presence
|
|
25
26
|
comment_map_path = response.body.scan(source_map_regexp).flatten.first.to_s.strip.presence
|
|
26
27
|
|
|
27
|
-
map_path = header_map_path || comment_map_path
|
|
28
|
+
map_path = (header_map_path || comment_map_path)&.strip
|
|
29
|
+
|
|
30
|
+
get URI.join("http://example.com/", js_asset_path, map_path).path
|
|
28
31
|
|
|
29
|
-
get map_path
|
|
30
32
|
expect(response).to be_successful, "url: #{map_path}\nstatus: #{response.status}"
|
|
33
|
+
|
|
31
34
|
response.body
|
|
32
35
|
end
|
|
33
36
|
end
|
|
@@ -36,7 +39,8 @@ describe Opal::SourceMap do
|
|
|
36
39
|
|
|
37
40
|
it 'has the source map be there' do
|
|
38
41
|
expect(map).to be_present
|
|
39
|
-
expect(map[:
|
|
40
|
-
expect(map[:
|
|
42
|
+
expect(map[:sections].size).to eq(1)
|
|
43
|
+
expect(map[:sections][0][:map][:sources]).to be_present
|
|
44
|
+
expect(map[:sections][0][:map][:mappings]).to be_present
|
|
41
45
|
end
|
|
42
46
|
end
|
|
@@ -14,7 +14,7 @@ HTML
|
|
|
14
14
|
|
|
15
15
|
WITH_ASSIGNMENTS = File.read "#{__dir__}/assets/javascripts/with_assignments.js.rb"
|
|
16
16
|
|
|
17
|
-
require_relative '
|
|
17
|
+
require_relative '../../app/helpers/opal_helper'
|
|
18
18
|
|
|
19
19
|
class ApplicationController < ActionController::Base
|
|
20
20
|
include Rails.application.routes.url_helpers
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//= link_directory ../javascripts .js
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/test_apps/rails6.rb
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
# FROM: http://www.rubytutorial.io/how-to-test-your-gem-against-multiple-rails/
|
|
2
2
|
|
|
3
|
-
# test/apps/rails5.rb
|
|
4
3
|
require 'rails'
|
|
5
4
|
require 'rails/all'
|
|
6
5
|
require 'action_view/testing/resolvers'
|
|
@@ -37,7 +36,6 @@ module RailsApp
|
|
|
37
36
|
get '/favicon.ico' => -> { [404,{},[]] }
|
|
38
37
|
end
|
|
39
38
|
|
|
40
|
-
config.assets.paths << File.join(__dir__, 'assets/javascripts')
|
|
41
39
|
config.assets.debug = true
|
|
42
40
|
config.assets.digest = true
|
|
43
41
|
|
|
@@ -46,5 +44,5 @@ module RailsApp
|
|
|
46
44
|
end
|
|
47
45
|
end
|
|
48
46
|
|
|
49
|
-
require_relative './application_controller'
|
|
47
|
+
require_relative './app/application_controller'
|
|
50
48
|
RailsApp::Application.initialize!
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: opal-rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Elia Schito
|
|
8
|
-
autorequire:
|
|
9
|
-
bindir:
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-02-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -16,110 +16,62 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '6.0'
|
|
20
20
|
- - "<"
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
22
|
+
version: '7'
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
26
|
requirements:
|
|
27
27
|
- - ">="
|
|
28
28
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
29
|
+
version: '6.0'
|
|
30
30
|
- - "<"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
32
|
+
version: '7'
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
34
|
name: sprockets-rails
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - ">="
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
40
|
-
- - "<"
|
|
41
|
-
- !ruby/object:Gem::Version
|
|
42
|
-
version: '4.0'
|
|
43
|
-
type: :runtime
|
|
44
|
-
prerelease: false
|
|
45
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
46
|
-
requirements:
|
|
47
|
-
- - ">="
|
|
48
|
-
- !ruby/object:Gem::Version
|
|
49
|
-
version: 2.3.3
|
|
50
|
-
- - "<"
|
|
51
|
-
- !ruby/object:Gem::Version
|
|
52
|
-
version: '4.0'
|
|
53
|
-
- !ruby/object:Gem::Dependency
|
|
54
|
-
name: jquery-rails
|
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
|
56
|
-
requirements:
|
|
57
|
-
- - ">="
|
|
58
|
-
- !ruby/object:Gem::Version
|
|
59
|
-
version: '0'
|
|
39
|
+
version: '3.0'
|
|
60
40
|
type: :runtime
|
|
61
41
|
prerelease: false
|
|
62
42
|
version_requirements: !ruby/object:Gem::Requirement
|
|
63
43
|
requirements:
|
|
64
44
|
- - ">="
|
|
65
45
|
- !ruby/object:Gem::Version
|
|
66
|
-
version: '0'
|
|
46
|
+
version: '3.0'
|
|
67
47
|
- !ruby/object:Gem::Dependency
|
|
68
48
|
name: opal
|
|
69
49
|
requirement: !ruby/object:Gem::Requirement
|
|
70
50
|
requirements:
|
|
71
51
|
- - "~>"
|
|
72
52
|
- !ruby/object:Gem::Version
|
|
73
|
-
version: 1.0
|
|
74
|
-
type: :runtime
|
|
75
|
-
prerelease: false
|
|
76
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
77
|
-
requirements:
|
|
78
|
-
- - "~>"
|
|
79
|
-
- !ruby/object:Gem::Version
|
|
80
|
-
version: 1.0.0
|
|
81
|
-
- !ruby/object:Gem::Dependency
|
|
82
|
-
name: opal-jquery
|
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
|
84
|
-
requirements:
|
|
85
|
-
- - "~>"
|
|
86
|
-
- !ruby/object:Gem::Version
|
|
87
|
-
version: 0.4.4
|
|
53
|
+
version: '1.0'
|
|
88
54
|
type: :runtime
|
|
89
55
|
prerelease: false
|
|
90
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
91
57
|
requirements:
|
|
92
58
|
- - "~>"
|
|
93
59
|
- !ruby/object:Gem::Version
|
|
94
|
-
version: 0
|
|
60
|
+
version: '1.0'
|
|
95
61
|
- !ruby/object:Gem::Dependency
|
|
96
62
|
name: opal-sprockets
|
|
97
63
|
requirement: !ruby/object:Gem::Requirement
|
|
98
64
|
requirements:
|
|
99
65
|
- - "~>"
|
|
100
66
|
- !ruby/object:Gem::Version
|
|
101
|
-
version: 0
|
|
67
|
+
version: '1.0'
|
|
102
68
|
type: :runtime
|
|
103
69
|
prerelease: false
|
|
104
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
71
|
requirements:
|
|
106
72
|
- - "~>"
|
|
107
73
|
- !ruby/object:Gem::Version
|
|
108
|
-
version: 0
|
|
109
|
-
- !ruby/object:Gem::Dependency
|
|
110
|
-
name: opal-activesupport
|
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
|
112
|
-
requirements:
|
|
113
|
-
- - ">="
|
|
114
|
-
- !ruby/object:Gem::Version
|
|
115
|
-
version: 0.0.5
|
|
116
|
-
type: :runtime
|
|
117
|
-
prerelease: false
|
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
119
|
-
requirements:
|
|
120
|
-
- - ">="
|
|
121
|
-
- !ruby/object:Gem::Version
|
|
122
|
-
version: 0.0.5
|
|
74
|
+
version: '1.0'
|
|
123
75
|
- !ruby/object:Gem::Dependency
|
|
124
76
|
name: execjs
|
|
125
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -239,7 +191,7 @@ executables: []
|
|
|
239
191
|
extensions: []
|
|
240
192
|
extra_rdoc_files: []
|
|
241
193
|
files:
|
|
242
|
-
- ".github/workflows/
|
|
194
|
+
- ".github/workflows/build.yml"
|
|
243
195
|
- ".gitignore"
|
|
244
196
|
- ".powder"
|
|
245
197
|
- ".rspec"
|
|
@@ -249,14 +201,26 @@ files:
|
|
|
249
201
|
- README.md
|
|
250
202
|
- Rakefile
|
|
251
203
|
- app/helpers/opal_helper.rb
|
|
204
|
+
- bin/rackup
|
|
205
|
+
- bin/rails
|
|
206
|
+
- bin/rails-engine
|
|
207
|
+
- bin/rails-sandbox
|
|
208
|
+
- bin/rake
|
|
209
|
+
- bin/rspec
|
|
210
|
+
- bin/sandbox
|
|
211
|
+
- bin/sandbox-setup
|
|
212
|
+
- bin/setup
|
|
252
213
|
- config.ru
|
|
253
|
-
- gemfiles/rails_5_1_opal_1_0.gemfile
|
|
254
|
-
- gemfiles/rails_5_1_opal_master.gemfile
|
|
255
|
-
- gemfiles/rails_5_2_opal_1_0.gemfile
|
|
256
|
-
- gemfiles/rails_5_2_opal_master.gemfile
|
|
257
214
|
- gemfiles/rails_6_0_opal_1_0.gemfile
|
|
258
|
-
- gemfiles/
|
|
215
|
+
- gemfiles/rails_6_0_opal_1_1.gemfile
|
|
216
|
+
- gemfiles/rails_6_1_opal_1_0.gemfile
|
|
217
|
+
- gemfiles/rails_6_1_opal_1_1.gemfile
|
|
259
218
|
- lib/assets/javascripts/opal_ujs.js.rb
|
|
219
|
+
- lib/generators/opal/assets/assets_generator.rb
|
|
220
|
+
- lib/generators/opal/assets/templates/javascript.js.rb
|
|
221
|
+
- lib/generators/opal/install/USAGE
|
|
222
|
+
- lib/generators/opal/install/install_generator.rb
|
|
223
|
+
- lib/generators/opal/install/templates/application.js.rb
|
|
260
224
|
- lib/opal-rails.rb
|
|
261
225
|
- lib/opal/rails.rb
|
|
262
226
|
- lib/opal/rails/engine.rb
|
|
@@ -264,8 +228,6 @@ files:
|
|
|
264
228
|
- lib/opal/rails/slim_filter.rb
|
|
265
229
|
- lib/opal/rails/template_handler.rb
|
|
266
230
|
- lib/opal/rails/version.rb
|
|
267
|
-
- lib/rails/generators/opal/assets/assets_generator.rb
|
|
268
|
-
- lib/rails/generators/opal/assets/templates/javascript.js.rb
|
|
269
231
|
- opal-rails.gemspec
|
|
270
232
|
- spec/helpers/opal_helper_spec.rb
|
|
271
233
|
- spec/integration/assigns_spec.rb
|
|
@@ -276,19 +238,22 @@ files:
|
|
|
276
238
|
- spec/support/reset_assets_cache.rb
|
|
277
239
|
- spec/support/reset_config.rb
|
|
278
240
|
- spec/support/test_app.rb
|
|
279
|
-
- test_apps/application_controller.rb
|
|
280
|
-
- test_apps/assets/
|
|
281
|
-
- test_apps/assets/javascripts/
|
|
282
|
-
- test_apps/assets/javascripts/
|
|
283
|
-
- test_apps/assets/javascripts/
|
|
284
|
-
- test_apps/assets/javascripts/
|
|
285
|
-
- test_apps/
|
|
241
|
+
- test_apps/app/application_controller.rb
|
|
242
|
+
- test_apps/app/assets/config/manifest.js
|
|
243
|
+
- test_apps/app/assets/javascripts/application.js.rb
|
|
244
|
+
- test_apps/app/assets/javascripts/bar.rb
|
|
245
|
+
- test_apps/app/assets/javascripts/foo.js.rb
|
|
246
|
+
- test_apps/app/assets/javascripts/source_map_example.js.rb
|
|
247
|
+
- test_apps/app/assets/javascripts/with_assignments.js.rb
|
|
286
248
|
- test_apps/rails6.rb
|
|
287
249
|
homepage: https://github.com/opal/opal-rails#readme
|
|
288
250
|
licenses:
|
|
289
251
|
- MIT-LICENSE
|
|
290
|
-
metadata:
|
|
291
|
-
|
|
252
|
+
metadata:
|
|
253
|
+
homepage_uri: https://github.com/opal/opal-rails#readme
|
|
254
|
+
source_code_uri: https://github.com/opal/opal-rails#readme
|
|
255
|
+
changelog_uri: https://github.com/opal/opal-rails/blob/master/CHANGELOG.md
|
|
256
|
+
post_install_message:
|
|
292
257
|
rdoc_options: []
|
|
293
258
|
require_paths:
|
|
294
259
|
- lib
|
|
@@ -296,15 +261,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
296
261
|
requirements:
|
|
297
262
|
- - ">="
|
|
298
263
|
- !ruby/object:Gem::Version
|
|
299
|
-
version: '
|
|
264
|
+
version: '2.5'
|
|
300
265
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
301
266
|
requirements:
|
|
302
267
|
- - ">="
|
|
303
268
|
- !ruby/object:Gem::Version
|
|
304
269
|
version: '0'
|
|
305
270
|
requirements: []
|
|
306
|
-
rubygems_version: 3.
|
|
307
|
-
signing_key:
|
|
271
|
+
rubygems_version: 3.2.3
|
|
272
|
+
signing_key:
|
|
308
273
|
specification_version: 4
|
|
309
274
|
summary: Rails bindings for opal JS engine
|
|
310
275
|
test_files:
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# This file was generated by Appraisal
|
|
2
|
-
|
|
3
|
-
source "https://rubygems.org"
|
|
4
|
-
|
|
5
|
-
gem "c_lexer"
|
|
6
|
-
gem "rails", "~> 5.1.0"
|
|
7
|
-
gem "opal", "~> 1.0.0"
|
|
8
|
-
gem "opal-rspec", git: "https://github.com/opal/opal-rspec.git", branch: :master
|
|
9
|
-
gem "opal-jquery", git: "https://github.com/opal/opal-jquery.git", branch: :master
|
|
10
|
-
gem "opal-sprockets"
|
|
11
|
-
|
|
12
|
-
gemspec path: "../"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# This file was generated by Appraisal
|
|
2
|
-
|
|
3
|
-
source "https://rubygems.org"
|
|
4
|
-
|
|
5
|
-
gem "c_lexer"
|
|
6
|
-
gem "rails", "~> 5.1.0"
|
|
7
|
-
gem "opal", git: "https://github.com/opal/opal.git", branch: :master
|
|
8
|
-
gem "opal-rspec", git: "https://github.com/opal/opal-rspec.git", branch: :master
|
|
9
|
-
gem "opal-sprockets", git: "https://github.com/opal/opal-sprockets.git", branch: :master
|
|
10
|
-
|
|
11
|
-
gemspec path: "../"
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# This file was generated by Appraisal
|
|
2
|
-
|
|
3
|
-
source "https://rubygems.org"
|
|
4
|
-
|
|
5
|
-
gem "c_lexer"
|
|
6
|
-
gem "rails", "~> 5.2.0"
|
|
7
|
-
gem "opal", "~> 1.0.0"
|
|
8
|
-
gem "opal-rspec", git: "https://github.com/opal/opal-rspec.git", branch: :master
|
|
9
|
-
gem "opal-jquery", git: "https://github.com/opal/opal-jquery.git", branch: :master
|
|
10
|
-
gem "opal-sprockets"
|
|
11
|
-
|
|
12
|
-
gemspec path: "../"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# This file was generated by Appraisal
|
|
2
|
-
|
|
3
|
-
source "https://rubygems.org"
|
|
4
|
-
|
|
5
|
-
gem "c_lexer"
|
|
6
|
-
gem "rails", "~> 5.2.0"
|
|
7
|
-
gem "opal", git: "https://github.com/opal/opal.git", branch: :master
|
|
8
|
-
gem "opal-rspec", git: "https://github.com/opal/opal-rspec.git", branch: :master
|
|
9
|
-
gem "opal-sprockets", git: "https://github.com/opal/opal-sprockets.git", branch: :master
|
|
10
|
-
|
|
11
|
-
gemspec path: "../"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# This file was generated by Appraisal
|
|
2
|
-
|
|
3
|
-
source "https://rubygems.org"
|
|
4
|
-
|
|
5
|
-
gem "c_lexer"
|
|
6
|
-
gem "rails", "~> 6.0.0"
|
|
7
|
-
gem "opal", git: "https://github.com/opal/opal.git", branch: :master
|
|
8
|
-
gem "opal-rspec", git: "https://github.com/opal/opal-rspec.git", branch: :master
|
|
9
|
-
gem "opal-sprockets", git: "https://github.com/opal/opal-sprockets.git", branch: :master
|
|
10
|
-
|
|
11
|
-
gemspec path: "../"
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
require 'rails/generators/named_base'
|
|
2
|
-
|
|
3
|
-
module Opal
|
|
4
|
-
module Generators
|
|
5
|
-
class AssetsGenerator < ::Rails::Generators::NamedBase
|
|
6
|
-
source_root __dir__+'/templates'
|
|
7
|
-
def copy_opal
|
|
8
|
-
template 'javascript.js.rb', File.join('app/assets/javascripts', class_path, "#{file_name}.js.rb")
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
data/test_apps/rails5.rb
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# FROM: http://www.rubytutorial.io/how-to-test-your-gem-against-multiple-rails/
|
|
2
|
-
|
|
3
|
-
# test/apps/rails5.rb
|
|
4
|
-
require 'rails'
|
|
5
|
-
require 'rails/all'
|
|
6
|
-
require 'action_view/testing/resolvers'
|
|
7
|
-
|
|
8
|
-
require 'opal-rails' # our gem
|
|
9
|
-
|
|
10
|
-
module RailsApp
|
|
11
|
-
class Application < Rails::Application
|
|
12
|
-
config.root = __dir__
|
|
13
|
-
config.cache_classes = true
|
|
14
|
-
config.eager_load = false
|
|
15
|
-
config.public_file_server.enabled = true
|
|
16
|
-
config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
|
|
17
|
-
config.consider_all_requests_local = true
|
|
18
|
-
config.action_controller.perform_caching = false
|
|
19
|
-
config.action_dispatch.show_exceptions = false
|
|
20
|
-
config.action_controller.allow_forgery_protection = false
|
|
21
|
-
config.active_support.deprecation = :stderr
|
|
22
|
-
config.secret_key_base = '49837489qkuweoiuoqwe'
|
|
23
|
-
|
|
24
|
-
if config.active_record.sqlite3
|
|
25
|
-
config.active_record.sqlite3.represent_boolean_as_integer = true
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
config.middleware.delete Rack::Lock
|
|
29
|
-
config.middleware.delete ActionDispatch::Flash
|
|
30
|
-
|
|
31
|
-
routes.append do
|
|
32
|
-
get '/' => 'application#index'
|
|
33
|
-
get '/application/with_assignments' => 'application#with_assignments'
|
|
34
|
-
|
|
35
|
-
# just to reduce noise
|
|
36
|
-
get '/apple-touch-icon-precomposed.png' => -> { [404,{},[]] }
|
|
37
|
-
get '/favicon.ico' => -> { [404,{},[]] }
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
config.assets.paths << File.join(__dir__, 'assets/javascripts')
|
|
41
|
-
config.assets.debug = true
|
|
42
|
-
config.assets.digest = true
|
|
43
|
-
|
|
44
|
-
# Opal specific:
|
|
45
|
-
config.opal.source_map_enabled = true
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
require_relative './application_controller'
|
|
50
|
-
RailsApp::Application.initialize!
|