rails-hyperstack 1.0.alpha1.3 → 1.0.alpha1.8

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.
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Hyperstack
2
- ROUTERVERSION = VERSION = '1.0.alpha1.3'
2
+ ROUTERVERSION = VERSION = '1.0.alpha1.8'
3
3
  end
@@ -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
@@ -18,47 +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', '~> 0.9.4'
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.2.4'
30
- spec.add_dependency 'libv8', '~> 6.7.0'
31
- spec.add_dependency 'rails', '>= 4.0.0'
32
-
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'
33
67
 
34
- # spec.add_development_dependency 'sqlite3'
35
- # #spec.add_development_dependency 'chromedriver-helper'
36
- # spec.add_development_dependency 'geminabox', '>= 0.13.11'
37
-
38
-
39
- spec.add_development_dependency 'bundler', ['>= 1.17.3', '< 2.1']
68
+ spec.add_development_dependency 'bundler'
40
69
  spec.add_development_dependency 'chromedriver-helper'
41
70
  spec.add_development_dependency 'hyper-spec', Hyperstack::VERSION
42
71
  spec.add_development_dependency 'pry'
43
72
  spec.add_development_dependency 'puma'
44
73
  spec.add_development_dependency 'bootsnap'
45
- #spec.add_development_dependency 'rake', '~> 10.0'
46
- spec.add_development_dependency 'rspec'
47
- spec.add_development_dependency 'rubocop', '~> 0.51.0'
48
- spec.add_development_dependency 'sqlite3'
49
- 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'
50
78
  # Use Uglifier as compressor for JavaScript assets
51
79
  spec.add_development_dependency 'uglifier', '>= 1.3.0'
52
80
  # See https://github.com/rails/execjs#readme for more supported runtimes
53
81
  # gem 'mini_racer', platforms: :ruby
54
82
 
55
83
  # Use CoffeeScript for .coffee assets and views
56
- spec.add_development_dependency 'coffee-rails', '~> 4.2'
84
+ #spec.add_development_dependency 'coffee-rails', '~> 4.2'
57
85
  # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
58
86
  spec.add_development_dependency 'turbolinks', '~> 5'
59
87
  # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
60
88
  spec.add_development_dependency 'jbuilder', '~> 2.5'
61
89
  spec.add_development_dependency 'foreman'
62
90
  spec.add_development_dependency 'database_cleaner'
63
-
64
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 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
- describe 'rails-hyperstack' do
4
- it 'builds a working app', js: true do
5
- visit '/'
6
- expect(page).to have_content('App')
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
- it 'installs hyper-model and friends', js: true do
9
- visit '/'
10
- expect_promise do
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.to eq(0)
13
- evaluate_ruby do
14
- Sample.create(name: 'sample1', description: 'the first sample')
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('sample1')
19
- expect(Sample.first.description).to eq('the first sample')
20
- expect_evaluate_ruby do
21
- Sample.count
22
- end.to eq(1)
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
@@ -0,0 +1,5 @@
1
+ class Sample < ApplicationRecord
2
+ def self.super_secret_server_side_method
3
+ true
4
+ end
5
+ 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.3
4
+ version: 1.0.alpha1.8
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: 2019-01-17 00:00:00.000000000 Z
14
+ date: 2021-04-13 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.3
22
+ version: 1.0.alpha1.8
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.3
29
+ version: 1.0.alpha1.8
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.3
36
+ version: 1.0.alpha1.8
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.3
43
+ version: 1.0.alpha1.8
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.3
50
+ version: 1.0.alpha1.8
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.3
57
+ version: 1.0.alpha1.8
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.9.4
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.9.4
71
+ version: '0'
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: opal-browser
74
74
  requirement: !ruby/object:Gem::Requirement
@@ -103,68 +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.2.4
113
- type: :runtime
114
- prerelease: false
115
- version_requirements: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - "~>"
118
- - !ruby/object:Gem::Version
119
- version: 0.2.4
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.7.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.7.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: 4.0.0
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: 4.0.0
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: 1.17.3
155
- - - "<"
156
- - !ruby/object:Gem::Version
157
- version: '2.1'
132
+ version: '0'
158
133
  type: :development
159
134
  prerelease: false
160
135
  version_requirements: !ruby/object:Gem::Requirement
161
136
  requirements:
162
137
  - - ">="
163
138
  - !ruby/object:Gem::Version
164
- version: 1.17.3
165
- - - "<"
166
- - !ruby/object:Gem::Version
167
- version: '2.1'
139
+ version: '0'
168
140
  - !ruby/object:Gem::Dependency
169
141
  name: chromedriver-helper
170
142
  requirement: !ruby/object:Gem::Requirement
@@ -185,14 +157,14 @@ dependencies:
185
157
  requirements:
186
158
  - - '='
187
159
  - !ruby/object:Gem::Version
188
- version: 1.0.alpha1.3
160
+ version: 1.0.alpha1.8
189
161
  type: :development
190
162
  prerelease: false
191
163
  version_requirements: !ruby/object:Gem::Requirement
192
164
  requirements:
193
165
  - - '='
194
166
  - !ruby/object:Gem::Version
195
- version: 1.0.alpha1.3
167
+ version: 1.0.alpha1.8
196
168
  - !ruby/object:Gem::Dependency
197
169
  name: pry
198
170
  requirement: !ruby/object:Gem::Requirement
@@ -236,7 +208,7 @@ dependencies:
236
208
  - !ruby/object:Gem::Version
237
209
  version: '0'
238
210
  - !ruby/object:Gem::Dependency
239
- name: rspec
211
+ name: rspec-rails
240
212
  requirement: !ruby/object:Gem::Requirement
241
213
  requirements:
242
214
  - - ">="
@@ -253,42 +225,42 @@ dependencies:
253
225
  name: rubocop
254
226
  requirement: !ruby/object:Gem::Requirement
255
227
  requirements:
256
- - - "~>"
228
+ - - ">="
257
229
  - !ruby/object:Gem::Version
258
- version: 0.51.0
230
+ version: '0'
259
231
  type: :development
260
232
  prerelease: false
261
233
  version_requirements: !ruby/object:Gem::Requirement
262
234
  requirements:
263
- - - "~>"
235
+ - - ">="
264
236
  - !ruby/object:Gem::Version
265
- version: 0.51.0
237
+ version: '0'
266
238
  - !ruby/object:Gem::Dependency
267
239
  name: sqlite3
268
240
  requirement: !ruby/object:Gem::Requirement
269
241
  requirements:
270
- - - ">="
242
+ - - "~>"
271
243
  - !ruby/object:Gem::Version
272
- version: '0'
244
+ version: '1.4'
273
245
  type: :development
274
246
  prerelease: false
275
247
  version_requirements: !ruby/object:Gem::Requirement
276
248
  requirements:
277
- - - ">="
249
+ - - "~>"
278
250
  - !ruby/object:Gem::Version
279
- version: '0'
251
+ version: '1.4'
280
252
  - !ruby/object:Gem::Dependency
281
253
  name: sass-rails
282
254
  requirement: !ruby/object:Gem::Requirement
283
255
  requirements:
284
- - - "~>"
256
+ - - ">="
285
257
  - !ruby/object:Gem::Version
286
258
  version: '5.0'
287
259
  type: :development
288
260
  prerelease: false
289
261
  version_requirements: !ruby/object:Gem::Requirement
290
262
  requirements:
291
- - - "~>"
263
+ - - ">="
292
264
  - !ruby/object:Gem::Version
293
265
  version: '5.0'
294
266
  - !ruby/object:Gem::Dependency
@@ -305,20 +277,6 @@ dependencies:
305
277
  - - ">="
306
278
  - !ruby/object:Gem::Version
307
279
  version: 1.3.0
308
- - !ruby/object:Gem::Dependency
309
- name: coffee-rails
310
- requirement: !ruby/object:Gem::Requirement
311
- requirements:
312
- - - "~>"
313
- - !ruby/object:Gem::Version
314
- version: '4.2'
315
- type: :development
316
- prerelease: false
317
- version_requirements: !ruby/object:Gem::Requirement
318
- requirements:
319
- - - "~>"
320
- - !ruby/object:Gem::Version
321
- version: '4.2'
322
280
  - !ruby/object:Gem::Dependency
323
281
  name: turbolinks
324
282
  requirement: !ruby/object:Gem::Requirement
@@ -385,28 +343,70 @@ extensions: []
385
343
  extra_rdoc_files: []
386
344
  files:
387
345
  - ".gitignore"
346
+ - ".ruby-version"
388
347
  - ".travis.yml"
389
348
  - Gemfile
390
- - Gemfile.lock
391
349
  - Rakefile
392
350
  - lib/generators/hyper/component_generator.rb
351
+ - lib/generators/hyper/generator_base.rb
393
352
  - lib/generators/hyper/router_generator.rb
394
353
  - lib/generators/hyper/templates/component_template.rb
354
+ - lib/generators/hyper/templates/hyper_component_template.rb
395
355
  - lib/generators/hyper/templates/router_template.rb
396
356
  - lib/generators/hyperstack/install_bootstrap_generator.rb
397
357
  - lib/generators/hyperstack/install_generator.rb
398
358
  - lib/generators/hyperstack/install_generator_base.rb
399
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
400
363
  - lib/hyperstack/version.rb
401
364
  - lib/rails-hyperstack.rb
365
+ - lib/tasks/hyperstack/install.rake
402
366
  - rails-hyperstack.gemspec
367
+ - spec/gems.rb
403
368
  - spec/rails_hyperstack_spec.rb
369
+ - spec/server_side_sample.rb
404
370
  - spec/spec_helper.rb
405
371
  homepage: http://hyperstack.org
406
372
  licenses:
407
373
  - MIT
408
374
  metadata: {}
409
- 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
+ *******************************************************************************
410
410
  rdoc_options: []
411
411
  require_paths:
412
412
  - lib
@@ -421,7 +421,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
421
421
  - !ruby/object:Gem::Version
422
422
  version: 1.3.1
423
423
  requirements: []
424
- rubygems_version: 3.0.2
424
+ rubygems_version: 3.0.8
425
425
  signing_key:
426
426
  specification_version: 4
427
427
  summary: Hyperstack for Rails with generators