hot-glue 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +16 -0
- data/.gitignore +3 -1
- data/.ruby-version +1 -0
- data/.travis.yml +2 -2
- data/Gemfile +17 -7
- data/LICENSE +2 -16
- data/README.md +69 -66
- data/README2.md +0 -2
- data/config/database.yml +22 -8
- data/db/schema.rb +149 -0
- data/lib/generators/hot_glue/install_generator.rb +1 -55
- data/lib/generators/hot_glue/scaffold_generator.rb +60 -3
- data/lib/generators/hot_glue/templates/controller.rb.erb +5 -5
- data/lib/generators/hot_glue/templates/system_spec.rb.erb +8 -123
- data/lib/hotglue/version.rb +1 -1
- data/script/clean_generated_code +20 -0
- data/script/test +47 -0
- metadata +10 -8
- data/.circleci/config.yml +0 -71
- data/Gemfile.lock +0 -230
- data/Rakefile +0 -42
- data/bin/rails +0 -14
- data/db/schema.rb +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1a6c388f5eaca70bdae8f7aa65eae15330351f534b174a88138d707a8be47c9
|
4
|
+
data.tar.gz: c7a91e54babfedb6441ea40349abd85ac3e7a5eb364f1da87087273b7ce56659
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8cd6c967fd9982f1d23885e2c27dffb8e99847d9c24df75880541ca8cf1acf6685025799b4e3473b821a923af4530141d8ab2f23c06dd17295e39e5ef452ad4e
|
7
|
+
data.tar.gz: 5b5befaac63a5d23d1163ceb46fefb832d30d2defaeff5efa36ddd1001b28eba0f997955071f95d860e37dfba4f83a9e0b5a9eee356ac6e9e0c577351fc5e3d1
|
@@ -0,0 +1,16 @@
|
|
1
|
+
name: Test
|
2
|
+
on: [ push, pull_request ]
|
3
|
+
|
4
|
+
jobs:
|
5
|
+
build:
|
6
|
+
runs-on: ubuntu-latest
|
7
|
+
steps:
|
8
|
+
- uses: actions/checkout@v3
|
9
|
+
- name: Set up Ruby
|
10
|
+
uses: ruby/setup-ruby@v1
|
11
|
+
with:
|
12
|
+
# Not needed with a .ruby-version file
|
13
|
+
ruby-version: 3.1
|
14
|
+
# runs 'bundle install' and caches installed gems automatically
|
15
|
+
bundler-cache: true
|
16
|
+
- run: script/test
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.1.2
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -8,14 +8,24 @@ gemspec
|
|
8
8
|
# not required for your app
|
9
9
|
gem 'sqlite3'
|
10
10
|
gem 'byebug'
|
11
|
-
gem 'rails'
|
12
|
-
gem 'devise', require: true
|
13
11
|
# gem 'progress_formatter'
|
14
12
|
|
15
13
|
# for testing
|
16
|
-
gem "rails-controller-testing", group: [:test]
|
17
|
-
gem "database_cleaner", group: [:test]
|
18
|
-
gem "rspec-rails", group: [:test]
|
19
|
-
gem "rspec_junit_formatter", group: [:test]
|
20
|
-
gem "factory_bot", group: [:test]
|
21
14
|
gem 'simplecov-rcov'
|
15
|
+
gem 'rake'
|
16
|
+
gem "rspec-rails"
|
17
|
+
gem "factory_bot_rails"
|
18
|
+
gem "ffaker"
|
19
|
+
gem "capybara"
|
20
|
+
gem "selenium-webdriver"
|
21
|
+
gem "webdrivers"
|
22
|
+
|
23
|
+
gem "sprockets-rails"
|
24
|
+
gem "importmap-rails"
|
25
|
+
gem "stimulus-rails"
|
26
|
+
gem "turbo-rails"
|
27
|
+
|
28
|
+
|
29
|
+
gem "puma", "~> 5.0"
|
30
|
+
|
31
|
+
gem "devise"
|
data/LICENSE
CHANGED
@@ -3,22 +3,8 @@ This software is 'fauxpen source,' which means you can think of it like 'free' a
|
|
3
3
|
|
4
4
|
It is definitely 'free' as in Britney.
|
5
5
|
|
6
|
-
FOR HOBBYISTS/STUDENTS/TEACHERS/INDIVIDUALS/NON-PROFITS:
|
7
|
-
|
8
|
-
Permission is hereby granted to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
9
|
-
|
10
|
-
Any users of this software agree to work to
|
11
|
-
1) dismantle systemic racism
|
12
|
-
2) seek justice for black, brown, transgender people, women, and
|
13
|
-
3) work towards LGBTQIAA+ representation and inclusion
|
14
|
-
Organizations using this software agree to center the narratives of black, brown, transgender, and non-advantaged people in the world.
|
15
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
17
|
-
|
18
|
-
Just sign the pledge at https://heliosdev.shop/hot-glue-license and your email will be granted lifetime usage access.
|
19
|
-
|
20
6
|
TO PURCHASE A COMMERCIAL USAGE LICENSE PLEASE VISIT
|
21
7
|
https://heliosdev.shop/hot-glue-license
|
22
8
|
|
23
|
-
OR
|
24
|
-
https://
|
9
|
+
OR PURCHASE THE TUTORIAL (all purchases come with lifetime license)
|
10
|
+
https://jfbcodes.com/p/hot-glue-in-depth-tutorial
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
|
2
|
-
|
2
|
+
![Integrated Logo design-639x264](https://user-images.githubusercontent.com/59002/189544688-c1a8226f-9dbd-4758-bc0c-712fc2754cbd.png)
|
3
3
|
|
4
4
|
Hot Glue is a Rails scaffold builder for the Turbo era. It is an evolution of the admin-interface style scaffolding systems of the 2010s ([activeadmin](https://github.com/activeadmin/activeadmin), [rails_admin](https://github.com/sferik/rails_admin), and [active_scaffold](https://github.com/activescaffold/active_scaffold)).
|
5
5
|
|
@@ -29,28 +29,24 @@ Hot Glue generates functionality that is quick and dirty. It lets you be crafty.
|
|
29
29
|
|
30
30
|
|
31
31
|
# Get Hot Glue
|
32
|
-
## [Licence Only Option Now Available](https://heliosdev.shop/p/hot-glue/?utm_source=github.com&utm_campaign=github_hot_glue_readme_page) **only $50 USD!**
|
33
|
-
## [GET THE COURSE TODAY (includes Licence)](https://jfbcodes.com/courses/hot-glue-in-depth-tutorial/?utm_source=github.com&utm_campaign=github_hot_glue_readme_page) **only $60 USD!**
|
34
32
|
|
35
|
-
|
36
|
-
| ------------- | ------------- |
|
37
|
-
| ![Teachable-225x225](https://user-images.githubusercontent.com/59002/147857335-a919e095-e6de-4718-8513-736d1f283a0b.png) | Now avaiale on [Teachable](https://jfbcodes.com/courses/hot-glue-in-depth-tutorial/?utm_source=github.com&utm_campaign=github_hot_glue_readme_page) |
|
33
|
+
## [GET THE COURSE TODAY](https://jfbcodes.com/courses/hot-glue-in-depth-tutorial/?utm_source=github.com&utm_campaign=github_hot_glue_readme_page) **only $60 USD!**
|
38
34
|
|
39
35
|
|
36
|
+
[![Hot Glue Course](https://user-images.githubusercontent.com/59002/189544503-6edbcd40-1728-4b13-ac9a-c7772ccb8284.jpg)](https://jfbcodes.com/courses/hot-glue-in-depth-tutorial/?utm_source=github.com&utm_campaign=github_hot_glue_readme_page)
|
37
|
+
|
40
38
|
---
|
41
39
|
|
42
40
|
|
43
|
-
##
|
44
|
-
The getting started video is newly updated with an explanation of the options for **`jsbundling-rails`/`cssbudling-rails`** when creating a new Rails 7 app.
|
41
|
+
## GETTING STARTED VIDEO
|
45
42
|
|
46
|
-
Check it out on Youtube at https://www.youtube.com/watch?v=bKjKHMTvzZc
|
47
43
|
|
48
|
-
|
44
|
+
~~Check it out on Youtube at https://www.youtube.com/watch?v=bKjKHMTvzZc~~
|
49
45
|
|
46
|
+
While you're over there could you give my Youtube channel a 'Subscribe'? (look for the RED SUBSCRIBE BUTTON)
|
50
47
|
|
51
|
-
---
|
52
|
-
|
53
48
|
|
49
|
+
---
|
54
50
|
## HOW EASY?
|
55
51
|
|
56
52
|
```
|
@@ -71,40 +67,54 @@ _If you are on Rails 6, see [LEGACY SETUP FOR RAILS 6](https://github.com/jasonf
|
|
71
67
|
|
72
68
|
## 1. Rails 7 New App
|
73
69
|
|
74
|
-
|
70
|
+
To run Turbo (which Hot Glue requires), you must either (1) be running an ImportMap-Rails app, or (2) be running a Node-compiled app using any of JSBundling, Shakapacker, or its alternatives.
|
71
|
+
|
72
|
+
For reference, see https://jasonfleetwoodboldt.com/courses/stepping-up-rails/rails-7-do-i-need-importmap-rails/
|
75
73
|
|
76
|
-
|
74
|
+
(1) To use ImportMap Rails, start with
|
75
|
+
`rails new`
|
77
76
|
|
78
|
-
|
77
|
+
If you want Bootstrap, install it following these instructions
|
79
78
|
|
80
|
-
|
79
|
+
(2) To use JSBundling, start with
|
80
|
+
`rails new --javascript=jsbundling`
|
81
81
|
|
82
|
-
For the quick step-by-step guide to help you confirm that both Stimulus and Turbo are working for your new JSBundling-Rails/CSSBunlding-Rails setup [see this post](https://jasonfleetwoodboldt.com/courses/stepping-up-rails/rails-7-new-app-with-js-bundling-css-bundling/).
|
83
82
|
|
84
|
-
|
83
|
+
**If using JSBundling, make sure to use the new `./bin/dev` to start your server instead of the old `rails server` or else your Turbo interactions will not work correctly.**
|
84
|
+
If you want Bootstrap, install it following these instructions
|
85
|
+
|
86
|
+
(3) To use Shakapacker,
|
87
|
+
`rails new --skip-javascript`
|
88
|
+
|
89
|
+
If you want Bootstrap, install it following these instructions
|
90
|
+
|
85
91
|
|
86
92
|
For the old method of installing Bootstrap [see this post](https://jasonfleetwoodboldt.com/courses/stepping-up-rails/rails-7-bootstrap/)
|
87
93
|
|
88
|
-
Remember, for Rails 6 you must go through the [LEGACY SETUP FOR RAILS 6](https://github.com/jasonfb/hot-glue/README2.md) before continuing.
|
94
|
+
Remember, for Rails 6 you must go through the [LEGACY SETUP FOR RAILS 6](https://github.com/jasonfb/hot-glue/blob/main/README2.md) before continuing.
|
89
95
|
|
90
96
|
## 2. ADD RSPEC, FACTORY-BOT, AND FFAKER
|
91
97
|
|
92
|
-
add these 3 gems to your gemfile **inside a group for both :development and :test*.
|
98
|
+
add these 3 gems to your gemfile **inside a group for both :development and :test*.
|
99
|
+
Do not add these gems to *only* the :test group or else your Rspec installer and generators will not work correctly.
|
93
100
|
```
|
94
|
-
|
95
|
-
gem '
|
96
|
-
gem '
|
101
|
+
group :development, :test do
|
102
|
+
gem 'rspec-rails'
|
103
|
+
gem 'factory_bot_rails'
|
104
|
+
gem 'ffaker'
|
105
|
+
end
|
97
106
|
```
|
98
107
|
|
108
|
+
### Rspec Installer
|
99
109
|
- run `rails generate rspec:install`
|
100
110
|
|
111
|
+
- Because you are not using Minitest, you can delete the `test/` folder at the root of your repository.
|
112
|
+
|
101
113
|
|
102
114
|
|
103
115
|
## 3. HOTGLUE INSTALLER
|
104
116
|
Add `gem 'hot-glue'` to your Gemfile & `bundle install`
|
105
117
|
|
106
|
-
Purchase a license at https://heliosdev.shop/p/hot-glue
|
107
|
-
|
108
118
|
During in installation, you MUST supply a `--layout` flag.
|
109
119
|
|
110
120
|
### `--layout` flag (only two options: `hotglue` or `bootstrap`; default is `bootstrap`)
|
@@ -149,13 +159,8 @@ https://github.com/FortAwesome/font-awesome-sass
|
|
149
159
|
|
150
160
|
|
151
161
|
## 5. Devise
|
152
|
-
!!! Warning: as of 2022-03-22, Devise is still not compatible out-of-the-box with Rails 7.
|
153
|
-
|
154
|
-
please see https://github.com/heartcombo/devise/issues/5478 or check this README for updated information.
|
155
|
-
|
156
|
-
|
157
162
|
(If you are on Rails 6, you must do ALL of the steps in the Legacy Setup steps. Be sure not to skip **Legacy Step #5** below)
|
158
|
-
|
163
|
+
https://github.com/jasonfb/hot-glue/blob/main/README2.md
|
159
164
|
|
160
165
|
You MUST run the installer FIRST or else you will put your app into a non-workable state:
|
161
166
|
```
|
@@ -183,6 +188,19 @@ Those features come by default with Devise, and you'll find the fields for them
|
|
183
188
|
In this example above, you are creating all of those fields along with a simple 'name' (string) field for your User table.
|
184
189
|
|
185
190
|
|
191
|
+
!!! Warning: as of 2022-09-19, Devise is still not compatible out-of-the-box with Rails Turbo.
|
192
|
+
|
193
|
+
To fix this, run
|
194
|
+
`rails generate devise:views`
|
195
|
+
|
196
|
+
|
197
|
+
Then manually add `html: {'data-turbo' => "false"}` to all of the Devise forms. You will need to edit the following forms:
|
198
|
+
`views/devise/sessions/new.html.erb`, `views/devise/registrations/edit.html.erb`,
|
199
|
+
`views/devise/registrations/new.html.erb`, and
|
200
|
+
|
201
|
+
Add the data-turbo false option in the html key of the form, shown in bold here:
|
202
|
+
|
203
|
+
form_for(resource, as: resource_name, **html: {'data-turbo' => "false"},** url: session_path(resource_name) ) do |f|
|
186
204
|
|
187
205
|
|
188
206
|
### Hot Glue Installer Notes
|
@@ -807,11 +825,12 @@ Child portals have the headings omitted automatically (there is a heading identi
|
|
807
825
|
|
808
826
|
# VERSION HISTORY
|
809
827
|
|
810
|
-
####
|
811
|
-
|
812
|
-
|
813
|
-
|
828
|
+
#### 2022-03-23 - v0.5.2 - Hawked Foreign Keys
|
814
829
|
|
830
|
+
- You can now protect your foreign keys from malicious input and also restrict the scope of drop downs to show only records with the specified access control restriction.
|
831
|
+
- [Example #3](https://jfb.teachable.com/courses/hot-glue-in-depth-tutorial/lectures/38584014) in the Hot Glue Tutorial shows you how to use the hawk to limit the scope to the logged in user.
|
832
|
+
- [Example #4](https://jfb.teachable.com/courses/hot-glue-in-depth-tutorial/lectures/38787505) in the Hot Glue Tutorial shows how to hawk to a non-usual scope, the inverse of the current user's belongs_to (that is, hawk the scope to X where current_user `belongs_to :x`)
|
833
|
+
|
815
834
|
|
816
835
|
#### 2022-03-12 - v0.5.1 - Inline List Labels
|
817
836
|
|
@@ -872,8 +891,6 @@ Omits the list heading. Note that the listing heading is omitted:
|
|
872
891
|
3) if the model has `@@table_label_plural = nil`, or
|
873
892
|
4) if you are constructing a nested child portal with only non-optionalized parents.
|
874
893
|
|
875
|
-
|
876
|
-
|
877
894
|
#### 2022-02-09 - v0.4.8.1 - Issue with Installer for v0.4.8
|
878
895
|
- There was an issue for the installer for v0.4.8. This new version v0.4.8.1 correts it.
|
879
896
|
|
@@ -958,47 +975,33 @@ Omits the list heading. Note that the listing heading is omitted:
|
|
958
975
|
#### 2021-02-24 - v0.0.1 - first proof of concept release -- basic CRUD works
|
959
976
|
|
960
977
|
|
961
|
-
|
962
978
|
# HOW THIS GEM IS TESTED
|
963
979
|
|
964
|
-
|
965
|
-
• Run bundle install
|
966
|
-
• if you can't get through see https://stackoverflow.com/questions/68050807/gem-install-mimemagic-v-0-3-10-fails-to-install-on-big-sur/68170982#68170982
|
967
|
-
|
968
|
-
|
969
|
-
The dummy sandbox is found at `spec/dummy`
|
980
|
+
The gem is tested against both generated specs and internal specs. The generated specs are regenerated with the test run, whereas the internal specs live as artifacts in the codebase as you would normally expected specs would.
|
970
981
|
|
971
|
-
The
|
972
|
-
|
973
|
-
When you run the **internal specs**, which you can do **at the root of this repo** using the command `rspec`, a set of specs will run to assert the generators are erroring when they are supposed to and producing code when they are supposed to.
|
974
|
-
|
975
|
-
The DUMMY testing DOES NOT test the actual functionality of the output code (it just tests the functionality of the generation process).
|
982
|
+
The generated specs are created with a small set of 'starter seeds' that exercise the gem's featureset. You can examine the setup easily by looking at the contents of `script/test`
|
976
983
|
|
984
|
+
• To setup for testing, start with
|
985
|
+
```
|
986
|
+
sudo gem install rails
|
987
|
+
sudo gem install rspec
|
988
|
+
```
|
977
989
|
|
978
|
-
# DATABASE
|
979
|
-
being able to run `rake spec` at the root of this repo is achieved using
|
980
990
|
```
|
981
|
-
|
991
|
+
sudo gem install minitest -v 5.1.0
|
982
992
|
```
|
983
993
|
|
984
|
-
|
994
|
+
Unfortunately because of the wrapped nature of the specs, these must be run from globally installed Rubies.
|
985
995
|
|
986
|
-
|
987
|
-
```
|
988
|
-
rake spec
|
989
|
-
```
|
990
|
-
Or with test coverage report:
|
996
|
+
• Once you've done the above, run `script/test`
|
991
997
|
|
992
|
-
|
993
|
-
COVERGE=on rake spec
|
998
|
+
This runs both the **generated specs** and also the **internal specs**. Examine this file for details.
|
994
999
|
|
995
|
-
|
1000
|
+
To run only the internal specs, use
|
996
1001
|
|
997
|
-
|
998
|
-
--
|
999
|
-
|
1000
|
-
Test coverage as of 2022-02-14 (v0.4.9)
|
1002
|
+
`COVERGE=on rspec spec`
|
1001
1003
|
|
1002
|
-
|
1004
|
+
Internal Test coverage as of 2022-03-23 (v0.5.2)
|
1003
1005
|
|
1006
|
+
![HG 84 89 coverage report](https://user-images.githubusercontent.com/59002/159719583-a956cfb3-1797-4186-b32c-237ed19e8e2b.png)
|
1004
1007
|
|
data/README2.md
CHANGED
@@ -71,9 +71,7 @@ Edit `devise/registrations/new`, `devise/sessions/new`, `devise/passwords/new` a
|
|
71
71
|
form_for(resource, as: resource_name, url: session_path(resource_name) ) do |f|
|
72
72
|
|
73
73
|
add the data-turbo false option in the html key:
|
74
|
-
```bigquery
|
75
74
|
|
76
|
-
```
|
77
75
|
form_for(resource, as: resource_name, **html: {'data-turbo' => "false"},** url: session_path(resource_name) ) do |f|
|
78
76
|
|
79
77
|
This tells Devise to fall back to non-Turbo interaction for the log-in and registration. For the rest of the app, we will use Turbo Rails interactions.
|
data/config/database.yml
CHANGED
@@ -1,11 +1,25 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# SQLite. Versions 3.8.0 and up are supported.
|
2
|
+
# gem install sqlite3
|
3
|
+
#
|
4
|
+
# Ensure the SQLite 3 gem is defined in your Gemfile
|
5
|
+
# gem "sqlite3"
|
6
|
+
#
|
7
|
+
default: &default
|
8
|
+
adapter: sqlite3
|
9
|
+
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
5
10
|
timeout: 5000
|
6
11
|
|
12
|
+
development:
|
13
|
+
<<: *default
|
14
|
+
database: dummy/db/development.sqlite3
|
15
|
+
|
16
|
+
# Warning: The database defined as "test" will be erased and
|
17
|
+
# re-generated from your development database when you run "rake".
|
18
|
+
# Do not set this db to the same as development or production.
|
7
19
|
test:
|
8
|
-
|
9
|
-
database:
|
10
|
-
|
11
|
-
|
20
|
+
<<: *default
|
21
|
+
database: dummy/db/test.sqlite3
|
22
|
+
|
23
|
+
production:
|
24
|
+
<<: *default
|
25
|
+
database: dummy/db/production.sqlite3
|
data/db/schema.rb
ADDED
@@ -0,0 +1,149 @@
|
|
1
|
+
# This file is auto-generated from the current state of the database. Instead
|
2
|
+
# of editing this file, please use the migrations feature of Active Record to
|
3
|
+
# incrementally modify your database, and then regenerate this schema definition.
|
4
|
+
#
|
5
|
+
# This file is the source Rails uses to define your schema when running `bin/rails
|
6
|
+
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
7
|
+
# be faster and is potentially less error prone than running all of your
|
8
|
+
# migrations from scratch. Old migrations may fail to apply correctly if those
|
9
|
+
# migrations use external dependencies or application code.
|
10
|
+
#
|
11
|
+
# It's strongly recommended that you check this file into your version control system.
|
12
|
+
|
13
|
+
ActiveRecord::Schema[7.0].define(version: 2022_03_23_000410) do
|
14
|
+
create_table "abcs", force: :cascade do |t|
|
15
|
+
t.string "name"
|
16
|
+
t.datetime "created_at", null: false
|
17
|
+
t.datetime "updated_at", null: false
|
18
|
+
end
|
19
|
+
|
20
|
+
create_table "appointments", force: :cascade do |t|
|
21
|
+
t.integer "pet_id"
|
22
|
+
t.datetime "created_at", null: false
|
23
|
+
t.datetime "updated_at", null: false
|
24
|
+
end
|
25
|
+
|
26
|
+
create_table "atw_display_names", force: :cascade do |t|
|
27
|
+
t.string "display_name"
|
28
|
+
t.integer "xyz_id"
|
29
|
+
t.datetime "created_at", null: false
|
30
|
+
t.datetime "updated_at", null: false
|
31
|
+
end
|
32
|
+
|
33
|
+
create_table "atw_full_names", force: :cascade do |t|
|
34
|
+
t.string "full_name"
|
35
|
+
t.integer "xyz_id"
|
36
|
+
t.datetime "created_at", null: false
|
37
|
+
t.datetime "updated_at", null: false
|
38
|
+
end
|
39
|
+
|
40
|
+
create_table "atw_to_labels", force: :cascade do |t|
|
41
|
+
t.string "to_label"
|
42
|
+
t.integer "xyz_id"
|
43
|
+
t.datetime "created_at", null: false
|
44
|
+
t.datetime "updated_at", null: false
|
45
|
+
end
|
46
|
+
|
47
|
+
create_table "borkeds", force: :cascade do |t|
|
48
|
+
t.integer "xyz_id"
|
49
|
+
t.integer "missing_label_table_id"
|
50
|
+
t.datetime "created_at", null: false
|
51
|
+
t.datetime "updated_at", null: false
|
52
|
+
end
|
53
|
+
|
54
|
+
create_table "cantelopes", force: :cascade do |t|
|
55
|
+
t.string "name"
|
56
|
+
t.string "_a_show_only_field"
|
57
|
+
t.datetime "created_at", null: false
|
58
|
+
t.datetime "updated_at", null: false
|
59
|
+
end
|
60
|
+
|
61
|
+
create_table "dfgs", force: :cascade do |t|
|
62
|
+
t.integer "user_id"
|
63
|
+
t.string "name"
|
64
|
+
t.datetime "created_at", null: false
|
65
|
+
t.datetime "updated_at", null: false
|
66
|
+
t.integer "cantelope_id"
|
67
|
+
end
|
68
|
+
|
69
|
+
create_table "families", force: :cascade do |t|
|
70
|
+
t.string "name"
|
71
|
+
t.datetime "created_at", null: false
|
72
|
+
t.datetime "updated_at", null: false
|
73
|
+
end
|
74
|
+
|
75
|
+
create_table "ghis", force: :cascade do |t|
|
76
|
+
t.integer "dfg_id"
|
77
|
+
t.integer "xyz_id"
|
78
|
+
t.datetime "created_at", null: false
|
79
|
+
t.datetime "updated_at", null: false
|
80
|
+
end
|
81
|
+
|
82
|
+
create_table "hgis", force: :cascade do |t|
|
83
|
+
t.string "name"
|
84
|
+
t.integer "how_many"
|
85
|
+
t.text "hello"
|
86
|
+
t.datetime "created_at", null: false
|
87
|
+
t.datetime "updated_at", null: false
|
88
|
+
end
|
89
|
+
|
90
|
+
create_table "humen", force: :cascade do |t|
|
91
|
+
t.string "name"
|
92
|
+
t.datetime "created_at", null: false
|
93
|
+
t.datetime "updated_at", null: false
|
94
|
+
end
|
95
|
+
|
96
|
+
create_table "jkls", force: :cascade do |t|
|
97
|
+
t.integer "hgi_id"
|
98
|
+
t.string "name"
|
99
|
+
t.string "blurb"
|
100
|
+
t.text "long_description"
|
101
|
+
t.float "cost"
|
102
|
+
t.integer "how_many_printed"
|
103
|
+
t.datetime "approved_at", precision: nil
|
104
|
+
t.date "release_on"
|
105
|
+
t.time "time_of_day"
|
106
|
+
t.boolean "selected"
|
107
|
+
t.integer "genre"
|
108
|
+
t.datetime "created_at", null: false
|
109
|
+
t.datetime "updated_at", null: false
|
110
|
+
end
|
111
|
+
|
112
|
+
create_table "missing_label_tables", force: :cascade do |t|
|
113
|
+
t.datetime "created_at", null: false
|
114
|
+
t.datetime "updated_at", null: false
|
115
|
+
end
|
116
|
+
|
117
|
+
create_table "pets", force: :cascade do |t|
|
118
|
+
t.string "name"
|
119
|
+
t.integer "human_id"
|
120
|
+
t.datetime "created_at", null: false
|
121
|
+
t.datetime "updated_at", null: false
|
122
|
+
end
|
123
|
+
|
124
|
+
create_table "users", force: :cascade do |t|
|
125
|
+
t.string "email", default: "", null: false
|
126
|
+
t.string "encrypted_password", default: "", null: false
|
127
|
+
t.string "reset_password_token"
|
128
|
+
t.datetime "reset_password_sent_at", precision: nil
|
129
|
+
t.datetime "remember_created_at", precision: nil
|
130
|
+
t.integer "family_id"
|
131
|
+
t.datetime "created_at", null: false
|
132
|
+
t.datetime "updated_at", null: false
|
133
|
+
t.index ["email"], name: "index_users_on_email", unique: true
|
134
|
+
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
135
|
+
end
|
136
|
+
|
137
|
+
create_table "visits", force: :cascade do |t|
|
138
|
+
t.string "name"
|
139
|
+
t.integer "user_id"
|
140
|
+
t.datetime "created_at", null: false
|
141
|
+
t.datetime "updated_at", null: false
|
142
|
+
end
|
143
|
+
|
144
|
+
create_table "xyzs", force: :cascade do |t|
|
145
|
+
t.integer "nothing_id"
|
146
|
+
t.datetime "created_at", null: false
|
147
|
+
t.datetime "updated_at", null: false
|
148
|
+
end
|
149
|
+
end
|
@@ -26,58 +26,6 @@ module HotGlue
|
|
26
26
|
puts "IMPORTANT: You have selected to install Hot Glue with Bootstrap layout (legacy). Be sure to always use ``--layout=bootstrap` when building your scaffold. No Hot Glue theme will be installed at this time.` "
|
27
27
|
end
|
28
28
|
|
29
|
-
### INTERACTIVE LICENSING
|
30
|
-
|
31
|
-
|
32
|
-
print "Do you have a license key (y/N)? "
|
33
|
-
do_you_have_a_license = STDIN.gets.strip || "N"
|
34
|
-
|
35
|
-
if do_you_have_a_license.downcase == "y"
|
36
|
-
print "Please enter the EMAIL you used to purchase a Hot Glue license, \nTeachable tutorial, or Helios Merch Shop product: "
|
37
|
-
license_email = STDIN.gets.strip
|
38
|
-
require 'open-uri'
|
39
|
-
|
40
|
-
# ask HeliosDev.shop if this email is good
|
41
|
-
stream = URI.open("https://heliosdev.shop/check_licenses/hot-glue?email=#{license_email}")
|
42
|
-
resp = JSON.parse(stream.read)
|
43
|
-
|
44
|
-
if resp['status'] == 'success'
|
45
|
-
if resp['redirect']
|
46
|
-
HotGlue::Helpers.open_page(resp['redirect'])
|
47
|
-
end
|
48
|
-
puts "\n" + " * " + resp['response'] + " * \n\n"
|
49
|
-
else
|
50
|
-
puts "\n" + " * " + resp['response'] + " * \n\n"
|
51
|
-
|
52
|
-
print "You can get a license in one of the follow ways: \n"
|
53
|
-
print "https://heliosdev.shop/hot-glue-license \n"
|
54
|
-
print "https://jfb.teachable.com/p/hot-glue-in-depth-tutorial \n"
|
55
|
-
print "https://shop.heliosdev.shop/ \n"
|
56
|
-
print "All purchases come with a Hot Glue lifetime license for individuals and hobbyists\n"
|
57
|
-
return
|
58
|
-
end
|
59
|
-
else
|
60
|
-
print "Please pick an option to get a Hot Glue license: \n"
|
61
|
-
print "1) Professional/Business with support (see heliosdev.shop/hot-glue-license for prices) \n"
|
62
|
-
print "2) Individual/hobbyist: Get the tutorial on Teachable ($60) \n"
|
63
|
-
print "3) Individual/hobbyist: Get some merchandise ($5 and up) \n"
|
64
|
-
print "Please type 1, 2, or 3: "
|
65
|
-
choice = STDIN.gets.strip
|
66
|
-
|
67
|
-
if choice == "1"
|
68
|
-
HotGlue::Helpers.open_page("https://heliosdev.shop/hot-glue-license?utm_campaing=hotglue-installer")
|
69
|
-
elsif choice == "2"
|
70
|
-
HotGlue::Helpers.open_page("https://jfb.teachable.com/p/hot-glue-in-depth-tutorial?utm_source=hotglue-installer")
|
71
|
-
print "All purchases come with a Hot Glue lifetime license for individuals and hobbyists\n"
|
72
|
-
|
73
|
-
else
|
74
|
-
HotGlue::Helpers.open_page("https://shop.heliosdev.shop/?utm_source=hotglue-installer")
|
75
|
-
print "ALSO check out the HOT GLUE TUTORIAL here: \n"
|
76
|
-
print "https://jfb.teachable.com/p/hot-glue-in-depth-tutorial \n"
|
77
|
-
print "All purchases come with a Hot Glue lifetime license for individuals and hobbyists\n"
|
78
|
-
end
|
79
|
-
return
|
80
|
-
end
|
81
29
|
|
82
30
|
@markup = options['markup']
|
83
31
|
if @markup == "haml"
|
@@ -171,11 +119,9 @@ module HotGlue
|
|
171
119
|
|
172
120
|
|
173
121
|
begin
|
174
|
-
|
175
122
|
if !File.exists?("config/hot_glue.yml")
|
176
123
|
yaml = {layout: @layout,
|
177
|
-
markup: @markup
|
178
|
-
license_email: license_email}.to_yaml
|
124
|
+
markup: @markup}.to_yaml
|
179
125
|
File.write("#{'spec/dummy/' if Rails.env.test?}config/hot_glue.yml", yaml)
|
180
126
|
|
181
127
|
end
|