hyperloop 0.5.8 → 0.99.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +6 -0
- data/.travis.yml +26 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +204 -0
- data/README.md +36 -16
- data/Rakefile +15 -0
- data/hyperloop.gemspec +30 -27
- data/lib/generators/hyper/component_generator.rb +1 -1
- data/lib/generators/hyper/router_generator.rb +23 -19
- data/lib/generators/hyper/templates/component_template.rb +40 -41
- data/lib/generators/hyper/templates/router_template.rb +17 -44
- data/lib/generators/hyperloop/install_bootstrap_generator.rb +73 -0
- data/lib/generators/hyperloop/install_generator.rb +130 -9
- data/lib/generators/hyperloop/install_generator_base.rb +23 -0
- data/lib/generators/hyperloop/install_mui_generator.rb +52 -0
- data/lib/hyperloop.rb +15 -5
- data/lib/hyperloop/version.rb +2 -1
- metadata +85 -28
- data/hyperloop-logo-small-pink.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 261a4fa6f0ca608d4c3dff2f015c13f9e564ed5c7f7f18c1ac731ab00be76468
|
4
|
+
data.tar.gz: cbd6c1ae2ebc3c38bdb755c41e210c07d84f579b9add2d0fb985fed84f389897
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 415a80e1147a3e9309ec486ef583ebe9b2fc87f42c93fa5ffa6d4177281fdc476133d228a5a5d617842ab3644b8c507ac81067a427a84b53e5894b3cd1957bdb
|
7
|
+
data.tar.gz: 5f7418f133d9e1b75cad39761ee0290295611489c53f45537d9e3899034ad75908aa59a1bce6382a865111d1f9548544ddcbd7e3f83b847922635303cd8a408b
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
dist: trusty
|
2
|
+
language: ruby
|
3
|
+
cache: bundler
|
4
|
+
rvm:
|
5
|
+
- 2.4.4
|
6
|
+
- 2.5.1
|
7
|
+
- ruby-head
|
8
|
+
env:
|
9
|
+
- DRIVER=google-chrome TZ=Europe/Berlin
|
10
|
+
matrix:
|
11
|
+
fast_finish: true
|
12
|
+
allow_failures:
|
13
|
+
- rvm: ruby-head
|
14
|
+
before_install:
|
15
|
+
- if [[ "$DRIVER" == "google-chrome" ]]; then wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -; fi
|
16
|
+
- if [[ "$DRIVER" == "google-chrome" ]]; then echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list; fi
|
17
|
+
- if [[ "$DRIVER" == "google-chrome" ]]; then sudo apt-get update -qq && sudo apt-get install -qq -y google-chrome-stable; fi
|
18
|
+
- gem install bundler
|
19
|
+
before_script:
|
20
|
+
- bundle install --jobs=3 --retry=3
|
21
|
+
- if [[ "$DRIVER" == "google-chrome" ]]; then bundle exec chromedriver-update; fi
|
22
|
+
- if [[ "$DRIVER" == "google-chrome" ]]; then ls -lR ~/.chromedriver-helper/; fi
|
23
|
+
- if [[ "$DRIVER" == "google-chrome" ]]; then bundle exec chromedriver --version; fi
|
24
|
+
- if [[ "$DRIVER" == "google-chrome" ]]; then google-chrome --version; fi
|
25
|
+
- if [[ "$DRIVER" == "google-chrome" ]]; then which google-chrome; fi
|
26
|
+
script: echo "Needs tests!!"
|
data/Gemfile
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
gem 'hyperloop-config', path: '../hyperloop-config'
|
3
|
+
gem 'hyper-store', path: '../hyper-store'
|
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
|
+
gemspec
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,204 @@
|
|
1
|
+
GIT
|
2
|
+
remote: https://github.com/opal/opal-jquery.git
|
3
|
+
revision: d15ca70f53cb323245c54842587b874945e1083e
|
4
|
+
branch: master
|
5
|
+
specs:
|
6
|
+
opal-jquery (0.4.2)
|
7
|
+
opal (>= 0.10.0, < 0.12.0)
|
8
|
+
|
9
|
+
PATH
|
10
|
+
remote: .
|
11
|
+
specs:
|
12
|
+
hyperloop (1.0.0.lap28)
|
13
|
+
hyperloop-config (= 1.0.0.lap28)
|
14
|
+
libv8 (~> 6.3.0)
|
15
|
+
mini_racer (~> 0.1.15)
|
16
|
+
opal-browser (~> 0.2.0)
|
17
|
+
rails (>= 4.0.0)
|
18
|
+
react-rails (>= 2.4.0, < 2.5.0)
|
19
|
+
|
20
|
+
GEM
|
21
|
+
remote: https://rubygems.org/
|
22
|
+
specs:
|
23
|
+
actioncable (5.2.1)
|
24
|
+
actionpack (= 5.2.1)
|
25
|
+
nio4r (~> 2.0)
|
26
|
+
websocket-driver (>= 0.6.1)
|
27
|
+
actionmailer (5.2.1)
|
28
|
+
actionpack (= 5.2.1)
|
29
|
+
actionview (= 5.2.1)
|
30
|
+
activejob (= 5.2.1)
|
31
|
+
mail (~> 2.5, >= 2.5.4)
|
32
|
+
rails-dom-testing (~> 2.0)
|
33
|
+
actionpack (5.2.1)
|
34
|
+
actionview (= 5.2.1)
|
35
|
+
activesupport (= 5.2.1)
|
36
|
+
rack (~> 2.0)
|
37
|
+
rack-test (>= 0.6.3)
|
38
|
+
rails-dom-testing (~> 2.0)
|
39
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
40
|
+
actionview (5.2.1)
|
41
|
+
activesupport (= 5.2.1)
|
42
|
+
builder (~> 3.1)
|
43
|
+
erubi (~> 1.4)
|
44
|
+
rails-dom-testing (~> 2.0)
|
45
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
46
|
+
activejob (5.2.1)
|
47
|
+
activesupport (= 5.2.1)
|
48
|
+
globalid (>= 0.3.6)
|
49
|
+
activemodel (5.2.1)
|
50
|
+
activesupport (= 5.2.1)
|
51
|
+
activerecord (5.2.1)
|
52
|
+
activemodel (= 5.2.1)
|
53
|
+
activesupport (= 5.2.1)
|
54
|
+
arel (>= 9.0)
|
55
|
+
activestorage (5.2.1)
|
56
|
+
actionpack (= 5.2.1)
|
57
|
+
activerecord (= 5.2.1)
|
58
|
+
marcel (~> 0.3.1)
|
59
|
+
activesupport (5.2.1)
|
60
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
61
|
+
i18n (>= 0.7, < 2)
|
62
|
+
minitest (~> 5.1)
|
63
|
+
tzinfo (~> 1.1)
|
64
|
+
archive-zip (0.11.0)
|
65
|
+
io-like (~> 0.3.0)
|
66
|
+
arel (9.0.0)
|
67
|
+
ast (2.4.0)
|
68
|
+
babel-source (5.8.35)
|
69
|
+
babel-transpiler (0.7.0)
|
70
|
+
babel-source (>= 4.0, < 6)
|
71
|
+
execjs (~> 2.0)
|
72
|
+
builder (3.2.3)
|
73
|
+
chromedriver-helper (1.2.0)
|
74
|
+
archive-zip (~> 0.10)
|
75
|
+
nokogiri (~> 1.8)
|
76
|
+
concurrent-ruby (1.0.5)
|
77
|
+
connection_pool (2.2.2)
|
78
|
+
crass (1.0.4)
|
79
|
+
erubi (1.7.1)
|
80
|
+
execjs (2.7.0)
|
81
|
+
faraday (0.15.2)
|
82
|
+
multipart-post (>= 1.2, < 3)
|
83
|
+
geminabox (1.1.0)
|
84
|
+
builder
|
85
|
+
faraday
|
86
|
+
httpclient (>= 2.2.7)
|
87
|
+
nesty
|
88
|
+
reentrant_flock
|
89
|
+
sinatra (>= 1.2.7)
|
90
|
+
globalid (0.4.1)
|
91
|
+
activesupport (>= 4.2.0)
|
92
|
+
hike (1.2.3)
|
93
|
+
httpclient (2.8.3)
|
94
|
+
hyperloop-config (1.0.0.lap28)
|
95
|
+
opal (>= 0.11.0, < 0.12.0)
|
96
|
+
opal-browser (~> 0.2.0)
|
97
|
+
uglifier
|
98
|
+
i18n (1.1.0)
|
99
|
+
concurrent-ruby (~> 1.0)
|
100
|
+
io-like (0.3.0)
|
101
|
+
libv8 (6.3.292.48.1)
|
102
|
+
loofah (2.2.2)
|
103
|
+
crass (~> 1.0.2)
|
104
|
+
nokogiri (>= 1.5.9)
|
105
|
+
mail (2.7.0)
|
106
|
+
mini_mime (>= 0.1.1)
|
107
|
+
marcel (0.3.2)
|
108
|
+
mimemagic (~> 0.3.2)
|
109
|
+
method_source (0.9.0)
|
110
|
+
mimemagic (0.3.2)
|
111
|
+
mini_mime (1.0.1)
|
112
|
+
mini_portile2 (2.3.0)
|
113
|
+
mini_racer (0.1.15)
|
114
|
+
libv8 (~> 6.3)
|
115
|
+
minitest (5.11.3)
|
116
|
+
multipart-post (2.0.0)
|
117
|
+
mustermann (1.0.2)
|
118
|
+
nesty (1.0.2)
|
119
|
+
nio4r (2.3.1)
|
120
|
+
nokogiri (1.8.4)
|
121
|
+
mini_portile2 (~> 2.3.0)
|
122
|
+
opal (0.11.1)
|
123
|
+
ast (>= 2.3.0)
|
124
|
+
hike (~> 1.2)
|
125
|
+
parser (= 2.3.3.1)
|
126
|
+
sourcemap (~> 0.1.0)
|
127
|
+
opal-browser (0.2.0)
|
128
|
+
opal
|
129
|
+
paggio
|
130
|
+
paggio (0.2.6)
|
131
|
+
parser (2.3.3.1)
|
132
|
+
ast (~> 2.2)
|
133
|
+
rack (2.0.5)
|
134
|
+
rack-protection (2.0.3)
|
135
|
+
rack
|
136
|
+
rack-test (1.1.0)
|
137
|
+
rack (>= 1.0, < 3)
|
138
|
+
rails (5.2.1)
|
139
|
+
actioncable (= 5.2.1)
|
140
|
+
actionmailer (= 5.2.1)
|
141
|
+
actionpack (= 5.2.1)
|
142
|
+
actionview (= 5.2.1)
|
143
|
+
activejob (= 5.2.1)
|
144
|
+
activemodel (= 5.2.1)
|
145
|
+
activerecord (= 5.2.1)
|
146
|
+
activestorage (= 5.2.1)
|
147
|
+
activesupport (= 5.2.1)
|
148
|
+
bundler (>= 1.3.0)
|
149
|
+
railties (= 5.2.1)
|
150
|
+
sprockets-rails (>= 2.0.0)
|
151
|
+
rails-dom-testing (2.0.3)
|
152
|
+
activesupport (>= 4.2.0)
|
153
|
+
nokogiri (>= 1.6)
|
154
|
+
rails-html-sanitizer (1.0.4)
|
155
|
+
loofah (~> 2.2, >= 2.2.2)
|
156
|
+
railties (5.2.1)
|
157
|
+
actionpack (= 5.2.1)
|
158
|
+
activesupport (= 5.2.1)
|
159
|
+
method_source
|
160
|
+
rake (>= 0.8.7)
|
161
|
+
thor (>= 0.19.0, < 2.0)
|
162
|
+
rake (12.3.1)
|
163
|
+
react-rails (2.4.7)
|
164
|
+
babel-transpiler (>= 0.7.0)
|
165
|
+
connection_pool
|
166
|
+
execjs
|
167
|
+
railties (>= 3.2)
|
168
|
+
tilt
|
169
|
+
reentrant_flock (0.1.1)
|
170
|
+
sinatra (2.0.3)
|
171
|
+
mustermann (~> 1.0)
|
172
|
+
rack (~> 2.0)
|
173
|
+
rack-protection (= 2.0.3)
|
174
|
+
tilt (~> 2.0)
|
175
|
+
sourcemap (0.1.1)
|
176
|
+
sprockets (3.7.2)
|
177
|
+
concurrent-ruby (~> 1.0)
|
178
|
+
rack (> 1, < 3)
|
179
|
+
sprockets-rails (3.2.1)
|
180
|
+
actionpack (>= 4.0)
|
181
|
+
activesupport (>= 4.0)
|
182
|
+
sprockets (>= 3.0.0)
|
183
|
+
thor (0.20.0)
|
184
|
+
thread_safe (0.3.6)
|
185
|
+
tilt (2.0.8)
|
186
|
+
tzinfo (1.2.5)
|
187
|
+
thread_safe (~> 0.1)
|
188
|
+
uglifier (4.1.18)
|
189
|
+
execjs (>= 0.3.0, < 3)
|
190
|
+
websocket-driver (0.7.0)
|
191
|
+
websocket-extensions (>= 0.1.0)
|
192
|
+
websocket-extensions (0.1.3)
|
193
|
+
|
194
|
+
PLATFORMS
|
195
|
+
ruby
|
196
|
+
|
197
|
+
DEPENDENCIES
|
198
|
+
chromedriver-helper
|
199
|
+
geminabox (>= 0.13.11)
|
200
|
+
hyperloop!
|
201
|
+
opal-jquery!
|
202
|
+
|
203
|
+
BUNDLED WITH
|
204
|
+
1.16.1
|
data/README.md
CHANGED
@@ -1,33 +1,52 @@
|
|
1
|
+
Install instructions for the latest lap (lap is hyperloop designation for release candidate):
|
2
|
+
```
|
3
|
+
gem "opal-jquery", git: "https://github.com/opal/opal-jquery.git", branch: "master"
|
4
|
+
|
5
|
+
gem 'hyperloop', '~> 1.0.0.lap0'
|
6
|
+
gem 'hyper-spec', '~> 1.0.0.lap0'
|
7
|
+
```
|
8
|
+
|
9
|
+
### testing ruby-hyperloop gems
|
10
|
+
See, section **Testing Ruby-Hyperloop**
|
11
|
+
[https://github.com/janbiedermann/dciy](https://github.com/janbiedermann/dciy)
|
12
|
+
|
13
|
+
|
14
|
+
<div class="githubhyperloopheader">
|
15
|
+
|
1
16
|
<p align="center">
|
2
|
-
|
3
|
-
|
4
|
-
|
17
|
+
|
18
|
+
<a href="http://ruby-hyperloop.io/" alt="Hyperloop" title="Hyperloop">
|
19
|
+
<img width="350px" src="http://ruby-hyperloop.io/images/hyperloop-github-logo.png">
|
20
|
+
</a>
|
21
|
+
|
5
22
|
</p>
|
6
23
|
|
7
|
-
<
|
8
|
-
Hyperloop
|
9
|
-
</h1>
|
24
|
+
<h2 align="center">The Complete Isomorphic Ruby Framework</h2>
|
10
25
|
|
11
|
-
<
|
26
|
+
<br>
|
12
27
|
|
13
|
-
<
|
28
|
+
<a href="http://ruby-hyperloop.io/" alt="Hyperloop" title="Hyperloop">
|
29
|
+
<img src="http://ruby-hyperloop.io/images/githubhyperloopbadge.png">
|
30
|
+
</a>
|
14
31
|
|
32
|
+
<a href="https://gitter.im/ruby-hyperloop/chat" alt="Gitter chat" title="Gitter chat">
|
33
|
+
<img src="http://ruby-hyperloop.io/images/githubgitterbadge.png">
|
34
|
+
</a>
|
15
35
|
|
16
|
-
|
17
|
-
Build interactive Web applications quickly. **Hyperloop** encourages rapid development with clean, pragmatic design. With developer productivity as our highest goal, **Hyperloop** takes care of much of the hassle of Web development, so you can focus on innovation and delivering end-user value.
|
36
|
+
</div>
|
18
37
|
|
19
|
-
|
20
|
-
One language. One model. One set of tests. The same business logic and domain models running on the clients and the server. Hyperloop is fully integrated with Rails and also gives you unfettered access to the complete universe of JavaScript libraries (including React) from within your Ruby code. Hyperloop lets you build beautiful interactive user interfaces in Ruby.
|
38
|
+
## Hyperloop GEM
|
21
39
|
|
22
|
-
|
23
|
-
Everything has a place in our architecture. **C**omponents deliver interactive user experiences, **O**perations encapsulate business logic, **M**odels magically synchronize data between clients and servers, **P**olicies govern authorization and **S**tores hold local state.
|
40
|
+
Build interactive Web applications quickly. Hyperloop encourages rapid development with clean, pragmatic design. With developer productivity as our highest goal, Hyperloop takes care of much of the hassle of Web development, so you can focus on innovation and delivering end-user value.
|
24
41
|
|
25
|
-
|
42
|
+
One language. One model. One set of tests. The same business logic and domain models running on the clients and the server. Hyperloop is fully integrated with Rails and also gives you unfettered access to the complete universe of JavaScript libraries (including React) from within your Ruby code. Hyperloop lets you build beautiful interactive user interfaces in Ruby.
|
43
|
+
|
44
|
+
Everything has a place in our architecture. Components deliver interactive user experiences, Operations encapsulate business logic, Models magically synchronize data between clients and servers, Policies govern authorization and Stores hold local state.
|
26
45
|
|
27
46
|
## Getting Started
|
28
47
|
|
29
48
|
1. Update your Gemfile:
|
30
|
-
|
49
|
+
|
31
50
|
```ruby
|
32
51
|
#Gemfile
|
33
52
|
|
@@ -52,3 +71,4 @@ gem 'hyperloop'
|
|
52
71
|
## License
|
53
72
|
|
54
73
|
Hyperloop is released under the [MIT License](http://www.opensource.org/licenses/MIT).
|
74
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require './tasks/gems'
|
2
|
+
require './tasks/git'
|
3
|
+
require './tasks/version'
|
4
|
+
|
5
|
+
HYPERLOOP_REPOS =%w[hyper-component hyper-console hyper-mesh hyper-model hyper-operation hyper-react
|
6
|
+
hyper-router hyper-spec hyper-store hyperloop hyperloop-config]
|
7
|
+
|
8
|
+
task :default do
|
9
|
+
# show usage
|
10
|
+
end
|
11
|
+
|
12
|
+
namespace :spec do
|
13
|
+
task :prepare do
|
14
|
+
end
|
15
|
+
end
|
data/hyperloop.gemspec
CHANGED
@@ -3,32 +3,35 @@ lib = File.expand_path('../lib', __FILE__)
|
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require 'hyperloop/version'
|
5
5
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
|
20
|
-
|
21
|
-
# 'lib/generators/hyperloop/templates/router_template.rb']
|
22
|
-
s.license = 'MIT'
|
23
|
-
s.require_paths = ["lib"]
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'hyperloop'
|
8
|
+
spec.version = Hyperloop::VERSION
|
9
|
+
spec.summary = 'Hyperloop stack and generators for Rails'
|
10
|
+
spec.description = 'This gem provide the full hyperloop stack for rails plus generators for Hyperloop elements'
|
11
|
+
spec.authors = ['Loic Boutet', 'Adam George', 'Mitch VanDuyn', 'Jan Biedermann']
|
12
|
+
spec.email = ['loic@boutet.com', 'jan@kursator.com']
|
13
|
+
spec.homepage = 'http://ruby-hyperloop.org'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
# spec.metadata = {
|
16
|
+
# "homepage_uri" => 'http://ruby-hyperloop.org',
|
17
|
+
# "source_code_uri" => 'https://github.com/ruby-hyperloop/hyper-component'
|
18
|
+
# }
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(tasks)/}) }
|
20
|
+
spec.require_paths = ['lib']
|
24
21
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
22
|
+
# temporarily moved to installer until opal-jquery version issue is fixed
|
23
|
+
spec.add_dependency 'hyper-model', Hyperloop::VERSION
|
24
|
+
spec.add_dependency 'hyper-router', Hyperloop::ROUTERVERSION
|
25
|
+
spec.add_dependency 'opal-rails', '~> 0.9.4'
|
26
|
+
# spec.add_dependency 'opal-jquery'
|
27
|
+
|
28
|
+
#spec.add_dependency 'hyperloop-config', Hyperloop::VERSION
|
29
|
+
spec.add_dependency 'opal-browser', '~> 0.2.0'
|
30
|
+
spec.add_dependency 'react-rails', '>= 2.4.0', '< 2.5.0'
|
31
|
+
spec.add_dependency 'mini_racer', '~> 0.1.15'
|
32
|
+
# https://github.com/discourse/mini_racer/issues/92
|
33
|
+
spec.add_dependency 'libv8', '~> 6.3.0'
|
34
|
+
spec.add_dependency 'rails', '>= 4.0.0'
|
35
|
+
spec.add_development_dependency 'chromedriver-helper'
|
36
|
+
spec.add_development_dependency 'geminabox', '>= 0.13.11'
|
34
37
|
end
|
@@ -9,7 +9,7 @@ module Hyper
|
|
9
9
|
component_array = component.split('::')
|
10
10
|
@modules = component_array[0..-2]
|
11
11
|
@file_name = component_array.last
|
12
|
-
@
|
12
|
+
@indent = 0
|
13
13
|
template 'component_template.rb',
|
14
14
|
File.join('app/hyperloop/components',
|
15
15
|
@modules.map(&:downcase).join('/'),
|
@@ -1,19 +1,23 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
#
|
17
|
-
|
18
|
-
|
19
|
-
|
1
|
+
require 'rails/generators'
|
2
|
+
module Hyper
|
3
|
+
class Router < Rails::Generators::Base
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
5
|
+
|
6
|
+
argument :component, type: :string
|
7
|
+
class_option :path, type: :string, default: '/(*other)'
|
8
|
+
def create_component_file
|
9
|
+
component_array = component.split('::')
|
10
|
+
@modules = component_array[0..-2]
|
11
|
+
@file_name = component_array.last
|
12
|
+
@indent = 0
|
13
|
+
template 'router_template.rb',
|
14
|
+
File.join('app/hyperloop/components',
|
15
|
+
@modules.map(&:downcase).join('/'),
|
16
|
+
"#{@file_name.underscore}.rb")
|
17
|
+
end
|
18
|
+
|
19
|
+
def add_route
|
20
|
+
route "get '#{options['path']}', to: 'hyperloop##{@file_name.underscore}'"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,41 +1,40 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
<%- end %>
|
1
|
+
<%- @modules.each do |module_name| %><%= " "* @indent %>module <%= module_name.camelize %><%- @indent += 1 %>
|
2
|
+
<%- end %><%=" "* @indent %>class <%= @file_name %> < Hyperloop::Component
|
3
|
+
|
4
|
+
<%=" "* @indent %> # param :my_param
|
5
|
+
<%=" "* @indent %> # param param_with_default: "default value"
|
6
|
+
<%=" "* @indent %> # param :param_with_default2, default: "default value" # alternative syntax
|
7
|
+
<%=" "* @indent %> # param :param_with_type, type: Hash
|
8
|
+
<%=" "* @indent %> # param :array_of_hashes, type: [Hash]
|
9
|
+
<%=" "* @indent %> # collect_other_params_as :attributes # collects all other params into a hash
|
10
|
+
|
11
|
+
<%=" "* @indent %> # The following are the most common lifecycle call backs,
|
12
|
+
<%=" "* @indent %> # the following are the most common lifecycle call backs# delete any that you are not using.
|
13
|
+
<%=" "* @indent %> # call backs may also reference an instance method i.e. before_mount :my_method
|
14
|
+
|
15
|
+
<%=" "* @indent %> before_mount do
|
16
|
+
<%=" "* @indent %> # any initialization particularly of state variables goes here.
|
17
|
+
<%=" "* @indent %> # this will execute on server (prerendering) and client.
|
18
|
+
<%=" "* @indent %> end
|
19
|
+
|
20
|
+
<%=" "* @indent %> after_mount do
|
21
|
+
<%=" "* @indent %> # any client only post rendering initialization goes here.
|
22
|
+
<%=" "* @indent %> # i.e. start timers, HTTP requests, and low level jquery operations etc.
|
23
|
+
<%=" "* @indent %> end
|
24
|
+
|
25
|
+
<%=" "* @indent %> before_update do
|
26
|
+
<%=" "* @indent %> # called whenever a component will be re-rerendered
|
27
|
+
<%=" "* @indent %> end
|
28
|
+
|
29
|
+
<%=" "* @indent %> before_unmount do
|
30
|
+
<%=" "* @indent %> # cleanup any thing (i.e. timers) before component is destroyed
|
31
|
+
<%=" "* @indent %> end
|
32
|
+
|
33
|
+
<%=" "* @indent %> render do
|
34
|
+
<%=" "* @indent %> DIV do
|
35
|
+
<%=" "* @indent %> "<%= (@modules+[@file_name]).join('::') %>"
|
36
|
+
<%=" "* @indent %> end
|
37
|
+
<%=" "* @indent %> end
|
38
|
+
<%=" "* @indent %>end
|
39
|
+
<%- @modules.each do %><%- @indent -= 1 %><%=" "* @indent %>end
|
40
|
+
<%- end %>
|
@@ -1,44 +1,17 @@
|
|
1
|
-
module
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<%=" "* @indet %> # the redirect method will transition any incoming matching routes to a new route
|
19
|
-
<%=" "* @indet %> redirect(from: "/", to: :subroute1)
|
20
|
-
<%=" "* @indet %> # the not_found method indicates which component to load if no route matches:
|
21
|
-
<%=" "* @indet %> not_found(handler: NotFound)
|
22
|
-
<%=" "* @indet %>end
|
23
|
-
|
24
|
-
<%=" "* @indet %>router_param :user_id, as: :user do |id|
|
25
|
-
<%=" "* @indet %> # Translate incoming route params to internal values.
|
26
|
-
<%=" "* @indet %> # In this case we will refer to the translated user_id as user.
|
27
|
-
<%=" "* @indet %> # The block param (id) will have the value of the param.
|
28
|
-
<%=" "* @indet %> # This is useful for looking up ActiveRecord models by ids, etc.
|
29
|
-
<%=" "* @indet %>end
|
30
|
-
|
31
|
-
<%=" "* @indet %>def show # note that the top level router has a show method NOT render
|
32
|
-
<%=" "* @indet %> DIV do
|
33
|
-
<%=" "* @indet %> # content to display on every route
|
34
|
-
<%=" "* @indet %> # link generates an anchor tag.
|
35
|
-
<%=" "* @indet %> link(to: :subroute3, params: {user_id: 12}, class: "link-class") { "Click to go to subroute3" }
|
36
|
-
<%=" "* @indet %> # within an event handler use transition_to to move to a new route
|
37
|
-
<%=" "* @indet %> # the route_handler method will display the current route, it can be called in the
|
38
|
-
<%=" "* @indet %> # router, or in some child component.
|
39
|
-
<%=" "* @indet %> route_handler
|
40
|
-
<%=" "* @indet %> end
|
41
|
-
<%=" "* @indet %>end
|
42
|
-
<%=" "* @indet %>end
|
43
|
-
<%- @modules.each do %><%- @indet -= 1 %><%=" "* @indet %>end
|
44
|
-
<%- end %>end
|
1
|
+
<%- @modules.each do |module_name| %><%= " "* @indent %>module <%= module_name.camelize %><%- @indent += 1 %>
|
2
|
+
<%- end %><%=" "* @indent %>class <%= @file_name %> < Hyperloop::Router
|
3
|
+
<%=" "* @indent %>
|
4
|
+
<%=" "* @indent %> route do
|
5
|
+
<%=" "* @indent %> DIV do
|
6
|
+
<%=" "* @indent %> "<%= (@modules+[@file_name]).join('::') %>"
|
7
|
+
<%=" "* @indent %> # define routes using the Route psuedo component. Examples:
|
8
|
+
<%=" "* @indent %> # Route('/foo', mounts: Foo) : match the path beginning with /foo and mount component Foo here
|
9
|
+
<%=" "* @indent %> # Route('/foo') { Foo(...) } : display the contents of the block
|
10
|
+
<%=" "* @indent %> # Route('/', exact: true, mounts: Home) : match the exact path / and mount the Home component
|
11
|
+
<%=" "* @indent %> # Route('/user/:id/name', mounts: UserName) : path segments beginning with a colon will be captured in the match param
|
12
|
+
<%=" "* @indent %> # see the hyper-router gem documentation for more details
|
13
|
+
<%=" "* @indent %> end
|
14
|
+
<%=" "* @indent %> end
|
15
|
+
<%=" "* @indent %>end
|
16
|
+
<%- @modules.each do %><%- @indent -= 1 %><%=" "* @indent %>end
|
17
|
+
<%- end %>
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require_relative 'install_generator_base'
|
2
|
+
module Hyperloop
|
3
|
+
class InstallBootstrapGenerator < Rails::Generators::Base
|
4
|
+
|
5
|
+
desc "Adds the bits you need for the Bootstrap 3.0 framework"
|
6
|
+
|
7
|
+
class_option 'no-build', type: :boolean
|
8
|
+
|
9
|
+
def insure_yarn_loaded
|
10
|
+
begin
|
11
|
+
yarn_version = `yarn --version`
|
12
|
+
raise Errno::ENOENT if yarn_version.blank?
|
13
|
+
rescue Errno::ENOENT
|
14
|
+
raise Thor::Error.new("please insure the yarn command is available if using webpacker")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_to_manifests
|
19
|
+
add_to_manifest 'client_and_server.js' do
|
20
|
+
"BS = require('react-bootstrap');\n"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def add_style_sheet_pack_tag
|
25
|
+
inject_into_file 'app/views/layouts/application.html.erb', after: /stylesheet_link_tag.*$/ do
|
26
|
+
<<-JAVASCRIPT
|
27
|
+
|
28
|
+
<!-- Latest compiled and minified CSS -->
|
29
|
+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
30
|
+
|
31
|
+
<!-- Optional theme -->
|
32
|
+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
|
33
|
+
JAVASCRIPT
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def run_yarn
|
38
|
+
yarn 'react-bootstrap'
|
39
|
+
yarn 'bootstrap@3'
|
40
|
+
end
|
41
|
+
|
42
|
+
def build_webpack
|
43
|
+
system('bin/webpack') unless options['no-build']
|
44
|
+
end
|
45
|
+
|
46
|
+
def add_sample_component
|
47
|
+
create_file 'app/hyperloop/components/bs_sampler.rb' do
|
48
|
+
<<-RUBY
|
49
|
+
class BsSampler < Hyperloop::Component
|
50
|
+
render(DIV) do
|
51
|
+
BS::Grid() do
|
52
|
+
BS::Row(class: "show-grid") do
|
53
|
+
BS::Col(xs: 12, md: 8) do
|
54
|
+
CODE { "BS::Col(xs: 12, md: 8)" }
|
55
|
+
end
|
56
|
+
BS::Col(xs: 6, md: 4) do
|
57
|
+
CODE { "BS::Col(xs: 6, md: 4)" }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
BS::Row() do
|
61
|
+
BS::Alert(bsStyle: "warning") do
|
62
|
+
STRONG { "Holy guacamole!" }
|
63
|
+
SPAN { " Best check yo self, you're not looking too good." }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
RUBY
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -1,21 +1,29 @@
|
|
1
|
-
|
1
|
+
require_relative 'install_generator_base'
|
2
2
|
module Hyperloop
|
3
3
|
class InstallGenerator < Rails::Generators::Base
|
4
4
|
|
5
|
+
class_option 'skip-webpack', type: :boolean
|
6
|
+
class_option 'skip-hot-reloader', type: :boolean
|
7
|
+
class_option 'add-framework', type: :string
|
8
|
+
|
9
|
+
def insure_yarn_loaded
|
10
|
+
return if skip_webpack?
|
11
|
+
begin
|
12
|
+
yarn_version = `yarn --version`
|
13
|
+
raise Errno::ENOENT if yarn_version.blank?
|
14
|
+
rescue Errno::ENOENT
|
15
|
+
raise Thor::Error.new("please insure the yarn command is available if using webpacker")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
5
19
|
def inject_react_file_js
|
6
20
|
append_file 'app/assets/javascripts/application.js' do
|
7
21
|
<<-'JS'
|
8
|
-
//= require jquery
|
9
|
-
//= require jquery_ujs
|
10
22
|
//= require hyperloop-loader
|
11
23
|
JS
|
12
24
|
end
|
13
25
|
end
|
14
26
|
|
15
|
-
def inject_engine_to_routes
|
16
|
-
route 'mount Hyperloop::Engine => \'/hyperloop\''
|
17
|
-
end
|
18
|
-
|
19
27
|
def create_hyperloop_directories
|
20
28
|
create_file 'app/hyperloop/components/.keep', ''
|
21
29
|
create_file 'app/hyperloop/operations/.keep', ''
|
@@ -23,6 +31,18 @@ module Hyperloop
|
|
23
31
|
create_file 'app/hyperloop/models/.keep', ''
|
24
32
|
end
|
25
33
|
|
34
|
+
def move_and_update_application_record
|
35
|
+
unless File.exists? 'app/hyperloop/models/application_record.rb'
|
36
|
+
`mv app/models/application_record.rb app/hyperloop/models/application_record.rb`
|
37
|
+
create_file 'app/models/application_record.rb', <<-RUBY
|
38
|
+
# app/models/application_record.rb
|
39
|
+
# the presence of this file prevents rails migrations from recreating application_record.rb see https://github.com/rails/rails/issues/29407
|
40
|
+
|
41
|
+
require 'models/application_record.rb'
|
42
|
+
RUBY
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
26
46
|
def create_policies_directory
|
27
47
|
create_file 'app/policies/application_policy.rb', <<-RUBY
|
28
48
|
# app/policies/application_policy
|
@@ -38,23 +58,124 @@ class Hyperloop::ApplicationPolicy
|
|
38
58
|
regulate_all_broadcasts { |policy| policy.send_all }
|
39
59
|
# Allow all changes to public models
|
40
60
|
allow_change(to: :all, on: [:create, :update, :destroy]) { true }
|
61
|
+
# allow remote access to all scopes - i.e. you can count or get a list of ids
|
62
|
+
# for any scope or relationship
|
63
|
+
ApplicationRecord.regulate_scope :all
|
41
64
|
end unless Rails.env.production?
|
65
|
+
RUBY
|
66
|
+
end
|
67
|
+
|
68
|
+
def add_router
|
69
|
+
generate "hyper:router", "App"
|
70
|
+
end
|
71
|
+
|
72
|
+
def add_webpacker_manifests
|
73
|
+
return if skip_webpack?
|
74
|
+
create_file 'app/javascript/packs/client_and_server.js', <<-JAVASCRIPT
|
75
|
+
//app/javascript/packs/client_and_server.js
|
76
|
+
// these packages will be loaded both during prerendering and on the client
|
77
|
+
React = require('react'); // react-js library
|
78
|
+
History = require('history'); // react-router history library
|
79
|
+
ReactRouter = require('react-router'); // react-router js library
|
80
|
+
ReactRouterDOM = require('react-router-dom'); // react-router DOM interface
|
81
|
+
ReactRailsUJS = require('react_ujs'); // interface to react-rails
|
82
|
+
// to add additional NPM packages call run yarn package-name@version
|
83
|
+
// then add the require here.
|
84
|
+
JAVASCRIPT
|
85
|
+
create_file 'app/javascript/packs/client_only.js', <<-JAVASCRIPT
|
86
|
+
//app/javascript/packs/client_only.js
|
87
|
+
// add any requires for packages that will run client side only
|
88
|
+
ReactDOM = require('react-dom'); // react-js client side code
|
89
|
+
jQuery = require('jquery');
|
90
|
+
// to add additional NPM packages call run yarn package-name@version
|
91
|
+
// then add the require here.
|
92
|
+
JAVASCRIPT
|
93
|
+
append_file 'config/initializers/assets.rb' do
|
94
|
+
<<-RUBY
|
95
|
+
Rails.application.config.assets.paths << Rails.root.join('public', 'packs').to_s
|
42
96
|
RUBY
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def add_webpacks
|
101
|
+
return if skip_webpack?
|
102
|
+
yarn 'react', '16'
|
103
|
+
yarn 'react-dom', '16'
|
104
|
+
yarn 'react-router', '4.2'
|
105
|
+
yarn 'react-router-dom', '4.2'
|
106
|
+
yarn 'history', '4.2'
|
107
|
+
yarn 'react_ujs'
|
108
|
+
yarn 'jquery'
|
43
109
|
end
|
44
110
|
|
111
|
+
def add_framework
|
112
|
+
framework = options['add-framework']
|
113
|
+
return unless framework
|
114
|
+
generate "hyperloop:install_#{framework}", "--no-build"
|
115
|
+
end
|
116
|
+
|
117
|
+
def build_webpack
|
118
|
+
system('bin/webpack')
|
119
|
+
end
|
120
|
+
|
121
|
+
# all generators should be run before the initializer due to the opal-rails opal-jquery
|
122
|
+
# conflict
|
123
|
+
|
45
124
|
def create_initializer
|
46
125
|
create_file 'config/initializers/hyperloop.rb', <<-RUBY
|
47
126
|
# config/initializers/hyperloop.rb
|
48
127
|
# If you are not using ActionCable, see http://ruby-hyperloop.io/docs/models/configuring-transport/
|
49
128
|
Hyperloop.configuration do |config|
|
50
|
-
config.transport = :action_cable
|
51
|
-
config.
|
129
|
+
config.transport = :action_cable # or :pusher or :simpler_poller or :none
|
130
|
+
config.prerendering = :off # or :on
|
131
|
+
config.import 'reactrb/auto-import' # will automatically bridge js components to hyperloop components
|
132
|
+
#{" config.import 'jquery', client_only: true # remove this line if you don't need jquery" if skip_webpack?}
|
133
|
+
config.import 'opal-jquery', client_only: true # remove this line if you don't need jquery'
|
134
|
+
#{" config.import 'opal_hot_reloader' if Rails.env.development?" unless options['skip-hot-reloader']}
|
52
135
|
end
|
136
|
+
RUBY
|
137
|
+
end
|
138
|
+
|
139
|
+
def inject_engine_to_routes
|
140
|
+
# this needs to be the first route, thus it must be the last method executed
|
141
|
+
route 'mount Hyperloop::Engine => \'/hyperloop\'' # this route should be first in the routes file so it always matches
|
142
|
+
end
|
53
143
|
|
144
|
+
def add_opal_hot_reloader
|
145
|
+
return if options['skip-hot-reloader']
|
146
|
+
create_file 'Procfile', <<-TEXT
|
147
|
+
web: bundle exec rails s -b 0.0.0.0
|
148
|
+
hot-loader: bundle exec opal-hot-reloader -d app/hyperloop
|
149
|
+
TEXT
|
150
|
+
append_file 'app/assets/javascripts/application.js' do
|
151
|
+
<<-RUBY
|
152
|
+
Opal.OpalHotReloader.$listen() // optional (port, false, poll_seconds) i.e. (8081, false, 1)
|
54
153
|
RUBY
|
154
|
+
end
|
155
|
+
gem_group :development do
|
156
|
+
gem 'opal_hot_reloader'
|
157
|
+
gem 'foreman'
|
158
|
+
end
|
55
159
|
end
|
56
160
|
|
57
161
|
def add_gems
|
162
|
+
# gem 'hyper-model', Hyperloop::VERSION
|
163
|
+
# gem 'hyper-router', Hyperloop::ROUTERVERSION
|
164
|
+
# gem 'opal-rails', '~> 0.9.4'
|
165
|
+
# gem 'opal-jquery'
|
166
|
+
# gem "opal-jquery", git: "https://github.com/opal/opal-jquery.git", branch: "master"
|
167
|
+
end
|
168
|
+
|
169
|
+
def install
|
170
|
+
Bundler.with_clean_env do
|
171
|
+
run "bundle install"
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
private
|
176
|
+
|
177
|
+
def skip_webpack?
|
178
|
+
options['skip-webpack'] || !defined?(Webpacker)
|
58
179
|
end
|
59
180
|
end
|
60
181
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Rails
|
4
|
+
module Generators
|
5
|
+
class Base < Thor::Group
|
6
|
+
|
7
|
+
protected
|
8
|
+
|
9
|
+
def add_to_manifest(manifest, &block)
|
10
|
+
if File.exists? "app/javascript/packs/#{manifest}"
|
11
|
+
append_file "app/javascript/packs/#{manifest}", &block
|
12
|
+
else
|
13
|
+
create_file "app/javascript/packs/#{manifest}", &block
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def yarn(package, version = nil)
|
18
|
+
return if system("yarn add #{package}#{'@' + version if version}")
|
19
|
+
raise Thor::Error.new("yarn failed to install #{package} with version #{version}")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require_relative 'install_generator_base'
|
2
|
+
module Hyperloop
|
3
|
+
class InstallMuiGenerator < Rails::Generators::Base
|
4
|
+
|
5
|
+
desc "Adds the bits you need for the MUI framework"
|
6
|
+
|
7
|
+
class_option 'no-build', type: :boolean
|
8
|
+
|
9
|
+
def insure_yarn_loaded
|
10
|
+
begin
|
11
|
+
yarn_version = `yarn --version`
|
12
|
+
raise Errno::ENOENT if yarn_version.blank?
|
13
|
+
rescue Errno::ENOENT
|
14
|
+
raise Thor::Error.new("please insure the yarn command is available if using webpacker")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_to_manifests
|
19
|
+
add_to_manifest('client_and_server.js') { "Mui = require('muicss/react');\n" }
|
20
|
+
add_to_manifest('application.scss') { "@import '~muicss/lib/sass/mui'\n" }
|
21
|
+
end
|
22
|
+
|
23
|
+
def add_style_sheet_pack_tag
|
24
|
+
inject_into_file 'app/views/layouts/application.html.erb', after: /stylesheet_link_tag.*$/ do
|
25
|
+
"\n <%= stylesheet_pack_tag 'application' %>\n"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def run_yarn
|
30
|
+
yarn 'muicss'
|
31
|
+
end
|
32
|
+
|
33
|
+
def build_webpack
|
34
|
+
system('bin/webpack') unless options['no-build']
|
35
|
+
end
|
36
|
+
|
37
|
+
def add_sample_component
|
38
|
+
create_file 'app/hyperloop/components/mui_sampler.rb' do
|
39
|
+
<<-RUBY
|
40
|
+
class MuiSampler < Hyperloop::Component
|
41
|
+
render(DIV) do
|
42
|
+
Mui::Appbar()
|
43
|
+
Mui::Container() do
|
44
|
+
Mui::Button(color: :primary) { 'button' }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
RUBY
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/hyperloop.rb
CHANGED
@@ -1,17 +1,27 @@
|
|
1
1
|
require 'hyperloop-config'
|
2
2
|
require 'rails/generators'
|
3
|
-
|
3
|
+
|
4
|
+
# remove these once lap29 is released ...
|
5
|
+
Hyperloop.js_import 'react/react-source-browser', client_only: true, defines: ['ReactDOM', 'React']
|
6
|
+
Hyperloop.js_import 'react/react-source-server', server_only: true, defines: 'React'
|
7
|
+
Hyperloop.js_import 'hyper-router/react-router-source', defines: ['ReactRouter', 'ReactRouterDOM', 'History']
|
8
|
+
Hyperloop.js_import 'react_ujs', defines: 'ReactRailsUJS'
|
9
|
+
# remove above once lap29 is released ...
|
4
10
|
|
5
11
|
Hyperloop.import 'reactrb/auto-import'
|
6
12
|
Hyperloop.import 'hyper-router'
|
13
|
+
Hyperloop.import 'hyper-model'
|
7
14
|
|
8
15
|
require 'generators/hyperloop/install_generator'
|
9
16
|
require 'generators/hyper/component_generator'
|
10
17
|
require 'generators/hyper/router_generator'
|
11
|
-
|
18
|
+
begin
|
19
|
+
require 'opal-rails'
|
20
|
+
require 'hyper-model'
|
21
|
+
require 'hyper-router'
|
22
|
+
rescue LoadError
|
23
|
+
end
|
12
24
|
require 'react-rails'
|
13
|
-
require 'hyper-model'
|
14
25
|
require 'opal-browser'
|
15
|
-
require '
|
16
|
-
require 'hyper-router'
|
26
|
+
require 'mini_racer'
|
17
27
|
require 'hyperloop/version'
|
data/lib/hyperloop/version.rb
CHANGED
metadata
CHANGED
@@ -1,101 +1,122 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyperloop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.99.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Loic Boutet
|
8
8
|
- Adam George
|
9
9
|
- Mitch VanDuyn
|
10
|
+
- Jan Biedermann
|
10
11
|
autorequire:
|
11
12
|
bindir: bin
|
12
13
|
cert_chain: []
|
13
|
-
date:
|
14
|
+
date: 2018-09-24 00:00:00.000000000 Z
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: hyper-model
|
17
18
|
requirement: !ruby/object:Gem::Requirement
|
18
19
|
requirements:
|
19
|
-
- -
|
20
|
+
- - '='
|
20
21
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
22
|
+
version: 0.99.0
|
22
23
|
type: :runtime
|
23
24
|
prerelease: false
|
24
25
|
version_requirements: !ruby/object:Gem::Requirement
|
25
26
|
requirements:
|
26
|
-
- -
|
27
|
+
- - '='
|
27
28
|
- !ruby/object:Gem::Version
|
28
|
-
version:
|
29
|
+
version: 0.99.0
|
29
30
|
- !ruby/object:Gem::Dependency
|
30
31
|
name: hyper-router
|
31
32
|
requirement: !ruby/object:Gem::Requirement
|
32
33
|
requirements:
|
33
|
-
- -
|
34
|
+
- - '='
|
34
35
|
- !ruby/object:Gem::Version
|
35
|
-
version: 4.
|
36
|
+
version: 4.2.6.lap28
|
36
37
|
type: :runtime
|
37
38
|
prerelease: false
|
38
39
|
version_requirements: !ruby/object:Gem::Requirement
|
39
40
|
requirements:
|
40
|
-
- -
|
41
|
+
- - '='
|
41
42
|
- !ruby/object:Gem::Version
|
42
|
-
version: 4.
|
43
|
+
version: 4.2.6.lap28
|
43
44
|
- !ruby/object:Gem::Dependency
|
44
45
|
name: opal-rails
|
45
46
|
requirement: !ruby/object:Gem::Requirement
|
46
47
|
requirements:
|
47
|
-
- - "
|
48
|
+
- - "~>"
|
48
49
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.
|
50
|
+
version: 0.9.4
|
50
51
|
type: :runtime
|
51
52
|
prerelease: false
|
52
53
|
version_requirements: !ruby/object:Gem::Requirement
|
53
54
|
requirements:
|
54
|
-
- - "
|
55
|
+
- - "~>"
|
55
56
|
- !ruby/object:Gem::Version
|
56
|
-
version: 0.
|
57
|
+
version: 0.9.4
|
57
58
|
- !ruby/object:Gem::Dependency
|
58
59
|
name: opal-browser
|
60
|
+
requirement: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - "~>"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 0.2.0
|
65
|
+
type: :runtime
|
66
|
+
prerelease: false
|
67
|
+
version_requirements: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - "~>"
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: 0.2.0
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
name: react-rails
|
59
74
|
requirement: !ruby/object:Gem::Requirement
|
60
75
|
requirements:
|
61
76
|
- - ">="
|
62
77
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
78
|
+
version: 2.4.0
|
79
|
+
- - "<"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 2.5.0
|
64
82
|
type: :runtime
|
65
83
|
prerelease: false
|
66
84
|
version_requirements: !ruby/object:Gem::Requirement
|
67
85
|
requirements:
|
68
86
|
- - ">="
|
69
87
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
88
|
+
version: 2.4.0
|
89
|
+
- - "<"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: 2.5.0
|
71
92
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
93
|
+
name: mini_racer
|
73
94
|
requirement: !ruby/object:Gem::Requirement
|
74
95
|
requirements:
|
75
96
|
- - "~>"
|
76
97
|
- !ruby/object:Gem::Version
|
77
|
-
version: 1.
|
98
|
+
version: 0.1.15
|
78
99
|
type: :runtime
|
79
100
|
prerelease: false
|
80
101
|
version_requirements: !ruby/object:Gem::Requirement
|
81
102
|
requirements:
|
82
103
|
- - "~>"
|
83
104
|
- !ruby/object:Gem::Version
|
84
|
-
version: 1.
|
105
|
+
version: 0.1.15
|
85
106
|
- !ruby/object:Gem::Dependency
|
86
|
-
name:
|
107
|
+
name: libv8
|
87
108
|
requirement: !ruby/object:Gem::Requirement
|
88
109
|
requirements:
|
89
|
-
- - "
|
110
|
+
- - "~>"
|
90
111
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
112
|
+
version: 6.3.0
|
92
113
|
type: :runtime
|
93
114
|
prerelease: false
|
94
115
|
version_requirements: !ruby/object:Gem::Requirement
|
95
116
|
requirements:
|
96
|
-
- - "
|
117
|
+
- - "~>"
|
97
118
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
119
|
+
version: 6.3.0
|
99
120
|
- !ruby/object:Gem::Dependency
|
100
121
|
name: rails
|
101
122
|
requirement: !ruby/object:Gem::Requirement
|
@@ -110,26 +131,62 @@ dependencies:
|
|
110
131
|
- - ">="
|
111
132
|
- !ruby/object:Gem::Version
|
112
133
|
version: 4.0.0
|
134
|
+
- !ruby/object:Gem::Dependency
|
135
|
+
name: chromedriver-helper
|
136
|
+
requirement: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - ">="
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
141
|
+
type: :development
|
142
|
+
prerelease: false
|
143
|
+
version_requirements: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
- !ruby/object:Gem::Dependency
|
149
|
+
name: geminabox
|
150
|
+
requirement: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: 0.13.11
|
155
|
+
type: :development
|
156
|
+
prerelease: false
|
157
|
+
version_requirements: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: 0.13.11
|
113
162
|
description: This gem provide the full hyperloop stack for rails plus generators for
|
114
163
|
Hyperloop elements
|
115
|
-
email:
|
164
|
+
email:
|
165
|
+
- loic@boutet.com
|
166
|
+
- jan@kursator.com
|
116
167
|
executables: []
|
117
168
|
extensions: []
|
118
169
|
extra_rdoc_files: []
|
119
170
|
files:
|
120
171
|
- ".gitignore"
|
172
|
+
- ".travis.yml"
|
173
|
+
- Gemfile
|
174
|
+
- Gemfile.lock
|
121
175
|
- LICENSE
|
122
176
|
- README.md
|
123
|
-
-
|
177
|
+
- Rakefile
|
124
178
|
- hyperloop.gemspec
|
125
179
|
- lib/generators/hyper/component_generator.rb
|
126
180
|
- lib/generators/hyper/router_generator.rb
|
127
181
|
- lib/generators/hyper/templates/component_template.rb
|
128
182
|
- lib/generators/hyper/templates/router_template.rb
|
183
|
+
- lib/generators/hyperloop/install_bootstrap_generator.rb
|
129
184
|
- lib/generators/hyperloop/install_generator.rb
|
185
|
+
- lib/generators/hyperloop/install_generator_base.rb
|
186
|
+
- lib/generators/hyperloop/install_mui_generator.rb
|
130
187
|
- lib/hyperloop.rb
|
131
188
|
- lib/hyperloop/version.rb
|
132
|
-
homepage: http://ruby-hyperloop.
|
189
|
+
homepage: http://ruby-hyperloop.org
|
133
190
|
licenses:
|
134
191
|
- MIT
|
135
192
|
metadata: {}
|
@@ -149,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
206
|
version: '0'
|
150
207
|
requirements: []
|
151
208
|
rubyforge_project:
|
152
|
-
rubygems_version: 2.
|
209
|
+
rubygems_version: 2.7.7
|
153
210
|
signing_key:
|
154
211
|
specification_version: 4
|
155
212
|
summary: Hyperloop stack and generators for Rails
|
Binary file
|