shakacode/react_on_rails

View on GitHub
lib/generators/react_on_rails/generator_messages.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module GeneratorMessages
  class << self
    def output
      @output ||= []
    end

    def add_error(message)
      output << format_error(message)
    end

    def add_warning(message)
      output << format_warning(message)
    end

    def add_info(message)
      output << format_info(message)
    end

    def messages
      output
    end

    def format_error(msg)
      Rainbow("ERROR: #{msg}").red
    end

    def format_warning(msg)
      Rainbow("WARNING: #{msg}").orange
    end

    def format_info(msg)
      Rainbow(msg.to_s).green
    end

    def clear
      @output = []
    end

    def helpful_message_after_installation
      <<~MSG

        What to do next:

          - See the documentation on https://github.com/shakacode/shakapacker#webpack-configuration
            for how to customize the default webpack configuration.

          - Include your webpack assets to your application layout.

              <%= javascript_pack_tag 'hello-world-bundle' %>

          - To start Rails server run:

              ./bin/dev # Running with HMR

            or

              ./bin/dev-static # Running with statically created bundles, without HMR

          - To server render, change this line app/views/hello_world/index.html.erb to
            `prerender: true` to see server rendering (right click on page and select "view source").

              <%= react_component("HelloWorldApp", props: @hello_world_props, prerender: true) %>

        Alternative steps to run the app:

          - Run `rails s` to start the Rails server.

          - Run bin/shakapacker-dev-server to start the Webpack dev server for compilation of Webpack
            assets as soon as you save. This default setup with the dev server does not work
            for server rendering

          - Visit http://localhost:3000/hello_world and see your React On Rails app running!

          - To turn on HMR, edit config/shakapacker.yml and set HMR to true. Restart the rails server
            and bin/shakapacker-dev-server. Or use Procfile.dev.
      MSG
    end
  end
end