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

Sign up to get free protection for your applications and to get access to all the features.
@@ -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