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.
@@ -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.2'
2
+ ROUTERVERSION = VERSION = '1.0.alpha1.7'
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,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', '~> 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.1.15'
30
- # https://github.com/discourse/mini_racer/issues/92
31
- spec.add_dependency 'libv8', '~> 6.3.0'
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
- # spec.add_development_dependency 'sqlite3'
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
- #spec.add_development_dependency 'rake', '~> 10.0'
47
- spec.add_development_dependency 'rspec'
48
- spec.add_development_dependency 'rubocop', '~> 0.51.0'
49
- spec.add_development_dependency 'sqlite3'
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 '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.2
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: 2018-11-16 00:00:00.000000000 Z
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.2
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.2
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.2
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.2
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.2
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.2
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.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,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: 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.16.0
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: 1.16.0
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.2
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.2
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.51.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.51.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: '0'
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: '0'
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
- rubyforge_project:
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