react_on_rails 7.0.1 → 7.0.2
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/.eslintignore +1 -0
- data/.gitignore +1 -1
- data/docs/additional-reading/rspec-configuration.md +2 -1
- data/lib/generators/react_on_rails/base_generator.rb +11 -24
- data/lib/generators/react_on_rails/dev_tests_generator.rb +0 -9
- data/lib/generators/react_on_rails/templates/.eslintrc +23 -0
- data/lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb +2 -0
- data/lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb.tt +15 -0
- data/lib/generators/react_on_rails/templates/base/base/client/package.json.tt +5 -3
- data/lib/generators/react_on_rails/templates/base/base/client/webpack.config.js +16 -4
- data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt +1 -1
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/development.server.yml +9 -0
- data/lib/generators/react_on_rails/templates/base/base/config/webpack/paths.yml +18 -0
- data/lib/react_on_rails/configuration.rb +1 -1
- data/lib/react_on_rails/version.rb +1 -1
- data/package.json +5 -3
- data/rakelib/example_type.rb +2 -2
- data/rakelib/run_rspec.rake +9 -0
- data/webpackConfigLoader.js +28 -0
- data/yarn.lock +36 -4
- metadata +6 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 5d18338f5306c4f3a2efc3d272f49e9f28b3b99d
         | 
| 4 | 
            +
              data.tar.gz: e8943470e132ea1ef8931561ebe805344af958bc
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3913eb855b52bc544b124f70f8a56210e4f7053489558c0ba8e58a8af1256f94646a1c3d5448c7ef5678eaeec51d41cef32b56c149b7d9472b08cf15d0368f8c
         | 
| 7 | 
            +
              data.tar.gz: a511adf13044d1cdd51c1ec2099a3ad6f8289b163bfce606c4ef57bc8d8898b024d4ca3e2f244be1ba55ffc45ff9a93394c05e036d620eb1fe5324b2e90c5766
         | 
    
        data/.eslintignore
    CHANGED
    
    
    
        data/.gitignore
    CHANGED
    
    
| @@ -31,7 +31,8 @@ The following `config/react_on_rails.rb` settings **must** match your setup: | |
| 31 31 | 
             
            ```ruby
         | 
| 32 32 | 
             
              # Directory where your generated assets go. All generated assets must go to the same directory.
         | 
| 33 33 | 
             
              # Configure this in your webpack config files. This relative to your Rails root directory.
         | 
| 34 | 
            -
               | 
| 34 | 
            +
              # We recommend having different generated assets dirs per Rails env.
         | 
| 35 | 
            +
              config.generated_assets_dir = File.join(%w[public webpack], Rails.env)
         | 
| 35 36 |  | 
| 36 37 | 
             
              # Define the files we need to check for webpack compilation when running tests.
         | 
| 37 38 | 
             
              config.webpack_generated_files = %w( webpack-bundle.js )
         | 
| @@ -27,7 +27,7 @@ module ReactOnRails | |
| 27 27 | 
             
                      node_modules
         | 
| 28 28 |  | 
| 29 29 | 
             
                      # Generated js bundles
         | 
| 30 | 
            -
                      / | 
| 30 | 
            +
                      /public/webpack/*
         | 
| 31 31 | 
             
                    DATA
         | 
| 32 32 |  | 
| 33 33 | 
             
                    if dest_file_exists?(".gitignore")
         | 
| @@ -37,26 +37,6 @@ module ReactOnRails | |
| 37 37 | 
             
                    end
         | 
| 38 38 | 
             
                  end
         | 
| 39 39 |  | 
| 40 | 
            -
                  def update_application_js
         | 
| 41 | 
            -
                    data = <<-DATA.strip_heredoc
         | 
| 42 | 
            -
                      //= require webpack-bundle
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                    DATA
         | 
| 45 | 
            -
             | 
| 46 | 
            -
                    app_js_path = "app/assets/javascripts/application.js"
         | 
| 47 | 
            -
                    found_app_js = dest_file_exists?(app_js_path) || dest_file_exists?("#{app_js_path}.coffee")
         | 
| 48 | 
            -
                    if found_app_js
         | 
| 49 | 
            -
                      prepend_to_file(found_app_js, data)
         | 
| 50 | 
            -
                    else
         | 
| 51 | 
            -
                      create_file(app_js_path, data)
         | 
| 52 | 
            -
                    end
         | 
| 53 | 
            -
                  end
         | 
| 54 | 
            -
             | 
| 55 | 
            -
                  def strip_application_js_of_double_blank_lines
         | 
| 56 | 
            -
                    application_js = File.join(destination_root, "app/assets/javascripts/application.js")
         | 
| 57 | 
            -
                    gsub_file(application_js, /^\n^\n/, "\n")
         | 
| 58 | 
            -
                  end
         | 
| 59 | 
            -
             | 
| 60 40 | 
             
                  def create_react_directories
         | 
| 61 41 | 
             
                    dirs = %w(components containers startup)
         | 
| 62 42 | 
             
                    dirs.each { |name| empty_directory("client/app/bundles/HelloWorld/#{name}") }
         | 
| @@ -65,6 +45,8 @@ module ReactOnRails | |
| 65 45 | 
             
                  def copy_base_files
         | 
| 66 46 | 
             
                    base_path = "base/base/"
         | 
| 67 47 | 
             
                    base_files = %w(app/controllers/hello_world_controller.rb
         | 
| 48 | 
            +
                                    config/webpack/paths.yml
         | 
| 49 | 
            +
                                    config/webpack/development.server.yml
         | 
| 68 50 | 
             
                                    client/.babelrc
         | 
| 69 51 | 
             
                                    client/webpack.config.js
         | 
| 70 52 | 
             
                                    client/REACT_ON_RAILS_CLIENT_README.md)
         | 
| @@ -73,14 +55,15 @@ module ReactOnRails | |
| 73 55 |  | 
| 74 56 | 
             
                  def template_base_files
         | 
| 75 57 | 
             
                    base_path = "base/base/"
         | 
| 76 | 
            -
                    %w( | 
| 58 | 
            +
                    %w(app/views/layouts/hello_world.html.erb
         | 
| 59 | 
            +
                       config/initializers/react_on_rails.rb
         | 
| 77 60 | 
             
                       Procfile.dev
         | 
| 78 61 | 
             
                       package.json
         | 
| 79 62 | 
             
                       client/package.json).each { |file| template("#{base_path}#{file}.tt", file) }
         | 
| 80 63 | 
             
                  end
         | 
| 81 64 |  | 
| 82 65 | 
             
                  def add_base_gems_to_gemfile
         | 
| 83 | 
            -
                    append_to_file("Gemfile", "\ngem 'mini_racer', platforms: :ruby\n")
         | 
| 66 | 
            +
                    append_to_file("Gemfile", "\ngem 'mini_racer', platforms: :ruby\ngem 'webpacker_lite'\n")
         | 
| 84 67 | 
             
                  end
         | 
| 85 68 |  | 
| 86 69 | 
             
                  ASSETS_RB_APPEND = <<-DATA.strip_heredoc
         | 
| @@ -93,7 +76,7 @@ module ReactOnRails | |
| 93 76 | 
             
            # Rails.application.config.assets.precompile += %w( server-bundle.js )
         | 
| 94 77 |  | 
| 95 78 | 
             
            # Add folder with webpack generated assets to assets.paths
         | 
| 96 | 
            -
            Rails.application.config.assets.paths << Rails.root.join(" | 
| 79 | 
            +
            Rails.application.config.assets.paths << Rails.root.join("public", "webpack", Rails.env)
         | 
| 97 80 | 
             
                  DATA
         | 
| 98 81 |  | 
| 99 82 | 
             
                  def append_to_assets_initializer
         | 
| @@ -138,6 +121,10 @@ Rails.application.config.assets.paths << Rails.root.join("app", "assets", "webpa | |
| 138 121 |  | 
| 139 122 | 
             
                      What to do next:
         | 
| 140 123 |  | 
| 124 | 
            +
                        - Include your webpack assets to your application layout.
         | 
| 125 | 
            +
             | 
| 126 | 
            +
                          <%= javascript_pack_tag 'main' %>
         | 
| 127 | 
            +
             | 
| 141 128 | 
             
                        - Ensure your bundle and yarn installs of dependencies are up to date.
         | 
| 142 129 |  | 
| 143 130 | 
             
                            bundle && yarn
         | 
| @@ -45,15 +45,6 @@ module ReactOnRails | |
| 45 45 | 
             
                    File.open(package_json, "w+") { |f| f.puts new_contents }
         | 
| 46 46 | 
             
                  end
         | 
| 47 47 |  | 
| 48 | 
            -
                  def change_webpack_client_base_config_to_include_fallback
         | 
| 49 | 
            -
                    sentinel = /^\s\s},\n\s\splugins: \[\n/
         | 
| 50 | 
            -
                    config = File.join(destination_root, "client", "webpack.config.js")
         | 
| 51 | 
            -
                    old_contents = File.read(config)
         | 
| 52 | 
            -
                    new_contents = "const path = require('path');\n" +
         | 
| 53 | 
            -
                                   old_contents.gsub(sentinel, FALLBACK_OPTION_FOR_NODE_MODULES)
         | 
| 54 | 
            -
                    File.open(config, "w+") { |f| f.puts new_contents }
         | 
| 55 | 
            -
                  end
         | 
| 56 | 
            -
             | 
| 57 48 | 
             
                  def add_test_related_gems_to_gemfile
         | 
| 58 49 | 
             
                    gem("rspec-rails", group: :test)
         | 
| 59 50 | 
             
                    gem("capybara", group: :test)
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            extends: eslint-config-shakacode
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            plugins:
         | 
| 5 | 
            +
              - react
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            globals:
         | 
| 8 | 
            +
              __DEBUG_SERVER_ERRORS__: true
         | 
| 9 | 
            +
              __SERVER_ERRORS__: true
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            env:
         | 
| 12 | 
            +
              browser: true
         | 
| 13 | 
            +
              node: true
         | 
| 14 | 
            +
              mocha: true
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            rules:
         | 
| 17 | 
            +
              no-console: 0
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              # https://github.com/benmosher/eslint-plugin-import/issues/340
         | 
| 20 | 
            +
              import/no-extraneous-dependencies: 0
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              # because template cannot find react-on-rails
         | 
| 23 | 
            +
              import/no-unresolved: 0
         | 
    
        data/lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb.tt
    ADDED
    
    | @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            <!DOCTYPE html>
         | 
| 2 | 
            +
            <html>
         | 
| 3 | 
            +
              <head>
         | 
| 4 | 
            +
                <title>ReactOnRailsWithWebpacker</title>
         | 
| 5 | 
            +
                <%%= csrf_meta_tags %>
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                <%%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
         | 
| 8 | 
            +
                <%%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
         | 
| 9 | 
            +
                <%%= javascript_pack_tag 'main' %>
         | 
| 10 | 
            +
              </head>
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              <body>
         | 
| 13 | 
            +
                <%%= yield %>
         | 
| 14 | 
            +
              </body>
         | 
| 15 | 
            +
            </html>
         | 
| @@ -8,9 +8,9 @@ | |
| 8 8 | 
             
                "npm": "4.1.1"
         | 
| 9 9 | 
             
              },
         | 
| 10 10 | 
             
              "scripts": {
         | 
| 11 | 
            -
                "build:test": "webpack --config webpack.config.js",
         | 
| 11 | 
            +
                "build:test": "NODE_ENV=test webpack --config webpack.config.js",
         | 
| 12 12 | 
             
                "build:production": "NODE_ENV=production webpack --config webpack.config.js",
         | 
| 13 | 
            -
                "build:development": "webpack -w --config webpack.config.js"
         | 
| 13 | 
            +
                "build:development": "NODE_ENV=development webpack -w --config webpack.config.js"
         | 
| 14 14 | 
             
              },
         | 
| 15 15 | 
             
              "cacheDirectories": ["node_modules", "client/node_modules"],
         | 
| 16 16 | 
             
              "dependencies": {
         | 
| @@ -25,6 +25,7 @@ | |
| 25 25 | 
             
                "es5-shim": "^4.5.9",
         | 
| 26 26 | 
             
                "expose-loader": "^0.7.3",
         | 
| 27 27 | 
             
                "imports-loader": "^0.7.1",
         | 
| 28 | 
            +
                "js-yaml": "^3.8.2",
         | 
| 28 29 | 
             
                "react": "^15.5.4",
         | 
| 29 30 | 
             
                "react-dom": "^15.5.4",
         | 
| 30 31 | 
             
                "react-on-rails": "<%= VersionSyntaxConverter.new.rubygem_to_npm %>",
         | 
| @@ -32,7 +33,8 @@ | |
| 32 33 | 
             
                "react-redux": "^5.0.4",
         | 
| 33 34 | 
             
                "redux": "^3.6.0",
         | 
| 34 35 | 
             
                <%- end -%>
         | 
| 35 | 
            -
                "webpack": "^2.3.3"
         | 
| 36 | 
            +
                "webpack": "^2.3.3",
         | 
| 37 | 
            +
                "webpack-manifest-plugin": "^1.1.0"
         | 
| 36 38 | 
             
              },
         | 
| 37 39 | 
             
              "devDependencies": {
         | 
| 38 40 | 
             
              }
         | 
| @@ -3,11 +3,19 @@ | |
| 3 3 | 
             
             "only-multiline"} ] */
         | 
| 4 4 |  | 
| 5 5 | 
             
            const webpack = require('webpack');
         | 
| 6 | 
            -
            const  | 
| 6 | 
            +
            const { resolve } = require('path');
         | 
| 7 | 
            +
            const ManifestPlugin = require('webpack-manifest-plugin');
         | 
| 8 | 
            +
            const webpackConfigLoader = require('react-on-rails/webpackConfigLoader');
         | 
| 7 9 |  | 
| 8 | 
            -
            const  | 
| 10 | 
            +
            const configPath = resolve('..', 'config', 'webpack');
         | 
| 11 | 
            +
            const { env, paths, publicPath } = webpackConfigLoader(configPath);
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            const devBuild = env !== 'production';
         | 
| 9 14 |  | 
| 10 15 | 
             
            const config = {
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              context: resolve(__dirname),
         | 
| 18 | 
            +
             | 
| 11 19 | 
             
              entry: [
         | 
| 12 20 | 
             
                'es5-shim/es5-shim',
         | 
| 13 21 | 
             
                'es5-shim/es5-sham',
         | 
| @@ -17,15 +25,19 @@ const config = { | |
| 17 25 |  | 
| 18 26 | 
             
              output: {
         | 
| 19 27 | 
             
                filename: 'webpack-bundle.js',
         | 
| 20 | 
            -
                path:  | 
| 28 | 
            +
                path: resolve('..', paths.output, paths.assets),
         | 
| 21 29 | 
             
              },
         | 
| 22 30 |  | 
| 23 31 | 
             
              resolve: {
         | 
| 24 32 | 
             
                extensions: ['.js', '.jsx'],
         | 
| 25 33 | 
             
              },
         | 
| 34 | 
            +
             | 
| 35 | 
            +
             | 
| 26 36 | 
             
              plugins: [
         | 
| 27 | 
            -
                new webpack.EnvironmentPlugin( | 
| 37 | 
            +
                new webpack.EnvironmentPlugin(JSON.parse(JSON.stringify(env))),
         | 
| 38 | 
            +
                new ManifestPlugin({ fileName: paths.manifest, publicPath, writeToFileEmit: true }),
         | 
| 28 39 | 
             
              ],
         | 
| 40 | 
            +
             | 
| 29 41 | 
             
              module: {
         | 
| 30 42 | 
             
                rules: [
         | 
| 31 43 | 
             
                  {
         | 
    
        data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt
    CHANGED
    
    | @@ -4,7 +4,7 @@ ReactOnRails.configure do |config| | |
| 4 4 |  | 
| 5 5 | 
             
              # Directory where your generated assets go. All generated assets must go to the same directory.
         | 
| 6 6 | 
             
              # Configure this in your webpack config files. This relative to your Rails root directory.
         | 
| 7 | 
            -
              config.generated_assets_dir = File.join(%w | 
| 7 | 
            +
              config.generated_assets_dir = File.join(%w[public webpack], Rails.env)
         | 
| 8 8 |  | 
| 9 9 | 
             
              # Define the files we need to check for webpack compilation when running tests.
         | 
| 10 10 | 
             
              config.webpack_generated_files = %w( webpack-bundle.js )
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            default: &default
         | 
| 2 | 
            +
              output: public
         | 
| 3 | 
            +
              assets: webpack
         | 
| 4 | 
            +
              manifest: manifest.json
         | 
| 5 | 
            +
              node_modules: client/node_modules
         | 
| 6 | 
            +
              source: client/app
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            development:
         | 
| 9 | 
            +
              <<: *default
         | 
| 10 | 
            +
              assets: webpack/development
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            test:
         | 
| 13 | 
            +
              <<: *default
         | 
| 14 | 
            +
              assets: webpack/test
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            production:
         | 
| 17 | 
            +
              <<: *default
         | 
| 18 | 
            +
              assets: webpack/production
         | 
| @@ -4,7 +4,7 @@ module ReactOnRails | |
| 4 4 | 
             
                setup_config_values
         | 
| 5 5 | 
             
              end
         | 
| 6 6 |  | 
| 7 | 
            -
              DEFAULT_GENERATED_ASSETS_DIR = File.join(%w | 
| 7 | 
            +
              DEFAULT_GENERATED_ASSETS_DIR = File.join(%w[public webpack], Rails.env).freeze
         | 
| 8 8 |  | 
| 9 9 | 
             
              def self.setup_config_values
         | 
| 10 10 | 
             
                ensure_webpack_generated_files_exists
         | 
    
        data/package.json
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "name": "react-on-rails",
         | 
| 3 | 
            -
              "version": "7.0. | 
| 3 | 
            +
              "version": "7.0.2",
         | 
| 4 4 | 
             
              "description": "react-on-rails JavaScript for react_on_rails Ruby gem",
         | 
| 5 5 | 
             
              "main": "node_package/lib/ReactOnRails.js",
         | 
| 6 6 | 
             
              "directories": {
         | 
| @@ -37,7 +37,8 @@ | |
| 37 37 | 
             
                "release-it": "^2.7.1",
         | 
| 38 38 | 
             
                "tap-spec": "^4.1.1",
         | 
| 39 39 | 
             
                "tape": "^4.6.3",
         | 
| 40 | 
            -
                "webpack": "^2.3.3"
         | 
| 40 | 
            +
                "webpack": "^2.3.3",
         | 
| 41 | 
            +
                "webpack-manifest-plugin": "^1.1.0"
         | 
| 41 42 | 
             
              },
         | 
| 42 43 | 
             
              "peerDependencies": {
         | 
| 43 44 | 
             
                "babel-runtime": ">= 6",
         | 
| @@ -45,7 +46,8 @@ | |
| 45 46 | 
             
                "react-dom": ">= 0.14"
         | 
| 46 47 | 
             
              },
         | 
| 47 48 | 
             
              "files": [
         | 
| 48 | 
            -
                "node_package/lib"
         | 
| 49 | 
            +
                "node_package/lib",
         | 
| 50 | 
            +
                "webpackConfigLoader.js"
         | 
| 49 51 | 
             
              ],
         | 
| 50 52 | 
             
              "scripts": {
         | 
| 51 53 | 
             
                "test": "babel-tape-runner -r node_package/tests/helpers/test_helper.js node_package/tests/*.js | tap-spec",
         | 
    
        data/rakelib/example_type.rb
    CHANGED
    
    | @@ -49,7 +49,7 @@ module ReactOnRails | |
| 49 49 | 
             
                  end
         | 
| 50 50 |  | 
| 51 51 | 
             
                  def webpack_bundles_dir
         | 
| 52 | 
            -
                    File.join(dir, " | 
| 52 | 
            +
                    File.join(dir, "public", "webpack", "test")
         | 
| 53 53 | 
             
                  end
         | 
| 54 54 |  | 
| 55 55 | 
             
                  def webpack_bundles
         | 
| @@ -131,7 +131,7 @@ module ReactOnRails | |
| 131 131 | 
             
                  def build_webpack_bundles_shell_commands
         | 
| 132 132 | 
             
                    webpack_command = File.join("$(yarn bin)", "webpack")
         | 
| 133 133 | 
             
                    shell_commands = []
         | 
| 134 | 
            -
                    shell_commands << "#{webpack_command} --config webpack.config.js"
         | 
| 134 | 
            +
                    shell_commands << "NODE_ENV=test #{webpack_command} --config webpack.config.js"
         | 
| 135 135 | 
             
                  end
         | 
| 136 136 |  | 
| 137 137 | 
             
                  # Assumes we are inside a rails app's folder and necessary gems have been installed
         | 
    
        data/rakelib/run_rspec.rake
    CHANGED
    
    | @@ -11,6 +11,7 @@ include ReactOnRails::TaskHelpers | |
| 11 11 |  | 
| 12 12 | 
             
            namespace :run_rspec do
         | 
| 13 13 | 
             
              spec_dummy_dir = File.join("spec", "dummy")
         | 
| 14 | 
            +
              spec_dummy_client_dir = File.join("spec", "dummy", "client")
         | 
| 14 15 |  | 
| 15 16 | 
             
              desc "Run RSpec for top level only"
         | 
| 16 17 | 
             
              task :gem do
         | 
| @@ -20,12 +21,14 @@ namespace :run_rspec do | |
| 20 21 | 
             
              desc "Runs dummy rspec with turbolinks"
         | 
| 21 22 | 
             
              task dummy: ["dummy_apps:dummy_app"] do
         | 
| 22 23 | 
             
                clean_gen_assets(spec_dummy_dir)
         | 
| 24 | 
            +
                gen_assets(spec_dummy_client_dir)
         | 
| 23 25 | 
             
                run_tests_in(spec_dummy_dir)
         | 
| 24 26 | 
             
              end
         | 
| 25 27 |  | 
| 26 28 | 
             
              desc "Runs dummy rspec without turbolinks"
         | 
| 27 29 | 
             
              task dummy_no_turbolinks: ["dummy_apps:dummy_app"] do
         | 
| 28 30 | 
             
                clean_gen_assets(spec_dummy_dir)
         | 
| 31 | 
            +
                gen_assets(spec_dummy_client_dir)
         | 
| 29 32 | 
             
                run_tests_in(spec_dummy_dir,
         | 
| 30 33 | 
             
                             env_vars: "DISABLE_TURBOLINKS=TRUE",
         | 
| 31 34 | 
             
                             command_name: "dummy_no_turbolinks")
         | 
| @@ -35,6 +38,7 @@ namespace :run_rspec do | |
| 35 38 | 
             
              desc "Runs dummy respec with turbolinks 2"
         | 
| 36 39 | 
             
              task dummy_turbolinks_2: ["dummy_apps:dummy_app_with_turbolinks_2"] do
         | 
| 37 40 | 
             
                clean_gen_assets(spec_dummy_dir)
         | 
| 41 | 
            +
                gen_assets(spec_dummy_client_dir)
         | 
| 38 42 | 
             
                run_tests_in(spec_dummy_dir, env_vars:
         | 
| 39 43 | 
             
                  "ENABLE_TURBOLINKS_2=TRUE BUNDLE_GEMFILE=#{dummy_app_dir}/Gemfile")
         | 
| 40 44 | 
             
              end
         | 
| @@ -115,3 +119,8 @@ def clean_gen_assets(dir) | |
| 115 119 | 
             
              path = calc_path(dir)
         | 
| 116 120 | 
             
              sh_in_dir(path.realpath, "yarn run build:clean")
         | 
| 117 121 | 
             
            end
         | 
| 122 | 
            +
             | 
| 123 | 
            +
            def gen_assets(dir)
         | 
| 124 | 
            +
              path = calc_path(dir)
         | 
| 125 | 
            +
              sh_in_dir(path.realpath, "yarn run build:test")
         | 
| 126 | 
            +
            end
         | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            const { join } = require('path');
         | 
| 2 | 
            +
            const { env } = require('process');
         | 
| 3 | 
            +
            const { safeLoad } = require('js-yaml');
         | 
| 4 | 
            +
            const { readFileSync } = require('fs');
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            const configLoader = (configPath) => {
         | 
| 7 | 
            +
              const paths = safeLoad(readFileSync(join(configPath, 'paths.yml'), 'utf8'))[env.NODE_ENV];
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              const devServerConfig = join(configPath, 'development.server.yml');
         | 
| 10 | 
            +
              const devServer = safeLoad(readFileSync(devServerConfig, 'utf8')).development;
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              if (env.REACT_ON_RAILS_ENV === 'HOT') {
         | 
| 13 | 
            +
                devServer.enabled = true;
         | 
| 14 | 
            +
              }
         | 
| 15 | 
            +
              const productionBuild = env.NODE_ENV === 'production';
         | 
| 16 | 
            +
             | 
| 17 | 
            +
              const publicPath = !productionBuild && devServer.enabled ?
         | 
| 18 | 
            +
                `http://${devServer.host}:${devServer.port}/` : `/${paths.assets}/`;
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              return {
         | 
| 21 | 
            +
                devServer,
         | 
| 22 | 
            +
                env,
         | 
| 23 | 
            +
                paths,
         | 
| 24 | 
            +
                publicPath,
         | 
| 25 | 
            +
              };
         | 
| 26 | 
            +
            };
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            module.exports = configLoader;
         | 
    
        data/yarn.lock
    CHANGED
    
    | @@ -1847,6 +1847,16 @@ form-data@~2.1.1: | |
| 1847 1847 | 
             
                combined-stream "^1.0.5"
         | 
| 1848 1848 | 
             
                mime-types "^2.1.12"
         | 
| 1849 1849 |  | 
| 1850 | 
            +
            fs-extra@^0.30.0:
         | 
| 1851 | 
            +
              version "0.30.0"
         | 
| 1852 | 
            +
              resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0"
         | 
| 1853 | 
            +
              dependencies:
         | 
| 1854 | 
            +
                graceful-fs "^4.1.2"
         | 
| 1855 | 
            +
                jsonfile "^2.1.0"
         | 
| 1856 | 
            +
                klaw "^1.0.0"
         | 
| 1857 | 
            +
                path-is-absolute "^1.0.0"
         | 
| 1858 | 
            +
                rimraf "^2.2.8"
         | 
| 1859 | 
            +
             | 
| 1850 1860 | 
             
            fs-readdir-recursive@^1.0.0:
         | 
| 1851 1861 | 
             
              version "1.0.0"
         | 
| 1852 1862 | 
             
              resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560"
         | 
| @@ -1982,7 +1992,7 @@ globby@^5.0.0: | |
| 1982 1992 | 
             
                pify "^2.0.0"
         | 
| 1983 1993 | 
             
                pinkie-promise "^2.0.0"
         | 
| 1984 1994 |  | 
| 1985 | 
            -
            graceful-fs@4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4:
         | 
| 1995 | 
            +
            graceful-fs@4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
         | 
| 1986 1996 | 
             
              version "4.1.11"
         | 
| 1987 1997 | 
             
              resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
         | 
| 1988 1998 |  | 
| @@ -2421,6 +2431,12 @@ json5@^0.5.0: | |
| 2421 2431 | 
             
              version "0.5.0"
         | 
| 2422 2432 | 
             
              resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.0.tgz#9b20715b026cbe3778fd769edccd822d8332a5b2"
         | 
| 2423 2433 |  | 
| 2434 | 
            +
            jsonfile@^2.1.0:
         | 
| 2435 | 
            +
              version "2.4.0"
         | 
| 2436 | 
            +
              resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
         | 
| 2437 | 
            +
              optionalDependencies:
         | 
| 2438 | 
            +
                graceful-fs "^4.1.6"
         | 
| 2439 | 
            +
             | 
| 2424 2440 | 
             
            jsonify@~0.0.0:
         | 
| 2425 2441 | 
             
              version "0.0.0"
         | 
| 2426 2442 | 
             
              resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
         | 
| @@ -2450,6 +2466,12 @@ kind-of@^3.0.2: | |
| 2450 2466 | 
             
              dependencies:
         | 
| 2451 2467 | 
             
                is-buffer "^1.0.2"
         | 
| 2452 2468 |  | 
| 2469 | 
            +
            klaw@^1.0.0:
         | 
| 2470 | 
            +
              version "1.3.1"
         | 
| 2471 | 
            +
              resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
         | 
| 2472 | 
            +
              optionalDependencies:
         | 
| 2473 | 
            +
                graceful-fs "^4.1.9"
         | 
| 2474 | 
            +
             | 
| 2453 2475 | 
             
            lazy-cache@^1.0.3:
         | 
| 2454 2476 | 
             
              version "1.0.4"
         | 
| 2455 2477 | 
             
              resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
         | 
| @@ -2502,7 +2524,7 @@ lodash.pickby@^4.6.0: | |
| 2502 2524 | 
             
              version "4.6.0"
         | 
| 2503 2525 | 
             
              resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff"
         | 
| 2504 2526 |  | 
| 2505 | 
            -
            lodash@4.17.4, lodash@^4.14.0, lodash@^4.3.0:
         | 
| 2527 | 
            +
            lodash@4.17.4, "lodash@>=3.5 <5", lodash@^4.14.0, lodash@^4.3.0:
         | 
| 2506 2528 | 
             
              version "4.17.4"
         | 
| 2507 2529 | 
             
              resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
         | 
| 2508 2530 |  | 
| @@ -2721,11 +2743,11 @@ oauth-sign@~0.8.1: | |
| 2721 2743 | 
             
              version "0.8.2"
         | 
| 2722 2744 | 
             
              resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
         | 
| 2723 2745 |  | 
| 2724 | 
            -
            object-assign@^4.0.0, object-assign@^4.0.1 | 
| 2746 | 
            +
            object-assign@^4.0.0, object-assign@^4.0.1:
         | 
| 2725 2747 | 
             
              version "4.1.0"
         | 
| 2726 2748 | 
             
              resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
         | 
| 2727 2749 |  | 
| 2728 | 
            -
            object-assign@^4.1.1:
         | 
| 2750 | 
            +
            object-assign@^4.1.0, object-assign@^4.1.1:
         | 
| 2729 2751 | 
             
              version "4.1.1"
         | 
| 2730 2752 | 
             
              resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
         | 
| 2731 2753 |  | 
| @@ -3037,6 +3059,9 @@ react-dom@^15.5.4: | |
| 3037 3059 | 
             
                object-assign "^4.1.0"
         | 
| 3038 3060 | 
             
                prop-types "~15.5.7"
         | 
| 3039 3061 |  | 
| 3062 | 
            +
            "react-on-rails@file:./":
         | 
| 3063 | 
            +
              version "6.10.0"
         | 
| 3064 | 
            +
             | 
| 3040 3065 | 
             
            react-proxy@^1.1.7:
         | 
| 3041 3066 | 
             
              version "1.1.8"
         | 
| 3042 3067 | 
             
              resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a"
         | 
| @@ -3790,6 +3815,13 @@ webidl-conversions@^4.0.0: | |
| 3790 3815 | 
             
              version "4.0.1"
         | 
| 3791 3816 | 
             
              resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.1.tgz#8015a17ab83e7e1b311638486ace81da6ce206a0"
         | 
| 3792 3817 |  | 
| 3818 | 
            +
            webpack-manifest-plugin@^1.1.0:
         | 
| 3819 | 
            +
              version "1.1.0"
         | 
| 3820 | 
            +
              resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-1.1.0.tgz#6b6c718aade8a2537995784b46bd2e9836057caa"
         | 
| 3821 | 
            +
              dependencies:
         | 
| 3822 | 
            +
                fs-extra "^0.30.0"
         | 
| 3823 | 
            +
                lodash ">=3.5 <5"
         | 
| 3824 | 
            +
             | 
| 3793 3825 | 
             
            webpack-sources@^0.2.3:
         | 
| 3794 3826 | 
             
              version "0.2.3"
         | 
| 3795 3827 | 
             
              resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb"
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: react_on_rails
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 7.0. | 
| 4 | 
            +
              version: 7.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Justin Gordon
         | 
| @@ -370,9 +370,11 @@ files: | |
| 370 370 | 
             
            - lib/generators/react_on_rails/node_generator.rb
         | 
| 371 371 | 
             
            - lib/generators/react_on_rails/react_no_redux_generator.rb
         | 
| 372 372 | 
             
            - lib/generators/react_on_rails/react_with_redux_generator.rb
         | 
| 373 | 
            +
            - lib/generators/react_on_rails/templates/.eslintrc
         | 
| 373 374 | 
             
            - lib/generators/react_on_rails/templates/base/base/Procfile.dev.tt
         | 
| 374 375 | 
             
            - lib/generators/react_on_rails/templates/base/base/app/controllers/hello_world_controller.rb
         | 
| 375 376 | 
             
            - lib/generators/react_on_rails/templates/base/base/app/views/hello_world/index.html.erb.tt
         | 
| 377 | 
            +
            - lib/generators/react_on_rails/templates/base/base/app/views/layouts/hello_world.html.erb.tt
         | 
| 376 378 | 
             
            - lib/generators/react_on_rails/templates/base/base/client/.babelrc
         | 
| 377 379 | 
             
            - lib/generators/react_on_rails/templates/base/base/client/REACT_ON_RAILS_CLIENT_README.md
         | 
| 378 380 | 
             
            - lib/generators/react_on_rails/templates/base/base/client/app/bundles/HelloWorld/components/HelloWorld.jsx
         | 
| @@ -380,6 +382,8 @@ files: | |
| 380 382 | 
             
            - lib/generators/react_on_rails/templates/base/base/client/package.json.tt
         | 
| 381 383 | 
             
            - lib/generators/react_on_rails/templates/base/base/client/webpack.config.js
         | 
| 382 384 | 
             
            - lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt
         | 
| 385 | 
            +
            - lib/generators/react_on_rails/templates/base/base/config/webpack/development.server.yml
         | 
| 386 | 
            +
            - lib/generators/react_on_rails/templates/base/base/config/webpack/paths.yml
         | 
| 383 387 | 
             
            - lib/generators/react_on_rails/templates/base/base/package.json.tt
         | 
| 384 388 | 
             
            - lib/generators/react_on_rails/templates/dev_tests/.rspec
         | 
| 385 389 | 
             
            - lib/generators/react_on_rails/templates/dev_tests/spec/features/hello_world_spec.rb
         | 
| @@ -436,6 +440,7 @@ files: | |
| 436 440 | 
             
            - script/release
         | 
| 437 441 | 
             
            - script/setup
         | 
| 438 442 | 
             
            - script/test
         | 
| 443 | 
            +
            - webpackConfigLoader.js
         | 
| 439 444 | 
             
            - yarn.lock
         | 
| 440 445 | 
             
            homepage: https://github.com/shakacode/react_on_rails
         | 
| 441 446 | 
             
            licenses:
         |