rails-hyperstack 1.0.alpha1.2 → 1.0.alpha1.7
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/.gitignore +10 -0
 - data/.ruby-version +1 -0
 - data/Gemfile +2 -1
 - data/Rakefile +21 -11
 - data/lib/generators/hyper/component_generator.rb +3 -16
 - data/lib/generators/hyper/generator_base.rb +18 -0
 - data/lib/generators/hyper/router_generator.rb +3 -19
 - data/lib/generators/hyper/templates/component_template.rb +19 -8
 - data/lib/generators/hyper/templates/hyper_component_template.rb +10 -0
 - data/lib/generators/hyper/templates/router_template.rb +4 -4
 - data/lib/generators/hyperstack/install_generator.rb +137 -137
 - data/lib/generators/hyperstack/install_generator_base.rb +268 -3
 - data/lib/generators/install/hyperstack_generator.rb +229 -0
 - data/lib/generators/install/hyperstack_generator_base.rb +102 -0
 - data/lib/hyperstack/server_side_auto_require.rb +39 -0
 - data/lib/hyperstack/version.rb +1 -1
 - data/lib/rails-hyperstack.rb +10 -2
 - data/lib/tasks/hyperstack/install.rake +32 -0
 - data/rails-hyperstack.gemspec +45 -19
 - data/spec/gems.rb +10 -0
 - data/spec/rails_hyperstack_spec.rb +22 -16
 - data/spec/server_side_sample.rb +5 -0
 - metadata +82 -77
 - data/Gemfile.lock +0 -421
 
| 
         @@ -0,0 +1,102 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'rails/generators'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Rails
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Generators
         
     | 
| 
      
 5 
     | 
    
         
            +
                class Base < Thor::Group
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                  protected
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def warnings
         
     | 
| 
      
 10 
     | 
    
         
            +
                    @warnings ||= []
         
     | 
| 
      
 11 
     | 
    
         
            +
                  end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def clear_cache
         
     | 
| 
      
 14 
     | 
    
         
            +
                    run 'rm -rf tmp/cache' unless Dir.exists?(Rails.root.join('app', 'hyperstack'))
         
     | 
| 
      
 15 
     | 
    
         
            +
                  end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                  def insure_hyperstack_loader_installed
         
     | 
| 
      
 18 
     | 
    
         
            +
                    hyperstack_loader = %r{//=\s+require\s+hyperstack-loader\s+}
         
     | 
| 
      
 19 
     | 
    
         
            +
                    application_js = Rails.root.join(
         
     | 
| 
      
 20 
     | 
    
         
            +
                      'app', 'assets', 'javascripts', 'application.js'
         
     | 
| 
      
 21 
     | 
    
         
            +
                    )
         
     | 
| 
      
 22 
     | 
    
         
            +
                    if File.exist? application_js
         
     | 
| 
      
 23 
     | 
    
         
            +
                      unless File.foreach(application_js).any? { |l| l =~ hyperstack_loader }
         
     | 
| 
      
 24 
     | 
    
         
            +
                        require_tree = %r{//=\s+require_tree\s+}
         
     | 
| 
      
 25 
     | 
    
         
            +
                        if File.foreach(application_js).any? { |l| l =~ require_tree }
         
     | 
| 
      
 26 
     | 
    
         
            +
                          inject_into_file 'app/assets/javascripts/application.js', before: require_tree do
         
     | 
| 
      
 27 
     | 
    
         
            +
                            "//= require hyperstack-loader\n"
         
     | 
| 
      
 28 
     | 
    
         
            +
                          end
         
     | 
| 
      
 29 
     | 
    
         
            +
                        else
         
     | 
| 
      
 30 
     | 
    
         
            +
                          warnings <<
         
     | 
| 
      
 31 
     | 
    
         
            +
                            " ***********************************************************\n"\
         
     | 
| 
      
 32 
     | 
    
         
            +
                            " * Could not add `//= require hyperstack-loader` directive *\n"\
         
     | 
| 
      
 33 
     | 
    
         
            +
                            " * to the app/assets/application.js file.                  *\n"\
         
     | 
| 
      
 34 
     | 
    
         
            +
                            " * Normally this directive is added just before the        *\n"\
         
     | 
| 
      
 35 
     | 
    
         
            +
                            " * `//= require_tree .` directive at the end of the file,  *\n"\
         
     | 
| 
      
 36 
     | 
    
         
            +
                            " * but no require_tree directive was found.  You need to   *\n"\
         
     | 
| 
      
 37 
     | 
    
         
            +
                            " * manually add `//= require hyperstack-loader` to the     *\n"\
         
     | 
| 
      
 38 
     | 
    
         
            +
                            " * app/assets/application.js file.                         *\n"\
         
     | 
| 
      
 39 
     | 
    
         
            +
                            " ***********************************************************\n"
         
     | 
| 
      
 40 
     | 
    
         
            +
                        end
         
     | 
| 
      
 41 
     | 
    
         
            +
                      end
         
     | 
| 
      
 42 
     | 
    
         
            +
                    else
         
     | 
| 
      
 43 
     | 
    
         
            +
                      create_file application_js, "//= require hyperstack-loader\n"
         
     | 
| 
      
 44 
     | 
    
         
            +
                      warnings <<
         
     | 
| 
      
 45 
     | 
    
         
            +
                        " ***********************************************************\n"\
         
     | 
| 
      
 46 
     | 
    
         
            +
                        " * Could not find the  app/assets/application.js file.     *\n"\
         
     | 
| 
      
 47 
     | 
    
         
            +
                        " * We created one for you, and added the                   *\n"\
         
     | 
| 
      
 48 
     | 
    
         
            +
                        " * `<%= javascript_include_tag 'application' %>` to your   *\n"\
         
     | 
| 
      
 49 
     | 
    
         
            +
                        " * `html.erb` files immediately after any                  *\n"\
         
     | 
| 
      
 50 
     | 
    
         
            +
                        " * `<%= javascript_pack 'application' %>` tags we found.   *\n"\
         
     | 
| 
      
 51 
     | 
    
         
            +
                        " ***********************************************************\n"
         
     | 
| 
      
 52 
     | 
    
         
            +
                      application_pack_tag =
         
     | 
| 
      
 53 
     | 
    
         
            +
                        /\s*\<\%\=\s+javascript_pack_tag\s+(\'|\")application(\'|\").*\%\>.*$/
         
     | 
| 
      
 54 
     | 
    
         
            +
                      Dir.glob(Rails.root.join('app', 'views', '**', '*.erb')) do |file|
         
     | 
| 
      
 55 
     | 
    
         
            +
                        if File.foreach(file).any? { |l| l =~ application_pack_tag }
         
     | 
| 
      
 56 
     | 
    
         
            +
                          inject_into_file file, after: application_pack_tag do
         
     | 
| 
      
 57 
     | 
    
         
            +
                            "\n    <%= javascript_include_tag 'application' %>"
         
     | 
| 
      
 58 
     | 
    
         
            +
                          end
         
     | 
| 
      
 59 
     | 
    
         
            +
                        end
         
     | 
| 
      
 60 
     | 
    
         
            +
                      end
         
     | 
| 
      
 61 
     | 
    
         
            +
                    end
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                  def insure_base_component_class_exists
         
     | 
| 
      
 65 
     | 
    
         
            +
                    @component_base_class = options['base-class']
         
     | 
| 
      
 66 
     | 
    
         
            +
                    file_name = Rails.root.join(
         
     | 
| 
      
 67 
     | 
    
         
            +
                      'app', 'hyperstack', 'components', "#{@component_base_class.underscore}.rb"
         
     | 
| 
      
 68 
     | 
    
         
            +
                    )
         
     | 
| 
      
 69 
     | 
    
         
            +
                    template 'hyper_component_template.rb', file_name unless File.exists? file_name
         
     | 
| 
      
 70 
     | 
    
         
            +
                  end
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                  def add_to_manifest(manifest, &block)
         
     | 
| 
      
 73 
     | 
    
         
            +
                    if File.exists? "app/javascript/packs/#{manifest}"
         
     | 
| 
      
 74 
     | 
    
         
            +
                      append_file "app/javascript/packs/#{manifest}", &block
         
     | 
| 
      
 75 
     | 
    
         
            +
                    else
         
     | 
| 
      
 76 
     | 
    
         
            +
                      create_file "app/javascript/packs/#{manifest}", &block
         
     | 
| 
      
 77 
     | 
    
         
            +
                    end
         
     | 
| 
      
 78 
     | 
    
         
            +
                  end
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                  def add_route
         
     | 
| 
      
 81 
     | 
    
         
            +
                    return unless options['add-route']
         
     | 
| 
      
 82 
     | 
    
         
            +
                    if self.components.count > 1
         
     | 
| 
      
 83 
     | 
    
         
            +
                      warnings <<
         
     | 
| 
      
 84 
     | 
    
         
            +
                           " ***********************************************************\n"\
         
     | 
| 
      
 85 
     | 
    
         
            +
                           " * The add-route option ignored because more than one      *\n"\
         
     | 
| 
      
 86 
     | 
    
         
            +
                           " * component is being generated.                           *\n"\
         
     | 
| 
      
 87 
     | 
    
         
            +
                           " ***********************************************************\n"
         
     | 
| 
      
 88 
     | 
    
         
            +
                      return
         
     | 
| 
      
 89 
     | 
    
         
            +
                    end
         
     | 
| 
      
 90 
     | 
    
         
            +
                    action_name = (@modules+[@file_name.underscore]).join('__')
         
     | 
| 
      
 91 
     | 
    
         
            +
                    path = options['add-route'] == 'add-route' ? '/(*others)' : options['add-route']
         
     | 
| 
      
 92 
     | 
    
         
            +
                    route "get '#{path}', to: 'hyperstack##{action_name}'"
         
     | 
| 
      
 93 
     | 
    
         
            +
                  end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
                  def yarn(package, version = nil)
         
     | 
| 
      
 97 
     | 
    
         
            +
                    return if system("yarn add #{package}#{'@' + version if version}")
         
     | 
| 
      
 98 
     | 
    
         
            +
                    raise Thor::Error.new("yarn failed to install #{package} with version #{version}")
         
     | 
| 
      
 99 
     | 
    
         
            +
                  end
         
     | 
| 
      
 100 
     | 
    
         
            +
                end
         
     | 
| 
      
 101 
     | 
    
         
            +
              end
         
     | 
| 
      
 102 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,39 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Rails.configuration.autoloader = :classic
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module ActiveSupport
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Dependencies
         
     | 
| 
      
 5 
     | 
    
         
            +
                HYPERSTACK_DIR = "hyperstack"
         
     | 
| 
      
 6 
     | 
    
         
            +
                class << self
         
     | 
| 
      
 7 
     | 
    
         
            +
                  alias original_require_or_load require_or_load
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  # before requiring_or_loading a file, first check if
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # we have the same file in the server side directory
         
     | 
| 
      
 11 
     | 
    
         
            +
                  # and add that as a dependency
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                  def require_or_load(file_name, const_path = nil)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    add_server_side_dependency(file_name)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    original_require_or_load(file_name, const_path)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  # search the filename path from the end towards the beginning
         
     | 
| 
      
 19 
     | 
    
         
            +
                  # for the HYPERSTACK_DIR directory.  If found, remove it from
         
     | 
| 
      
 20 
     | 
    
         
            +
                  # the filename, and if a ruby file exists at that location then
         
     | 
| 
      
 21 
     | 
    
         
            +
                  # add it as a dependency
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                  def add_server_side_dependency(file_name)
         
     | 
| 
      
 24 
     | 
    
         
            +
                    path = File.expand_path(file_name.chomp(".rb"))
         
     | 
| 
      
 25 
     | 
    
         
            +
                               .split(File::SEPARATOR).reverse
         
     | 
| 
      
 26 
     | 
    
         
            +
                    hs_index = path.find_index(HYPERSTACK_DIR)
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                    return unless hs_index # no hyperstack directory here
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                    new_path = (path[0..hs_index - 1] + path[hs_index + 1..-1]).reverse
         
     | 
| 
      
 31 
     | 
    
         
            +
                    load_path = new_path.join(File::SEPARATOR)
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                    return unless File.exist? "#{load_path}.rb"
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    require_dependency load_path
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/hyperstack/version.rb
    CHANGED
    
    
    
        data/lib/rails-hyperstack.rb
    CHANGED
    
    | 
         @@ -1,6 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'hyperstack-config'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'rails/generators'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'hyper-state'
         
     | 
| 
       4 
3 
     | 
    
         | 
| 
       5 
4 
     | 
    
         
             
            # remove these once lap29 is released ...
         
     | 
| 
       6 
5 
     | 
    
         
             
            Hyperstack.js_import 'react/react-source-browser', client_only: true, defines: ['ReactDOM', 'React']
         
     | 
| 
         @@ -14,15 +13,24 @@ Hyperstack.import 'hyper-model' 
     | 
|
| 
       14 
13 
     | 
    
         
             
            Hyperstack.import 'hyper-state'
         
     | 
| 
       15 
14 
     | 
    
         | 
| 
       16 
15 
     | 
    
         
             
            require 'generators/hyperstack/install_generator'
         
     | 
| 
      
 16 
     | 
    
         
            +
            require 'generators/hyper/generator_base'
         
     | 
| 
       17 
17 
     | 
    
         
             
            require 'generators/hyper/component_generator'
         
     | 
| 
       18 
18 
     | 
    
         
             
            require 'generators/hyper/router_generator'
         
     | 
| 
       19 
19 
     | 
    
         
             
            begin
         
     | 
| 
       20 
20 
     | 
    
         
             
              require 'opal-rails'
         
     | 
| 
       21 
21 
     | 
    
         
             
              require 'hyper-model'
         
     | 
| 
       22 
22 
     | 
    
         
             
              require 'hyper-router'
         
     | 
| 
      
 23 
     | 
    
         
            +
              require 'mini_racer'
         
     | 
| 
       23 
24 
     | 
    
         
             
            rescue LoadError
         
     | 
| 
       24 
25 
     | 
    
         
             
            end
         
     | 
| 
       25 
26 
     | 
    
         
             
            require 'react-rails'
         
     | 
| 
       26 
27 
     | 
    
         
             
            require 'opal-browser'
         
     | 
| 
       27 
     | 
    
         
            -
            require 'mini_racer'
         
     | 
| 
       28 
28 
     | 
    
         
             
            require 'hyperstack/version'
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            class RailsHyperstack < Rails::Railtie
         
     | 
| 
      
 31 
     | 
    
         
            +
              rake_tasks do
         
     | 
| 
      
 32 
     | 
    
         
            +
                Dir[File.join(File.dirname(__FILE__),'tasks/hyperstack/*.rake')].each { |f| puts "loading #{f}"; load f }
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
      
 34 
     | 
    
         
            +
            end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            Hyperstack.define_setting :component_base_class, 'HyperComponent'
         
     | 
| 
         @@ -0,0 +1,32 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # install_template_path = File.expand_path("../../install/template.rb", __dir__).freeze
         
     | 
| 
      
 2 
     | 
    
         
            +
            bin_path = ENV["BUNDLE_BIN"] || "./bin"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'optparse'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            namespace :hyperstack do
         
     | 
| 
      
 6 
     | 
    
         
            +
              desc "Install Hyperstack in this application"
         
     | 
| 
      
 7 
     | 
    
         
            +
              task :install do
         
     | 
| 
      
 8 
     | 
    
         
            +
                exec "#{RbConfig.ruby} #{bin_path}/rails g hyperstack:install"
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
              namespace :install do
         
     | 
| 
      
 11 
     | 
    
         
            +
                task :default do
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
                task "hotloader" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                  exec "#{RbConfig.ruby} #{bin_path}/rails g hyperstack:install --hotloader-only"
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
                task "webpack" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                  exec "#{RbConfig.ruby} #{bin_path}/rails g hyperstack:install --webpack-only"
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
                task "hyper-model" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                  exec "#{RbConfig.ruby} #{bin_path}/rails g hyperstack:install --hyper-model-only"
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
                task "skip-hotloader" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                  exec "#{RbConfig.ruby} #{bin_path}/rails g hyperstack:install --skip-hotloader"
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
                task "skip-webpack" do
         
     | 
| 
      
 26 
     | 
    
         
            +
                  exec "#{RbConfig.ruby} #{bin_path}/rails g hyperstack:install --skip-webpack"
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
                task "skip-hyper-model" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                  exec "#{RbConfig.ruby} #{bin_path}/rails g hyperstack:install --skip-hyper-model"
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
            end
         
     | 
    
        data/rails-hyperstack.gemspec
    CHANGED
    
    | 
         @@ -18,48 +18,74 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       18 
18 
     | 
    
         
             
              # }
         
     | 
| 
       19 
19 
     | 
    
         
             
              spec.files       = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(tasks)/}) }
         
     | 
| 
       20 
20 
     | 
    
         
             
              spec.require_paths = ['lib']
         
     | 
| 
      
 21 
     | 
    
         
            +
              spec.post_install_message = %q{
         
     | 
| 
      
 22 
     | 
    
         
            +
            *******************************************************************************
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            Welcome to Hyperstack!
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            For a quick start simply add a component using one of the generators:
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
              >> bundle exec rails generate hyper:component CompName --add-route="/test/(*others)"
         
     | 
| 
      
 29 
     | 
    
         
            +
                 # Add a new component named CompName and route to it with /test/
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              >> bundle exec rails generate hyper:router CompName --add-route="/test/(*others)"
         
     | 
| 
      
 32 
     | 
    
         
            +
                 # Add a top level router named CompName and route to it
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            The generators will insure you have the minimal additions to your system for the
         
     | 
| 
      
 35 
     | 
    
         
            +
            new component to run.  And note: --add-route is optional.
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            For a complete install run the hyperstack install task:
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
              >> bundle exec rails hyperstack:install
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            This will add everything you need including the hotloader, webpack integration,
         
     | 
| 
      
 42 
     | 
    
         
            +
            hyper-model (active record model client synchronization) and a top level
         
     | 
| 
      
 43 
     | 
    
         
            +
            component to get you started.
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            You can control how much of the stack gets installed as well:
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
              >> bundle exec rails hyperstack:install:webpack          # just add webpack
         
     | 
| 
      
 48 
     | 
    
         
            +
              >> bundle exec rails hyperstack:install:skip-webpack     # all but webpack
         
     | 
| 
      
 49 
     | 
    
         
            +
              >> bundle exec rails hyperstack:install:hyper-model      # just add hyper-model
         
     | 
| 
      
 50 
     | 
    
         
            +
              >> bundle exec rails hyperstack:install:skip-hyper-model # all but hyper-model
         
     | 
| 
      
 51 
     | 
    
         
            +
              >> bundle exec rails hyperstack:install:hotloader        # just add the hotloader
         
     | 
| 
      
 52 
     | 
    
         
            +
              >> bundle exec rails hyperstack:install:skip-hotloader   # skip the hotloader
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            *******************************************************************************
         
     | 
| 
      
 55 
     | 
    
         
            +
            }
         
     | 
| 
       21 
56 
     | 
    
         | 
| 
       22 
57 
     | 
    
         
             
              spec.add_dependency 'hyper-model', Hyperstack::VERSION
         
     | 
| 
       23 
58 
     | 
    
         
             
              spec.add_dependency 'hyper-router', Hyperstack::ROUTERVERSION
         
     | 
| 
       24 
59 
     | 
    
         
             
              spec.add_dependency 'hyperstack-config', Hyperstack::VERSION
         
     | 
| 
       25 
     | 
    
         
            -
              spec.add_dependency 'opal-rails' 
     | 
| 
      
 60 
     | 
    
         
            +
              spec.add_dependency 'opal-rails' #, '~> 2.0'
         
     | 
| 
       26 
61 
     | 
    
         | 
| 
       27 
62 
     | 
    
         
             
              spec.add_dependency 'opal-browser', '~> 0.2.0'
         
     | 
| 
       28 
63 
     | 
    
         
             
              spec.add_dependency 'react-rails', '>= 2.4.0', '< 2.5.0'
         
     | 
| 
       29 
     | 
    
         
            -
              spec.add_dependency 'mini_racer', '~> 0. 
     | 
| 
       30 
     | 
    
         
            -
              #  
     | 
| 
       31 
     | 
    
         
            -
              spec.add_dependency ' 
     | 
| 
       32 
     | 
    
         
            -
              spec.add_dependency 'rails', '>= 4.0.0'
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
      
 64 
     | 
    
         
            +
              # spec.add_dependency 'mini_racer', '~> 0.2.6'
         
     | 
| 
      
 65 
     | 
    
         
            +
              # spec.add_dependency 'libv8', '~> 7.3.492.27.1'
         
     | 
| 
      
 66 
     | 
    
         
            +
              spec.add_dependency 'rails', ENV['RAILS_VERSION'] || '>= 5.0.0', '< 7.0'
         
     | 
| 
       34 
67 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
               
     | 
| 
       36 
     | 
    
         
            -
              # #spec.add_development_dependency 'chromedriver-helper'
         
     | 
| 
       37 
     | 
    
         
            -
              # spec.add_development_dependency 'geminabox', '>= 0.13.11'
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
              spec.add_development_dependency 'bundler', '~> 1.16.0'
         
     | 
| 
      
 68 
     | 
    
         
            +
              spec.add_development_dependency 'bundler'
         
     | 
| 
       41 
69 
     | 
    
         
             
              spec.add_development_dependency 'chromedriver-helper'
         
     | 
| 
       42 
70 
     | 
    
         
             
              spec.add_development_dependency 'hyper-spec', Hyperstack::VERSION
         
     | 
| 
       43 
71 
     | 
    
         
             
              spec.add_development_dependency 'pry'
         
     | 
| 
       44 
72 
     | 
    
         
             
              spec.add_development_dependency 'puma'
         
     | 
| 
       45 
73 
     | 
    
         
             
              spec.add_development_dependency 'bootsnap'
         
     | 
| 
       46 
     | 
    
         
            -
               
     | 
| 
       47 
     | 
    
         
            -
              spec.add_development_dependency ' 
     | 
| 
       48 
     | 
    
         
            -
              spec.add_development_dependency ' 
     | 
| 
       49 
     | 
    
         
            -
              spec.add_development_dependency ' 
     | 
| 
       50 
     | 
    
         
            -
              spec.add_development_dependency 'sass-rails', '~> 5.0'
         
     | 
| 
      
 74 
     | 
    
         
            +
              spec.add_development_dependency 'rspec-rails'
         
     | 
| 
      
 75 
     | 
    
         
            +
              spec.add_development_dependency 'rubocop' #, '~> 0.51.0'
         
     | 
| 
      
 76 
     | 
    
         
            +
              spec.add_development_dependency 'sqlite3', '~> 1.4' # was 1.3.6 -- see https://github.com/rails/rails/issues/35153
         
     | 
| 
      
 77 
     | 
    
         
            +
              spec.add_development_dependency 'sass-rails', '>= 5.0'
         
     | 
| 
       51 
78 
     | 
    
         
             
              # Use Uglifier as compressor for JavaScript assets
         
     | 
| 
       52 
79 
     | 
    
         
             
              spec.add_development_dependency 'uglifier', '>= 1.3.0'
         
     | 
| 
       53 
80 
     | 
    
         
             
              # See https://github.com/rails/execjs#readme for more supported runtimes
         
     | 
| 
       54 
81 
     | 
    
         
             
              # gem 'mini_racer', platforms: :ruby
         
     | 
| 
       55 
82 
     | 
    
         | 
| 
       56 
83 
     | 
    
         
             
              # Use CoffeeScript for .coffee assets and views
         
     | 
| 
       57 
     | 
    
         
            -
              spec.add_development_dependency 'coffee-rails', '~> 4.2'
         
     | 
| 
      
 84 
     | 
    
         
            +
              #spec.add_development_dependency 'coffee-rails', '~> 4.2'
         
     | 
| 
       58 
85 
     | 
    
         
             
              # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
         
     | 
| 
       59 
86 
     | 
    
         
             
              spec.add_development_dependency 'turbolinks', '~> 5'
         
     | 
| 
       60 
87 
     | 
    
         
             
              # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
         
     | 
| 
       61 
88 
     | 
    
         
             
              spec.add_development_dependency 'jbuilder', '~> 2.5'
         
     | 
| 
       62 
89 
     | 
    
         
             
              spec.add_development_dependency 'foreman'
         
     | 
| 
       63 
90 
     | 
    
         
             
              spec.add_development_dependency 'database_cleaner'
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
91 
     | 
    
         
             
            end
         
     | 
    
        data/spec/gems.rb
    ADDED
    
    | 
         @@ -0,0 +1,10 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            gem 'rails-hyperstack',  path: '../..'
         
     | 
| 
      
 2 
     | 
    
         
            +
            gem 'hyperstack-config', path: '../../../hyperstack-config'
         
     | 
| 
      
 3 
     | 
    
         
            +
            gem 'hyper-state',       path: '../../../hyper-state'
         
     | 
| 
      
 4 
     | 
    
         
            +
            gem 'hyper-component',   path: '../../../hyper-component'
         
     | 
| 
      
 5 
     | 
    
         
            +
            gem 'hyper-operation',   path: '../../../hyper-operation'
         
     | 
| 
      
 6 
     | 
    
         
            +
            gem 'hyper-model',       path: '../../../hyper-model'
         
     | 
| 
      
 7 
     | 
    
         
            +
            gem 'hyper-router',      path: '../../../hyper-router'
         
     | 
| 
      
 8 
     | 
    
         
            +
            gem 'hyper-spec',        path: '../../../hyper-spec'
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            gem 'pry'
         
     | 
| 
         @@ -1,24 +1,30 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require  
     | 
| 
      
 1 
     | 
    
         
            +
            require "spec_helper"
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            describe  
     | 
| 
       4 
     | 
    
         
            -
              it  
     | 
| 
       5 
     | 
    
         
            -
                visit  
     | 
| 
       6 
     | 
    
         
            -
                expect(page).to have_content( 
     | 
| 
      
 3 
     | 
    
         
            +
            describe "rails-hyperstack" do
         
     | 
| 
      
 4 
     | 
    
         
            +
              it "builds a working app", js: true do
         
     | 
| 
      
 5 
     | 
    
         
            +
                visit "/"
         
     | 
| 
      
 6 
     | 
    
         
            +
                expect(page).to have_content("App")
         
     | 
| 
       7 
7 
     | 
    
         
             
              end
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                 
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              it "installs hyper-model and friends", js: true do
         
     | 
| 
      
 10 
     | 
    
         
            +
                visit "/"
         
     | 
| 
      
 11 
     | 
    
         
            +
                expect do
         
     | 
| 
       11 
12 
     | 
    
         
             
                  Hyperstack::Model.load { Sample.count }
         
     | 
| 
       12 
     | 
    
         
            -
                end. 
     | 
| 
       13 
     | 
    
         
            -
                 
     | 
| 
       14 
     | 
    
         
            -
                  Sample.create(name:  
     | 
| 
      
 13 
     | 
    
         
            +
                end.on_client_to eq(0)
         
     | 
| 
      
 14 
     | 
    
         
            +
                on_client do
         
     | 
| 
      
 15 
     | 
    
         
            +
                  Sample.create(name: "sample1", description: "the first sample")
         
     | 
| 
       15 
16 
     | 
    
         
             
                end
         
     | 
| 
       16 
17 
     | 
    
         
             
                wait_for_ajax
         
     | 
| 
       17 
18 
     | 
    
         
             
                expect(Sample.count).to eq(1)
         
     | 
| 
       18 
     | 
    
         
            -
                expect(Sample.first.name).to eq( 
     | 
| 
       19 
     | 
    
         
            -
                expect(Sample.first.description).to eq( 
     | 
| 
       20 
     | 
    
         
            -
                 
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
      
 19 
     | 
    
         
            +
                expect(Sample.first.name).to eq("sample1")
         
     | 
| 
      
 20 
     | 
    
         
            +
                expect(Sample.first.description).to eq("the first sample")
         
     | 
| 
      
 21 
     | 
    
         
            +
                expect { Sample.count }.on_client_to eq(1)
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              it "implements server_side_auto_require", js: true do
         
     | 
| 
      
 25 
     | 
    
         
            +
                expect(Sample.super_secret_server_side_method).to be true
         
     | 
| 
      
 26 
     | 
    
         
            +
                expect do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  Sample.respond_to? :super_secret_server_side_method
         
     | 
| 
      
 28 
     | 
    
         
            +
                end.on_client_to be_falsy
         
     | 
| 
       23 
29 
     | 
    
         
             
              end
         
     | 
| 
       24 
30 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rails-hyperstack
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.0.alpha1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.alpha1.7
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Loic Boutet
         
     | 
| 
         @@ -11,7 +11,7 @@ authors: 
     | 
|
| 
       11 
11 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       12 
12 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       13 
13 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       14 
     | 
    
         
            -
            date:  
     | 
| 
      
 14 
     | 
    
         
            +
            date: 2021-04-05 00:00:00.000000000 Z
         
     | 
| 
       15 
15 
     | 
    
         
             
            dependencies:
         
     | 
| 
       16 
16 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       17 
17 
     | 
    
         
             
              name: hyper-model
         
     | 
| 
         @@ -19,56 +19,56 @@ dependencies: 
     | 
|
| 
       19 
19 
     | 
    
         
             
                requirements:
         
     | 
| 
       20 
20 
     | 
    
         
             
                - - '='
         
     | 
| 
       21 
21 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       22 
     | 
    
         
            -
                    version: 1.0.alpha1. 
     | 
| 
      
 22 
     | 
    
         
            +
                    version: 1.0.alpha1.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: 1.0.alpha1. 
     | 
| 
      
 29 
     | 
    
         
            +
                    version: 1.0.alpha1.7
         
     | 
| 
       30 
30 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       31 
31 
     | 
    
         
             
              name: hyper-router
         
     | 
| 
       32 
32 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       33 
33 
     | 
    
         
             
                requirements:
         
     | 
| 
       34 
34 
     | 
    
         
             
                - - '='
         
     | 
| 
       35 
35 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       36 
     | 
    
         
            -
                    version: 1.0.alpha1. 
     | 
| 
      
 36 
     | 
    
         
            +
                    version: 1.0.alpha1.7
         
     | 
| 
       37 
37 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       38 
38 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       39 
39 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       40 
40 
     | 
    
         
             
                requirements:
         
     | 
| 
       41 
41 
     | 
    
         
             
                - - '='
         
     | 
| 
       42 
42 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       43 
     | 
    
         
            -
                    version: 1.0.alpha1. 
     | 
| 
      
 43 
     | 
    
         
            +
                    version: 1.0.alpha1.7
         
     | 
| 
       44 
44 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       45 
45 
     | 
    
         
             
              name: hyperstack-config
         
     | 
| 
       46 
46 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       47 
47 
     | 
    
         
             
                requirements:
         
     | 
| 
       48 
48 
     | 
    
         
             
                - - '='
         
     | 
| 
       49 
49 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       50 
     | 
    
         
            -
                    version: 1.0.alpha1. 
     | 
| 
      
 50 
     | 
    
         
            +
                    version: 1.0.alpha1.7
         
     | 
| 
       51 
51 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       52 
52 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       53 
53 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       54 
54 
     | 
    
         
             
                requirements:
         
     | 
| 
       55 
55 
     | 
    
         
             
                - - '='
         
     | 
| 
       56 
56 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       57 
     | 
    
         
            -
                    version: 1.0.alpha1. 
     | 
| 
      
 57 
     | 
    
         
            +
                    version: 1.0.alpha1.7
         
     | 
| 
       58 
58 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       59 
59 
     | 
    
         
             
              name: opal-rails
         
     | 
| 
       60 
60 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       61 
61 
     | 
    
         
             
                requirements:
         
     | 
| 
       62 
     | 
    
         
            -
                - - " 
     | 
| 
      
 62 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       63 
63 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       64 
     | 
    
         
            -
                    version: 0 
     | 
| 
      
 64 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       65 
65 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       66 
66 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       67 
67 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       68 
68 
     | 
    
         
             
                requirements:
         
     | 
| 
       69 
     | 
    
         
            -
                - - " 
     | 
| 
      
 69 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       70 
70 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       71 
     | 
    
         
            -
                    version: 0 
     | 
| 
      
 71 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       72 
72 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       73 
73 
     | 
    
         
             
              name: opal-browser
         
     | 
| 
       74 
74 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -103,62 +103,40 @@ dependencies: 
     | 
|
| 
       103 
103 
     | 
    
         
             
                - - "<"
         
     | 
| 
       104 
104 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       105 
105 
     | 
    
         
             
                    version: 2.5.0
         
     | 
| 
       106 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       107 
     | 
    
         
            -
              name: mini_racer
         
     | 
| 
       108 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       109 
     | 
    
         
            -
                requirements:
         
     | 
| 
       110 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       111 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       112 
     | 
    
         
            -
                    version: 0.1.15
         
     | 
| 
       113 
     | 
    
         
            -
              type: :runtime
         
     | 
| 
       114 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       115 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       116 
     | 
    
         
            -
                requirements:
         
     | 
| 
       117 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       118 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       119 
     | 
    
         
            -
                    version: 0.1.15
         
     | 
| 
       120 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       121 
     | 
    
         
            -
              name: libv8
         
     | 
| 
       122 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       123 
     | 
    
         
            -
                requirements:
         
     | 
| 
       124 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       125 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       126 
     | 
    
         
            -
                    version: 6.3.0
         
     | 
| 
       127 
     | 
    
         
            -
              type: :runtime
         
     | 
| 
       128 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       129 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       130 
     | 
    
         
            -
                requirements:
         
     | 
| 
       131 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       132 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       133 
     | 
    
         
            -
                    version: 6.3.0
         
     | 
| 
       134 
106 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       135 
107 
     | 
    
         
             
              name: rails
         
     | 
| 
       136 
108 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       137 
109 
     | 
    
         
             
                requirements:
         
     | 
| 
       138 
110 
     | 
    
         
             
                - - ">="
         
     | 
| 
       139 
111 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       140 
     | 
    
         
            -
                    version:  
     | 
| 
      
 112 
     | 
    
         
            +
                    version: 5.0.0
         
     | 
| 
      
 113 
     | 
    
         
            +
                - - "<"
         
     | 
| 
      
 114 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 115 
     | 
    
         
            +
                    version: '7.0'
         
     | 
| 
       141 
116 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       142 
117 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       143 
118 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       144 
119 
     | 
    
         
             
                requirements:
         
     | 
| 
       145 
120 
     | 
    
         
             
                - - ">="
         
     | 
| 
       146 
121 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       147 
     | 
    
         
            -
                    version:  
     | 
| 
      
 122 
     | 
    
         
            +
                    version: 5.0.0
         
     | 
| 
      
 123 
     | 
    
         
            +
                - - "<"
         
     | 
| 
      
 124 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 125 
     | 
    
         
            +
                    version: '7.0'
         
     | 
| 
       148 
126 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       149 
127 
     | 
    
         
             
              name: bundler
         
     | 
| 
       150 
128 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       151 
129 
     | 
    
         
             
                requirements:
         
     | 
| 
       152 
     | 
    
         
            -
                - - " 
     | 
| 
      
 130 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       153 
131 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       154 
     | 
    
         
            -
                    version:  
     | 
| 
      
 132 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       155 
133 
     | 
    
         
             
              type: :development
         
     | 
| 
       156 
134 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       157 
135 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       158 
136 
     | 
    
         
             
                requirements:
         
     | 
| 
       159 
     | 
    
         
            -
                - - " 
     | 
| 
      
 137 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       160 
138 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       161 
     | 
    
         
            -
                    version:  
     | 
| 
      
 139 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       162 
140 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       163 
141 
     | 
    
         
             
              name: chromedriver-helper
         
     | 
| 
       164 
142 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -179,14 +157,14 @@ dependencies: 
     | 
|
| 
       179 
157 
     | 
    
         
             
                requirements:
         
     | 
| 
       180 
158 
     | 
    
         
             
                - - '='
         
     | 
| 
       181 
159 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       182 
     | 
    
         
            -
                    version: 1.0.alpha1. 
     | 
| 
      
 160 
     | 
    
         
            +
                    version: 1.0.alpha1.7
         
     | 
| 
       183 
161 
     | 
    
         
             
              type: :development
         
     | 
| 
       184 
162 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       185 
163 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       186 
164 
     | 
    
         
             
                requirements:
         
     | 
| 
       187 
165 
     | 
    
         
             
                - - '='
         
     | 
| 
       188 
166 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       189 
     | 
    
         
            -
                    version: 1.0.alpha1. 
     | 
| 
      
 167 
     | 
    
         
            +
                    version: 1.0.alpha1.7
         
     | 
| 
       190 
168 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       191 
169 
     | 
    
         
             
              name: pry
         
     | 
| 
       192 
170 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -230,7 +208,7 @@ dependencies: 
     | 
|
| 
       230 
208 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       231 
209 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       232 
210 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       233 
     | 
    
         
            -
              name: rspec
         
     | 
| 
      
 211 
     | 
    
         
            +
              name: rspec-rails
         
     | 
| 
       234 
212 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       235 
213 
     | 
    
         
             
                requirements:
         
     | 
| 
       236 
214 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -247,42 +225,42 @@ dependencies: 
     | 
|
| 
       247 
225 
     | 
    
         
             
              name: rubocop
         
     | 
| 
       248 
226 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       249 
227 
     | 
    
         
             
                requirements:
         
     | 
| 
       250 
     | 
    
         
            -
                - - " 
     | 
| 
      
 228 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       251 
229 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       252 
     | 
    
         
            -
                    version: 0 
     | 
| 
      
 230 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       253 
231 
     | 
    
         
             
              type: :development
         
     | 
| 
       254 
232 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       255 
233 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       256 
234 
     | 
    
         
             
                requirements:
         
     | 
| 
       257 
     | 
    
         
            -
                - - " 
     | 
| 
      
 235 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       258 
236 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       259 
     | 
    
         
            -
                    version: 0 
     | 
| 
      
 237 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       260 
238 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       261 
239 
     | 
    
         
             
              name: sqlite3
         
     | 
| 
       262 
240 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       263 
241 
     | 
    
         
             
                requirements:
         
     | 
| 
       264 
     | 
    
         
            -
                - - " 
     | 
| 
      
 242 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       265 
243 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       266 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 244 
     | 
    
         
            +
                    version: '1.4'
         
     | 
| 
       267 
245 
     | 
    
         
             
              type: :development
         
     | 
| 
       268 
246 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       269 
247 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       270 
248 
     | 
    
         
             
                requirements:
         
     | 
| 
       271 
     | 
    
         
            -
                - - " 
     | 
| 
      
 249 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       272 
250 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       273 
     | 
    
         
            -
                    version: ' 
     | 
| 
      
 251 
     | 
    
         
            +
                    version: '1.4'
         
     | 
| 
       274 
252 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       275 
253 
     | 
    
         
             
              name: sass-rails
         
     | 
| 
       276 
254 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       277 
255 
     | 
    
         
             
                requirements:
         
     | 
| 
       278 
     | 
    
         
            -
                - - " 
     | 
| 
      
 256 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       279 
257 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       280 
258 
     | 
    
         
             
                    version: '5.0'
         
     | 
| 
       281 
259 
     | 
    
         
             
              type: :development
         
     | 
| 
       282 
260 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       283 
261 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       284 
262 
     | 
    
         
             
                requirements:
         
     | 
| 
       285 
     | 
    
         
            -
                - - " 
     | 
| 
      
 263 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       286 
264 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       287 
265 
     | 
    
         
             
                    version: '5.0'
         
     | 
| 
       288 
266 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
         @@ -299,20 +277,6 @@ dependencies: 
     | 
|
| 
       299 
277 
     | 
    
         
             
                - - ">="
         
     | 
| 
       300 
278 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       301 
279 
     | 
    
         
             
                    version: 1.3.0
         
     | 
| 
       302 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       303 
     | 
    
         
            -
              name: coffee-rails
         
     | 
| 
       304 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       305 
     | 
    
         
            -
                requirements:
         
     | 
| 
       306 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       307 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       308 
     | 
    
         
            -
                    version: '4.2'
         
     | 
| 
       309 
     | 
    
         
            -
              type: :development
         
     | 
| 
       310 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       311 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       312 
     | 
    
         
            -
                requirements:
         
     | 
| 
       313 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       314 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       315 
     | 
    
         
            -
                    version: '4.2'
         
     | 
| 
       316 
280 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       317 
281 
     | 
    
         
             
              name: turbolinks
         
     | 
| 
       318 
282 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -379,28 +343,70 @@ extensions: [] 
     | 
|
| 
       379 
343 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       380 
344 
     | 
    
         
             
            files:
         
     | 
| 
       381 
345 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
      
 346 
     | 
    
         
            +
            - ".ruby-version"
         
     | 
| 
       382 
347 
     | 
    
         
             
            - ".travis.yml"
         
     | 
| 
       383 
348 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       384 
     | 
    
         
            -
            - Gemfile.lock
         
     | 
| 
       385 
349 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       386 
350 
     | 
    
         
             
            - lib/generators/hyper/component_generator.rb
         
     | 
| 
      
 351 
     | 
    
         
            +
            - lib/generators/hyper/generator_base.rb
         
     | 
| 
       387 
352 
     | 
    
         
             
            - lib/generators/hyper/router_generator.rb
         
     | 
| 
       388 
353 
     | 
    
         
             
            - lib/generators/hyper/templates/component_template.rb
         
     | 
| 
      
 354 
     | 
    
         
            +
            - lib/generators/hyper/templates/hyper_component_template.rb
         
     | 
| 
       389 
355 
     | 
    
         
             
            - lib/generators/hyper/templates/router_template.rb
         
     | 
| 
       390 
356 
     | 
    
         
             
            - lib/generators/hyperstack/install_bootstrap_generator.rb
         
     | 
| 
       391 
357 
     | 
    
         
             
            - lib/generators/hyperstack/install_generator.rb
         
     | 
| 
       392 
358 
     | 
    
         
             
            - lib/generators/hyperstack/install_generator_base.rb
         
     | 
| 
       393 
359 
     | 
    
         
             
            - lib/generators/hyperstack/install_mui_generator.rb
         
     | 
| 
      
 360 
     | 
    
         
            +
            - lib/generators/install/hyperstack_generator.rb
         
     | 
| 
      
 361 
     | 
    
         
            +
            - lib/generators/install/hyperstack_generator_base.rb
         
     | 
| 
      
 362 
     | 
    
         
            +
            - lib/hyperstack/server_side_auto_require.rb
         
     | 
| 
       394 
363 
     | 
    
         
             
            - lib/hyperstack/version.rb
         
     | 
| 
       395 
364 
     | 
    
         
             
            - lib/rails-hyperstack.rb
         
     | 
| 
      
 365 
     | 
    
         
            +
            - lib/tasks/hyperstack/install.rake
         
     | 
| 
       396 
366 
     | 
    
         
             
            - rails-hyperstack.gemspec
         
     | 
| 
      
 367 
     | 
    
         
            +
            - spec/gems.rb
         
     | 
| 
       397 
368 
     | 
    
         
             
            - spec/rails_hyperstack_spec.rb
         
     | 
| 
      
 369 
     | 
    
         
            +
            - spec/server_side_sample.rb
         
     | 
| 
       398 
370 
     | 
    
         
             
            - spec/spec_helper.rb
         
     | 
| 
       399 
371 
     | 
    
         
             
            homepage: http://hyperstack.org
         
     | 
| 
       400 
372 
     | 
    
         
             
            licenses:
         
     | 
| 
       401 
373 
     | 
    
         
             
            - MIT
         
     | 
| 
       402 
374 
     | 
    
         
             
            metadata: {}
         
     | 
| 
       403 
     | 
    
         
            -
            post_install_message: 
         
     | 
| 
      
 375 
     | 
    
         
            +
            post_install_message: |2
         
     | 
| 
      
 376 
     | 
    
         
            +
             
     | 
| 
      
 377 
     | 
    
         
            +
              *******************************************************************************
         
     | 
| 
      
 378 
     | 
    
         
            +
             
     | 
| 
      
 379 
     | 
    
         
            +
              Welcome to Hyperstack!
         
     | 
| 
      
 380 
     | 
    
         
            +
             
     | 
| 
      
 381 
     | 
    
         
            +
              For a quick start simply add a component using one of the generators:
         
     | 
| 
      
 382 
     | 
    
         
            +
             
     | 
| 
      
 383 
     | 
    
         
            +
                >> bundle exec rails generate hyper:component CompName --add-route="/test/(*others)"
         
     | 
| 
      
 384 
     | 
    
         
            +
                   # Add a new component named CompName and route to it with /test/
         
     | 
| 
      
 385 
     | 
    
         
            +
             
     | 
| 
      
 386 
     | 
    
         
            +
                >> bundle exec rails generate hyper:router CompName --add-route="/test/(*others)"
         
     | 
| 
      
 387 
     | 
    
         
            +
                   # Add a top level router named CompName and route to it
         
     | 
| 
      
 388 
     | 
    
         
            +
             
     | 
| 
      
 389 
     | 
    
         
            +
              The generators will insure you have the minimal additions to your system for the
         
     | 
| 
      
 390 
     | 
    
         
            +
              new component to run.  And note: --add-route is optional.
         
     | 
| 
      
 391 
     | 
    
         
            +
             
     | 
| 
      
 392 
     | 
    
         
            +
              For a complete install run the hyperstack install task:
         
     | 
| 
      
 393 
     | 
    
         
            +
             
     | 
| 
      
 394 
     | 
    
         
            +
                >> bundle exec rails hyperstack:install
         
     | 
| 
      
 395 
     | 
    
         
            +
             
     | 
| 
      
 396 
     | 
    
         
            +
              This will add everything you need including the hotloader, webpack integration,
         
     | 
| 
      
 397 
     | 
    
         
            +
              hyper-model (active record model client synchronization) and a top level
         
     | 
| 
      
 398 
     | 
    
         
            +
              component to get you started.
         
     | 
| 
      
 399 
     | 
    
         
            +
             
     | 
| 
      
 400 
     | 
    
         
            +
              You can control how much of the stack gets installed as well:
         
     | 
| 
      
 401 
     | 
    
         
            +
             
     | 
| 
      
 402 
     | 
    
         
            +
                >> bundle exec rails hyperstack:install:webpack          # just add webpack
         
     | 
| 
      
 403 
     | 
    
         
            +
                >> bundle exec rails hyperstack:install:skip-webpack     # all but webpack
         
     | 
| 
      
 404 
     | 
    
         
            +
                >> bundle exec rails hyperstack:install:hyper-model      # just add hyper-model
         
     | 
| 
      
 405 
     | 
    
         
            +
                >> bundle exec rails hyperstack:install:skip-hyper-model # all but hyper-model
         
     | 
| 
      
 406 
     | 
    
         
            +
                >> bundle exec rails hyperstack:install:hotloader        # just add the hotloader
         
     | 
| 
      
 407 
     | 
    
         
            +
                >> bundle exec rails hyperstack:install:skip-hotloader   # skip the hotloader
         
     | 
| 
      
 408 
     | 
    
         
            +
             
     | 
| 
      
 409 
     | 
    
         
            +
              *******************************************************************************
         
     | 
| 
       404 
410 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       405 
411 
     | 
    
         
             
            require_paths:
         
     | 
| 
       406 
412 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -415,8 +421,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       415 
421 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       416 
422 
     | 
    
         
             
                  version: 1.3.1
         
     | 
| 
       417 
423 
     | 
    
         
             
            requirements: []
         
     | 
| 
       418 
     | 
    
         
            -
             
     | 
| 
       419 
     | 
    
         
            -
            rubygems_version: 2.7.8
         
     | 
| 
      
 424 
     | 
    
         
            +
            rubygems_version: 3.0.8
         
     | 
| 
       420 
425 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       421 
426 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       422 
427 
     | 
    
         
             
            summary: Hyperstack for Rails with generators
         
     |