From 5df1ec0aee924d8f3fb408c5d855f6e83ab8654a Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Tue, 23 Feb 2021 23:33:07 +0100 Subject: [PATCH 1/6] Set the date of the latest release --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15da265..1eff515 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,7 @@ Whitespace conventions: - 1 spaces before normal text --> -## [2.0](https://github.com/opal/opal-rails/compare/v1.1.2...v2.0.0) - unreleased +## [2.0](https://github.com/opal/opal-rails/compare/v1.1.2...v2.0.0) - 2021-02-23 *Bumping a major version, since this version will make a number of dependencies opt-in and drop older Rails and Sprockets versions* From b0b5509174837c0c8c6baff2477e099e7d8ddef5 Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Wed, 3 Mar 2021 19:28:26 +0100 Subject: [PATCH 2/6] Fix a type in the sandbox-setup --- bin/sandbox-setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/sandbox-setup b/bin/sandbox-setup index 71c1258..7223f0a 100755 --- a/bin/sandbox-setup +++ b/bin/sandbox-setup @@ -4,7 +4,7 @@ require 'pathname' root = Pathname('sandbox') -system 'bin/rails opal:install' +system 'bin/rails g opal:install' system 'bin/rails g controller home index -f' root.join('config/routes.rb').write <<~RUBY From 5e2913ec5ea9fba05a6df2d508964474661cac70 Mon Sep 17 00:00:00 2001 From: Mitch VanDuyn Date: Wed, 3 Mar 2021 11:27:17 -0500 Subject: [PATCH 3/6] Changed arity_check to arity_check_enabled in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6e6ca06..dae2654 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Add your configuration in `config/initializers/assets.rb` with the following con # Compiler options Rails.application.config.opal.method_missing = true Rails.application.config.opal.optimized_operators = true -Rails.application.config.opal.arity_check = !Rails.env.production? +Rails.application.config.opal.arity_check_enabled = !Rails.env.production? Rails.application.config.opal.const_missing = true Rails.application.config.opal.dynamic_require_severity = :ignore From 8146de2f83ffc6cc14dd4f7bc6715f23e8088bd3 Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Wed, 3 Mar 2021 20:00:34 +0100 Subject: [PATCH 4/6] Update the configuration instructions in the readme --- README.md | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index dae2654..04bbeb0 100644 --- a/README.md +++ b/README.md @@ -32,27 +32,37 @@ bin/rails opal:install ### Configuration -Add your configuration in `config/initializers/assets.rb` with the following contents: +#### For the compiler + +Add your configuration for the compiler: + +`config/initializers/opal.rb` ```ruby # Compiler options -Rails.application.config.opal.method_missing = true -Rails.application.config.opal.optimized_operators = true -Rails.application.config.opal.arity_check_enabled = !Rails.env.production? -Rails.application.config.opal.const_missing = true +Rails.application.config.opal.method_missing_enabled = true +Rails.application.config.opal.const_missing_enabled = true +Rails.application.config.opal.arity_check_enabled = true +Rails.application.config.opal.freezing_stubs_enabled = true Rails.application.config.opal.dynamic_require_severity = :ignore +``` + +Check out the full list of the available configuration options at: [lib/opal/config.rb](https://github.com/opal/opal/blob/master/lib/opal/config.rb). -# Other options +#### For template assigns -# Send local and instance variables down to the view after converting -# thier value with `.to_json` +Add your configuration for rendering assigns when using the template handler from actions: + +`config/initializers/opal.rb` + +```ruby Rails.application.config.opal.assigns_in_templates = true Rails.application.config.opal.assigns_in_templates = :locals # only locals Rails.application.config.opal.assigns_in_templates = :ivars # only instance variables ``` -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). +Local and instance variables will be sent down to the view after converting their values to JSON. ## Usage From b4aa995cdeb98b3bcbf693485752f7c451c0ca1e Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Wed, 3 Mar 2021 20:00:57 +0100 Subject: [PATCH 5/6] Add a missing newline when updating the application layout --- lib/generators/opal/install/install_generator.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/generators/opal/install/install_generator.rb b/lib/generators/opal/install/install_generator.rb index ea2ec3f..90dd1b2 100644 --- a/lib/generators/opal/install/install_generator.rb +++ b/lib/generators/opal/install/install_generator.rb @@ -6,7 +6,8 @@ def configure_sprockets template "application.js.rb", "app/assets/javascript/application.js.rb" # Add the javascript tag to the application head tag - gsub_file 'app/views/layouts/application.html.erb', %r{^( *)}, - '\1 <%= javascript_include_tag "application", "data-turbolinks-track": "reload" %>\1' + gsub_file 'app/views/layouts/application.html.erb', %r{(\n *)}, + '\1 <%= javascript_include_tag "application", "data-turbolinks-track": "reload" %>' \ + '\1' end end From b4d1dd3d7e3e01adfeba9d25fe0681d42c92a31e Mon Sep 17 00:00:00 2001 From: Elia Schito Date: Wed, 3 Mar 2021 20:03:42 +0100 Subject: [PATCH 6/6] Add an opal-specific initializer to the install generator --- .../opal/install/install_generator.rb | 1 + .../opal/install/templates/initializer.rb | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 lib/generators/opal/install/templates/initializer.rb diff --git a/lib/generators/opal/install/install_generator.rb b/lib/generators/opal/install/install_generator.rb index 90dd1b2..14cdb6b 100644 --- a/lib/generators/opal/install/install_generator.rb +++ b/lib/generators/opal/install/install_generator.rb @@ -4,6 +4,7 @@ class Opal::InstallGenerator < Rails::Generators::Base def configure_sprockets append_to_file 'app/assets/config/manifest.js', '//= link_directory ../javascript .js' template "application.js.rb", "app/assets/javascript/application.js.rb" + template "initializer.rb", "config/initializers/opal.rb" # Add the javascript tag to the application head tag gsub_file 'app/views/layouts/application.html.erb', %r{(\n *)}, diff --git a/lib/generators/opal/install/templates/initializer.rb b/lib/generators/opal/install/templates/initializer.rb new file mode 100644 index 0000000..aaba247 --- /dev/null +++ b/lib/generators/opal/install/templates/initializer.rb @@ -0,0 +1,22 @@ +# Check out the full list of the available configuration options at +# https://github.com/opal/opal/blob/master/lib/opal/config.rb + +Rails.application.configure do + # We suggest keeping the configuration above as default for all environments, + # disabling some of them might slightly reduce the bundle size or reduce performance + # by degrading some ruby features. + config.opal.method_missing_enabled = true + config.opal.const_missing_enabled = true + config.opal.arity_check_enabled = true + config.opal.freezing_stubs_enabled = true + config.opal.dynamic_require_severity = :ignore + + # To enable passing assigns from the controller to the opal template handler + # change the following configuration to one of these values: + # + # - true # both locals and instance variables + # - :locals # only locals + # - :ivars # only instance variables + # + config.opal.assigns_in_templates = false +end