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
|