rails_app_generator 0.0.15 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.builders/generators/project-plan.rb +15 -3
- data/.rubocop.yml +1 -0
- data/CHANGELOG.md +28 -0
- data/README.md +10 -1
- data/after_templates/rag_bootstrap/component-modal.html +18 -0
- data/after_templates/rag_bootstrap.rb +80 -0
- data/after_templates/rag_import_map/component-sortable.html +9 -0
- data/after_templates/rag_import_map/home.css +12 -0
- data/after_templates/rag_import_map/position_controller.js +10 -0
- data/after_templates/rag_import_map.rb +44 -0
- data/after_templates/rag_simple.rb +2 -13
- data/after_templates/rag_tailwind_hotwire/home/controller.rb +9 -0
- data/after_templates/rag_tailwind_hotwire/home/helper.rb +7 -0
- data/after_templates/rag_tailwind_hotwire/home/increment.html.erb +4 -0
- data/after_templates/rag_tailwind_hotwire/home/index.html +5 -0
- data/after_templates/rag_tailwind_hotwire.rb +23 -0
- data/docs/project-plan/project.drawio +62 -20
- data/docs/project-plan/project_done.svg +1 -1
- data/docs/project-plan/project_in_progress.svg +1 -1
- data/docs/project-plan/project_todo.svg +1 -1
- data/exe/rag +23 -51
- data/lib/rails_app_generator/app_generator.rb +4 -0
- data/lib/rails_app_generator/cli/diff.rb +49 -0
- data/lib/rails_app_generator/cli/profile.rb +37 -0
- data/lib/rails_app_generator/diff/processor.rb +4 -1
- data/lib/rails_app_generator/diff/report.rb +1 -1
- data/lib/rails_app_generator/starter.rb +4 -0
- data/lib/rails_app_generator/version.rb +1 -1
- data/lib/rails_app_generator.rb +2 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- data/profiles/rag-import-map.json +11 -0
- data/profiles/rag-simple.json +1 -1
- data/profiles/rag-tailwind-hotwire.json +12 -0
- metadata +15 -4
- data/after_templates/___base_template.rb +0 -1
- data/after_templates/___r7_hotwire.rb +0 -1
- data/lib/rails_app_generator/cli.rb +0 -64
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52910e6cbc4c2985a98a24d7786a1711e3004511d4047b97037c73f43355dd30
|
4
|
+
data.tar.gz: 7156016d4fc968fe23fa4c5068da48c5a5b087899822556c8484493a045026d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0767dd3e641b70864186624f83ac45c9210d6ba884258d648c28c048da2ea8b6b0a4edc708543d4bec09a08a38f272f1311f5ba5d4ac2a614143cab9517b2d26
|
7
|
+
data.tar.gz: 03bcd1e0dd42e3f21869a0ab807fd7d91975f00ca50c32d305987d99d3d68d8b7f923a482afa2265a9a68800e1e927374599a91006ff61958546f2936015de49
|
@@ -7,22 +7,34 @@ KManager.action :project_plan do
|
|
7
7
|
.page('In progress', theme: :style_03, margin_left: 0, margin_top: 0) do
|
8
8
|
grid_layout(y: 90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
|
9
9
|
|
10
|
-
todo(title: 'cli support for profile')
|
11
|
-
|
12
10
|
end
|
13
11
|
.page('To Do', theme: :style_02, margin_left: 0, margin_top: 0) do
|
14
12
|
|
15
13
|
grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
|
16
14
|
|
15
|
+
todo(title: 'add auto open flag to profile and command line')
|
16
|
+
todo(title: 'add profile - stimulas')
|
17
|
+
todo(title: 'add profile - hotwire')
|
18
|
+
todo(title: 'add profile - turbo')
|
19
|
+
todo(title: 'add profile - vue')
|
20
|
+
todo(title: 'add profile - svelte')
|
21
|
+
todo(title: 'add profile - react')
|
22
|
+
todo(title: 'add profile - vite')
|
23
|
+
todo(title: 'add profile - docker') # https://www.youtube.com/watch?v=ZhrnqHVVo1g
|
24
|
+
todo(title: 'add encryption - https://youtu.be/ZmwNzod1trk?t=701')
|
17
25
|
todo(title: 'cli help support for diff')
|
18
26
|
todo(title: 'cli support for rails new (rag new should work like rails new) - buggy, need to work through')
|
19
27
|
todo(title: 'need an option for deleting target project path') # FileUtils.rm_rf(instance.target_path)
|
20
|
-
|
21
28
|
end
|
22
29
|
.page('Done', theme: :style_06, margin_left: 0, margin_top: 0) do
|
23
30
|
|
24
31
|
grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
|
25
32
|
|
33
|
+
todo(title: 'add profile - tailwind_hotwire')
|
34
|
+
todo(title: 'add profile - import_map') # vs esbuild - import_map is a replacement for webpacker
|
35
|
+
todo(title: 'profile - fix the bootstrap profile')
|
36
|
+
todo(title: 'cli support for profile')
|
37
|
+
todo(title: 'separate CLI methods into include modules')
|
26
38
|
todo(title: 'cli support for diff')
|
27
39
|
todo(title: 'add diff tool - open in editor')
|
28
40
|
todo(title: 'add diff tool supporting lhs only, rhs only, same and different')
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,31 @@
|
|
1
|
+
## [0.1.1](https://github.com/klueless-io/rails_app_generator/compare/v0.1.0...v0.1.1) (2022-07-26)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* add profile import_map ([9cda9ec](https://github.com/klueless-io/rails_app_generator/commit/9cda9ecc85992a0903450dbd9245795fc471d9a5))
|
7
|
+
|
8
|
+
# [0.1.0](https://github.com/klueless-io/rails_app_generator/compare/v0.0.15...v0.1.0) (2022-07-26)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* fix cops ([caab557](https://github.com/klueless-io/rails_app_generator/commit/caab557ac6bd42df3e732024b8d71d97238c3a22))
|
14
|
+
* fix failing specs ([94dbc85](https://github.com/klueless-io/rails_app_generator/commit/94dbc85a898da8954927b8a0e2979f83d6850e79))
|
15
|
+
* separate CLI methods into include modules ([2357654](https://github.com/klueless-io/rails_app_generator/commit/235765457f736d56f5ee64b064d2fe666c71ead8))
|
16
|
+
|
17
|
+
|
18
|
+
### Features
|
19
|
+
|
20
|
+
* first release ([0bf3adb](https://github.com/klueless-io/rails_app_generator/commit/0bf3adba504a8524c821b4497c9d5e001126e3d3))
|
21
|
+
|
22
|
+
## [0.0.15](https://github.com/klueless-io/rails_app_generator/compare/v0.0.14...v0.0.15) (2022-07-26)
|
23
|
+
|
24
|
+
|
25
|
+
### Bug Fixes
|
26
|
+
|
27
|
+
* update project plan documentation ([7ed1728](https://github.com/klueless-io/rails_app_generator/commit/7ed1728e081149e56eb4292f37825169a5f21690))
|
28
|
+
|
1
29
|
## [0.0.14](https://github.com/klueless-io/rails_app_generator/compare/v0.0.13...v0.0.14) (2022-07-26)
|
2
30
|
|
3
31
|
|
data/README.md
CHANGED
@@ -22,6 +22,15 @@ Or install it yourself as:
|
|
22
22
|
gem install rails_app_generator
|
23
23
|
```
|
24
24
|
|
25
|
+
Use the Gem
|
26
|
+
|
27
|
+
```
|
28
|
+
rag rag-simple
|
29
|
+
rag rag-tailwind
|
30
|
+
rag rag-bootstrap
|
31
|
+
```
|
32
|
+
|
33
|
+
|
25
34
|
## Notes
|
26
35
|
|
27
36
|
You can use rails_app_generator to create Rails 7 applications
|
@@ -37,7 +46,7 @@ Templates for rails are separated from templates for addons
|
|
37
46
|
|
38
47
|
As a Developer, I want to create new Rails application with flexible opinions so that I can build different rails proof of concepts
|
39
48
|
|
40
|
-
|
49
|
+
[Project Plan](./docs/project-plan.md)
|
41
50
|
|
42
51
|
|
43
52
|
## Usage
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<!-- Modal -->
|
2
|
+
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
3
|
+
<div class="modal-dialog">
|
4
|
+
<div class="modal-content">
|
5
|
+
<div class="modal-header">
|
6
|
+
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
|
7
|
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
8
|
+
</div>
|
9
|
+
<div class="modal-body">
|
10
|
+
...
|
11
|
+
</div>
|
12
|
+
<div class="modal-footer">
|
13
|
+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
14
|
+
<button type="button" class="btn btn-primary">Save changes</button>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
</div>
|
@@ -1 +1,81 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Rails 7 with Bootstrap CSS and custom CSS
|
4
|
+
# resources:
|
5
|
+
# https://www.youtube.com/watch?v=tYr8yn7yRKw
|
6
|
+
# https://youtu.be/phOUsR0dm5s?t=493
|
7
|
+
# https://www.youtube.com/watch?v=nxKDTtuKOo4
|
8
|
+
|
9
|
+
require 'pry'
|
10
|
+
|
11
|
+
def add_customizations
|
12
|
+
self.local_template_path = File.join(File.dirname(__FILE__), 'rag_bootstrap')
|
13
|
+
|
14
|
+
gac 'base rails 7 image created'
|
15
|
+
|
16
|
+
add_controller('home', 'index', 'about')
|
17
|
+
route("root 'home#index'")
|
18
|
+
|
19
|
+
# need a join template method
|
20
|
+
index_content = join_templates(
|
21
|
+
'component-nav.html',
|
22
|
+
'component-hero.html',
|
23
|
+
'component-cards-fancy.html',
|
24
|
+
'component-cards-staff.html',
|
25
|
+
'component-cards-styled.html',
|
26
|
+
'component-modal.html',
|
27
|
+
'component-footer.html'
|
28
|
+
)
|
29
|
+
|
30
|
+
# move the nav bar into
|
31
|
+
# 'app/views/shared/_navbar.html.erb'
|
32
|
+
# and add the nav bar to the layout
|
33
|
+
# 'app/views/layouts/application.html.erb'
|
34
|
+
# <%= render partial: 'shared/navbar' %>
|
35
|
+
|
36
|
+
create_file 'app/views/home/index.html.erb', index_content, force: true
|
37
|
+
|
38
|
+
gem 'sassc-rails'
|
39
|
+
|
40
|
+
after_bundle do
|
41
|
+
add_css_customizations
|
42
|
+
add_crud_people
|
43
|
+
|
44
|
+
rails_command('db:migrate')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def add_css_customizations
|
49
|
+
# Update the manifest to include the stylesheets
|
50
|
+
append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
|
51
|
+
|
52
|
+
# This is how you would add custom styling via @import in the application.bootstrap.css
|
53
|
+
append_to_file 'app/assets/stylesheets/application.bootstrap.scss' , "@import 'custom-bootstrap-import.scss';"
|
54
|
+
create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
|
55
|
+
|
56
|
+
# This is how you would add custom styling using standard CSS
|
57
|
+
create_file 'app/assets/stylesheets/custom-using-css.css' , read_template('custom-using-css.css')
|
58
|
+
|
59
|
+
# This is how you would add custom styling using standard SAAS/SCSS
|
60
|
+
create_file 'app/assets/stylesheets/custom-using-scss.scss' , read_template('custom-using-scss.scss')
|
61
|
+
|
62
|
+
# This is custom CSS for the fancier components
|
63
|
+
create_file 'app/assets/stylesheets/custom-component.css' , join_templates('component-cards-fancy.css', 'component-cards-staff.css')
|
64
|
+
|
65
|
+
# Update the layout so that the stylesheets are included
|
66
|
+
insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
|
67
|
+
before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
|
68
|
+
gsub_file 'app/views/layouts/application.html.erb', %( <%= yield %>), read_template('application-yield.html.erb')
|
69
|
+
end
|
70
|
+
|
71
|
+
def add_crud_people
|
72
|
+
# Need to get the bootstrap form styling working
|
73
|
+
# Follow the instructions at: https://youtu.be/phOUsR0dm5s?t=493
|
74
|
+
add_scaffold('people', 'first_name', 'last_name', 'age:integer', 'address:text')
|
75
|
+
end
|
76
|
+
|
77
|
+
begin
|
78
|
+
add_customizations
|
79
|
+
rescue StandardError => e
|
80
|
+
puts e.message
|
81
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Episode #312 - Importmaps in Rails 7
|
4
|
+
# https://www.youtube.com/watch?v=veWpot6zfUQ
|
5
|
+
|
6
|
+
require 'pry'
|
7
|
+
|
8
|
+
def add_customizations
|
9
|
+
self.local_template_path = File.join(File.dirname(__FILE__), 'rag_import_map')
|
10
|
+
|
11
|
+
gac 'base rails 7 image created'
|
12
|
+
|
13
|
+
add_controller('home', 'index')
|
14
|
+
route("root 'home#index'")
|
15
|
+
|
16
|
+
# need a join template metehod
|
17
|
+
after_bundle do
|
18
|
+
# after bundle hook
|
19
|
+
bundle_add('importmap-rails')
|
20
|
+
rails_command('importmap:install')
|
21
|
+
|
22
|
+
bundle_add('hotwire-rails')
|
23
|
+
rails_command('hotwire:install')
|
24
|
+
|
25
|
+
# run("bin/importmap pin local-time --download")
|
26
|
+
|
27
|
+
# use CDN: ga.jsmp.io
|
28
|
+
run('bin/importmap pin sortablejs')
|
29
|
+
# => pin "sortablejs", to: "https://ga.jspm.io/npm:sortablejs@1.15.0/modular/sortable.esm.js"
|
30
|
+
# use CDN: jsdeliver
|
31
|
+
# run("bin/importmap pin sortablejs --from jsdelivr")
|
32
|
+
# => pin "sortablejs", to: "https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/modular/sortable.esm.js"
|
33
|
+
|
34
|
+
append_to_file 'app/views/home/index.html.erb', read_template('component-sortable.html')
|
35
|
+
template 'position_controller.js', 'app/javascript/controllers/position_controller.js'
|
36
|
+
template 'home.css', 'app/assets/stylesheets/home.css'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
begin
|
41
|
+
add_customizations
|
42
|
+
rescue StandardError => e
|
43
|
+
puts e.message
|
44
|
+
end
|
@@ -9,17 +9,6 @@ self.local_template_path = File.join(File.dirname(__FILE__), 'rag_simple')
|
|
9
9
|
|
10
10
|
gac 'base rails 7 image created'
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
<div class="container">
|
15
|
-
<div class="row">
|
16
|
-
<%= yield %>
|
17
|
-
</div>
|
18
|
-
</div>
|
19
|
-
HTML
|
12
|
+
after_bundle do
|
13
|
+
# if needed
|
20
14
|
end
|
21
|
-
|
22
|
-
gsub_file 'app/views/layouts/application.html.erb' , %( <%= yield %>), application_html
|
23
|
-
|
24
|
-
# after_bundle do
|
25
|
-
# end
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<turbo-frame id='counter'>
|
2
|
+
<div class='mt-4' style='color: <%= rand_color %>'>Current Count: <%= @counter %></div>
|
3
|
+
<div class="mt-4"><%= link_to 'Increment', increment_path(counter: @counter), class: 'bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded' %></div>
|
4
|
+
</turbo-frame>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# How to Start a Ruby on Rails 7 App With Hotwire and Tailwind CSS
|
4
|
+
# https://www.youtube.com/watch?v=7G0oWn2Gn5c
|
5
|
+
|
6
|
+
require 'pry'
|
7
|
+
|
8
|
+
self.local_template_path = File.join(File.dirname(__FILE__), 'rag_tailwind_hotwire')
|
9
|
+
|
10
|
+
gac 'base rails 7 image created'
|
11
|
+
|
12
|
+
add_controller('home', 'index')
|
13
|
+
route("get 'home/increment', as: :increment")
|
14
|
+
route("root 'home#index'")
|
15
|
+
|
16
|
+
copy_file 'home/controller.rb' , 'app/controllers/home_controller.rb' , force: true
|
17
|
+
copy_file 'home/helper.rb' , 'app/helpers/home_helper.rb' , force: true
|
18
|
+
copy_file 'home/index.html' , 'app/views/home/index.html.erb' , force: true
|
19
|
+
copy_file 'home/increment.html.erb', 'app/views/home/increment.html.erb' , force: true
|
20
|
+
|
21
|
+
after_bundle do
|
22
|
+
gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mt-8 mx-auto'
|
23
|
+
end
|
@@ -1,49 +1,91 @@
|
|
1
|
-
<mxfile host="
|
2
|
-
<diagram id="
|
1
|
+
<mxfile host="hAT">
|
2
|
+
<diagram id="EXU" name="In progress">
|
3
3
|
<mxGraphModel dx="0" dy="0" background="#FFFAFA" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
4
4
|
<root>
|
5
|
-
<mxCell id="
|
6
|
-
<mxCell id="
|
7
|
-
<mxCell id="avE-2" value="cli support for profile" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_avE">
|
8
|
-
<mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
|
9
|
-
</mxCell>
|
5
|
+
<mxCell id="page_root_EXU" parent="EXU"/>
|
6
|
+
<mxCell id="node_root_EXU" parent="page_root_EXU"/>
|
10
7
|
</root>
|
11
8
|
</mxGraphModel>
|
12
9
|
</diagram>
|
13
|
-
<diagram id="
|
10
|
+
<diagram id="c1l" name="To Do">
|
14
11
|
<mxGraphModel dx="0" dy="0" background="#FFFAFA" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
15
12
|
<root>
|
16
|
-
<mxCell id="
|
17
|
-
<mxCell id="
|
18
|
-
<mxCell id="
|
13
|
+
<mxCell id="page_root_c1l" parent="c1l"/>
|
14
|
+
<mxCell id="node_root_c1l" parent="page_root_c1l"/>
|
15
|
+
<mxCell id="c1l-2" value="add auto open flag to profile and command line" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
19
16
|
<mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
|
20
17
|
</mxCell>
|
21
|
-
<mxCell id="
|
18
|
+
<mxCell id="c1l-3" value="add profile - stimulas" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
22
19
|
<mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
|
23
20
|
</mxCell>
|
24
|
-
<mxCell id="
|
21
|
+
<mxCell id="c1l-4" value="add profile - hotwire" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
25
22
|
<mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
|
26
23
|
</mxCell>
|
24
|
+
<mxCell id="c1l-5" value="add profile - turbo" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
25
|
+
<mxGeometry x="10" y="90" width="300" height="60" as="geometry"/>
|
26
|
+
</mxCell>
|
27
|
+
<mxCell id="c1l-6" value="add profile - vue" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
28
|
+
<mxGeometry x="330" y="90" width="300" height="60" as="geometry"/>
|
29
|
+
</mxCell>
|
30
|
+
<mxCell id="c1l-7" value="add profile - svelte" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
31
|
+
<mxGeometry x="650" y="90" width="300" height="60" as="geometry"/>
|
32
|
+
</mxCell>
|
33
|
+
<mxCell id="c1l-8" value="add profile - react" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
34
|
+
<mxGeometry x="10" y="170" width="300" height="60" as="geometry"/>
|
35
|
+
</mxCell>
|
36
|
+
<mxCell id="c1l-9" value="add profile - vite" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
37
|
+
<mxGeometry x="330" y="170" width="300" height="60" as="geometry"/>
|
38
|
+
</mxCell>
|
39
|
+
<mxCell id="c1l-10" value="add profile - docker" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
40
|
+
<mxGeometry x="650" y="170" width="300" height="60" as="geometry"/>
|
41
|
+
</mxCell>
|
42
|
+
<mxCell id="c1l-11" value="add encryption - https://youtu.be/ZmwNzod1trk?t=701" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
43
|
+
<mxGeometry x="10" y="250" width="300" height="60" as="geometry"/>
|
44
|
+
</mxCell>
|
45
|
+
<mxCell id="c1l-12" value="cli help support for diff" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
46
|
+
<mxGeometry x="330" y="250" width="300" height="60" as="geometry"/>
|
47
|
+
</mxCell>
|
48
|
+
<mxCell id="c1l-13" value="cli support for rails new (rag new should work like rails new) - buggy, need to work through" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
49
|
+
<mxGeometry x="650" y="250" width="300" height="60" as="geometry"/>
|
50
|
+
</mxCell>
|
51
|
+
<mxCell id="c1l-14" value="need an option for deleting target project path" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_c1l">
|
52
|
+
<mxGeometry x="10" y="330" width="300" height="60" as="geometry"/>
|
53
|
+
</mxCell>
|
27
54
|
</root>
|
28
55
|
</mxGraphModel>
|
29
56
|
</diagram>
|
30
|
-
<diagram id="
|
57
|
+
<diagram id="oP6" name="Done">
|
31
58
|
<mxGraphModel dx="0" dy="0" background="#FFFAFA" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
32
59
|
<root>
|
33
|
-
<mxCell id="
|
34
|
-
<mxCell id="
|
35
|
-
<mxCell id="
|
60
|
+
<mxCell id="page_root_oP6" parent="oP6"/>
|
61
|
+
<mxCell id="node_root_oP6" parent="page_root_oP6"/>
|
62
|
+
<mxCell id="oP6-2" value="add profile - tailwind_hotwire" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_oP6">
|
36
63
|
<mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
|
37
64
|
</mxCell>
|
38
|
-
<mxCell id="
|
65
|
+
<mxCell id="oP6-3" value="add profile - import_map" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_oP6">
|
39
66
|
<mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
|
40
67
|
</mxCell>
|
41
|
-
<mxCell id="
|
68
|
+
<mxCell id="oP6-4" value="profile - fix the bootstrap profile" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_oP6">
|
42
69
|
<mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
|
43
70
|
</mxCell>
|
44
|
-
<mxCell id="
|
71
|
+
<mxCell id="oP6-5" value="cli support for profile" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_oP6">
|
45
72
|
<mxGeometry x="10" y="90" width="300" height="60" as="geometry"/>
|
46
73
|
</mxCell>
|
74
|
+
<mxCell id="oP6-6" value="separate CLI methods into include modules" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_oP6">
|
75
|
+
<mxGeometry x="330" y="90" width="300" height="60" as="geometry"/>
|
76
|
+
</mxCell>
|
77
|
+
<mxCell id="oP6-7" value="cli support for diff" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_oP6">
|
78
|
+
<mxGeometry x="650" y="90" width="300" height="60" as="geometry"/>
|
79
|
+
</mxCell>
|
80
|
+
<mxCell id="oP6-8" value="add diff tool - open in editor" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_oP6">
|
81
|
+
<mxGeometry x="10" y="170" width="300" height="60" as="geometry"/>
|
82
|
+
</mxCell>
|
83
|
+
<mxCell id="oP6-9" value="add diff tool supporting lhs only, rhs only, same and different" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_oP6">
|
84
|
+
<mxGeometry x="330" y="170" width="300" height="60" as="geometry"/>
|
85
|
+
</mxCell>
|
86
|
+
<mxCell id="oP6-10" value="add project plan to do list" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_oP6">
|
87
|
+
<mxGeometry x="650" y="170" width="300" height="60" as="geometry"/>
|
88
|
+
</mxCell>
|
47
89
|
</root>
|
48
90
|
</mxGraphModel>
|
49
91
|
</diagram>
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="142px" viewBox="-0.5 -0.5 942 142"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli support for diff</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for diff</text></switch></g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add diff tool - open in editor</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool - open in editor</text></switch></g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add diff tool supporting lhs only, rhs only, same and different</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool supporting lhs only, rhs only, same...</text></switch></g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add project plan to do list</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add project plan to do list</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="222px" viewBox="-0.5 -0.5 942 222"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - tailwind_hotwire</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - tailwind_hotwire</text></switch></g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - import_map</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - import_map</text></switch></g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">profile - fix the bootstrap profile</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">profile - fix the bootstrap profile</text></switch></g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli support for profile</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for profile</text></switch></g><rect x="320" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 79 Q 319 79 319 90.15 L 319 104 Q 470 122 621 104 L 621 90.15 Q 621 79 609.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">separate CLI methods into include modules</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">separate CLI methods into include modules</text></switch></g><rect x="640" y="80" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 79 Q 639 79 639 90.15 L 639 104 Q 790 122 941 104 L 941 90.15 Q 941 79 929.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli support for diff</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for diff</text></switch></g><rect x="0" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 10.15 159 Q -1 159 -1 170.15 L -1 184 Q 150 202 301 184 L 301 170.15 Q 301 159 289.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add diff tool - open in editor</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool - open in editor</text></switch></g><rect x="320" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 330.15 159 Q 319 159 319 170.15 L 319 184 Q 470 202 621 184 L 621 170.15 Q 621 159 609.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add diff tool supporting lhs only, rhs only, same and different</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool supporting lhs only, rhs only, same...</text></switch></g><rect x="640" y="160" width="300" height="60" rx="9" ry="9" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><path d="M 650.15 159 Q 639 159 639 170.15 L 639 184 Q 790 202 941 184 L 941 170.15 Q 941 159 929.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add project plan to do list</div></div></div></foreignObject><text x="790" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add project plan to do list</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="302px" height="62px" viewBox="-0.5 -0.5 302 62"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="302px" height="62px" viewBox="-0.5 -0.5 302 62"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - import maps</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - import maps</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="62px" viewBox="-0.5 -0.5 942 62"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli help support for diff</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli help support for diff</text></switch></g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli support for rails new (rag new should work like rails new) - buggy, need to work through</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for rails new (rag new should work lik...</text></switch></g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">need an option for deleting target project path</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">need an option for deleting target project path</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="942px" height="382px" viewBox="-0.5 -0.5 942 382"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffffff-0.9-ffffff-0.1-s-0"><stop offset="0%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.9;"/><stop offset="100%" style="stop-color: rgb(255, 255, 255); stop-opacity: 0.1;"/></linearGradient></defs><g><rect x="0" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 -1 Q -1 -1 -1 10.15 L -1 24 Q 150 42 301 24 L 301 10.15 Q 301 -1 289.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add auto open flag to profile and command line</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add auto open flag to profile and command line</text></switch></g><rect x="320" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 -1 Q 319 -1 319 10.15 L 319 24 Q 470 42 621 24 L 621 10.15 Q 621 -1 609.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - stimulas</div></div></div></foreignObject><text x="470" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - stimulas</text></switch></g><rect x="640" y="0" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 -1 Q 639 -1 639 10.15 L 639 24 Q 790 42 941 24 L 941 10.15 Q 941 -1 929.85 -1 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 30px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - hotwire</div></div></div></foreignObject><text x="790" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - hotwire</text></switch></g><rect x="0" y="80" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 79 Q -1 79 -1 90.15 L -1 104 Q 150 122 301 104 L 301 90.15 Q 301 79 289.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - turbo</div></div></div></foreignObject><text x="150" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - turbo</text></switch></g><rect x="320" y="80" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 79 Q 319 79 319 90.15 L 319 104 Q 470 122 621 104 L 621 90.15 Q 621 79 609.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - vue</div></div></div></foreignObject><text x="470" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - vue</text></switch></g><rect x="640" y="80" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 79 Q 639 79 639 90.15 L 639 104 Q 790 122 941 104 L 941 90.15 Q 941 79 929.85 79 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 110px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - svelte</div></div></div></foreignObject><text x="790" y="114" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - svelte</text></switch></g><rect x="0" y="160" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 159 Q -1 159 -1 170.15 L -1 184 Q 150 202 301 184 L 301 170.15 Q 301 159 289.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - react</div></div></div></foreignObject><text x="150" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - react</text></switch></g><rect x="320" y="160" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 159 Q 319 159 319 170.15 L 319 184 Q 470 202 621 184 L 621 170.15 Q 621 159 609.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - vite</div></div></div></foreignObject><text x="470" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - vite</text></switch></g><rect x="640" y="160" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 159 Q 639 159 639 170.15 L 639 184 Q 790 202 941 184 L 941 170.15 Q 941 159 929.85 159 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 190px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add profile - docker</div></div></div></foreignObject><text x="790" y="194" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add profile - docker</text></switch></g><rect x="0" y="240" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 239 Q -1 239 -1 250.15 L -1 264 Q 150 282 301 264 L 301 250.15 Q 301 239 289.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">add encryption - https://youtu.be/ZmwNzod1trk?t=701</div></div></div></foreignObject><text x="150" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add encryption - https://youtu.be/ZmwNzod1trk?t=701</text></switch></g><rect x="320" y="240" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 330.15 239 Q 319 239 319 250.15 L 319 264 Q 470 282 621 264 L 621 250.15 Q 621 239 609.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 321px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli help support for diff</div></div></div></foreignObject><text x="470" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli help support for diff</text></switch></g><rect x="640" y="240" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 650.15 239 Q 639 239 639 250.15 L 639 264 Q 790 282 941 264 L 941 250.15 Q 941 239 929.85 239 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 270px; margin-left: 641px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">cli support for rails new (rag new should work like rails new) - buggy, need to work through</div></div></div></foreignObject><text x="790" y="274" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for rails new (rag new should work lik...</text></switch></g><rect x="0" y="320" width="300" height="60" rx="9" ry="9" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><path d="M 10.15 319 Q -1 319 -1 330.15 L -1 344 Q 150 362 301 344 L 301 330.15 Q 301 319 289.85 319 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 298px; height: 1px; padding-top: 350px; margin-left: 1px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">need an option for deleting target project path</div></div></div></foreignObject><text x="150" y="354" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">need an option for deleting target project path</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
data/exe/rag
CHANGED
@@ -9,62 +9,34 @@ $LOAD_PATH << source_path
|
|
9
9
|
|
10
10
|
require 'rails_app_generator'
|
11
11
|
|
12
|
+
first = ARGV.first
|
13
|
+
|
12
14
|
if ARGV.empty?
|
13
15
|
puts 'Please provide a profile for the new application'
|
14
16
|
puts
|
15
17
|
puts 'See --help for more info'
|
16
|
-
|
17
|
-
elsif %w[-v --version].include? ARGV[0]
|
18
|
+
elsif %w[-v --version].include?(first)
|
18
19
|
puts RailsAppGenerator::VERSION
|
19
|
-
|
20
|
+
elsif first == 'diff'
|
21
|
+
RailsAppGenerator::Cli::Diff.start(ARGV)
|
22
|
+
elsif first == 'new'
|
23
|
+
puts 'TODO: NEW'
|
24
|
+
|
25
|
+
# # Use RAG with in the same way as the Rails generator (the following commands should be equivalent)
|
26
|
+
# # rails new args
|
27
|
+
# # rag new args
|
28
|
+
# if ARGV.first == 'new'
|
29
|
+
# # NOTE: This is not yet working
|
30
|
+
# RailsAppGenerator::Cli::Standard.start ARGV[1..]
|
31
|
+
# exit 0
|
32
|
+
# elsif !ARGV.first.nil?
|
33
|
+
# end
|
34
|
+
|
35
|
+
else
|
36
|
+
fallback_profile_path = File.expand_path("#{Pathname.new(__FILE__).dirname}/../profiles")
|
37
|
+
args = ['profile'] + ARGV + ["--fallback-profile-path=#{fallback_profile_path}"]
|
38
|
+
|
39
|
+
RailsAppGenerator::Cli::Profile.start(args)
|
20
40
|
end
|
21
41
|
|
22
|
-
RailsAppGenerator::Cli.start(ARGV)
|
23
|
-
|
24
42
|
exit 0
|
25
|
-
|
26
|
-
# # Use RAG with in the same way as the Rails generator (the following commands should be equivalent)
|
27
|
-
# # rails new args
|
28
|
-
# # rag new args
|
29
|
-
# if ARGV.first == 'new'
|
30
|
-
# # NOTE: This is not yet working
|
31
|
-
# RailsAppGenerator::Cli::Standard.start ARGV[1..]
|
32
|
-
# exit 0
|
33
|
-
# elsif ARGV.first == 'diff'
|
34
|
-
# # args, opts = Thor::Arguments.split(ARGV[1..])
|
35
|
-
# RailsAppGenerator::Cli::Diff.start(ARGV[1..]) # , { lhs: true, rhs: true, compare: true } )
|
36
|
-
# exit 0
|
37
|
-
# elsif ARGV.first == 'diff_lhs'
|
38
|
-
# RailsAppGenerator::Cli::Diff.start(ARGV[1..], { lhs: true })
|
39
|
-
# exit 0
|
40
|
-
# elsif ARGV.first == 'diff_rhs'
|
41
|
-
# RailsAppGenerator::Cli::Diff.start(ARGV[1..], { rhs: true })
|
42
|
-
# exit 0
|
43
|
-
# elsif ARGV.first == 'diff_compare'
|
44
|
-
# RailsAppGenerator::Cli::Diff.start(ARGV[1..], { compare: true })
|
45
|
-
# exit 0
|
46
|
-
# elsif !ARGV.first.nil?
|
47
|
-
# profile_path = File.expand_path("#{Pathname.new(__FILE__).dirname}/../profiles")
|
48
|
-
# profile_name = ARGV[0]
|
49
|
-
# profile_name += '.json' unless profile_name.end_with?('.json')
|
50
|
-
# profile_file = File.join(profile_path, profile_name)
|
51
|
-
|
52
|
-
# RailsAppGenerator::Cli::Profile.start(profile_file)
|
53
|
-
|
54
|
-
# exit 0
|
55
|
-
# end
|
56
|
-
|
57
|
-
# if File.exist?(profile_file)
|
58
|
-
# puts "Using profile #{profile_file}"
|
59
|
-
|
60
|
-
# profile = JSON.parse(File.read(profile_file), symbolize_names: true)
|
61
|
-
# args = profile[:args]
|
62
|
-
# opts = profile[:opts]
|
63
|
-
# rails_options = RailsAppGenerator::RailsOptions.new(opts)
|
64
|
-
|
65
|
-
# instance = RailsAppGenerator::Starter.new(args)
|
66
|
-
# FileUtils.rm_rf(instance.target_path)
|
67
|
-
# instance.start(rails_options)
|
68
|
-
# else
|
69
|
-
# puts "Profile #{profile_file} not found"
|
70
|
-
# exit 1
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
module Cli
|
5
|
+
# Folder Diff
|
6
|
+
class Diff < Thor
|
7
|
+
desc 'diff lhs_folder rhs_folder [options]', 'Diff two different rails folders'
|
8
|
+
|
9
|
+
# Run report to console for following options
|
10
|
+
option :show_left_only , type: :boolean
|
11
|
+
option :show_right_only , type: :boolean
|
12
|
+
option :show_same , type: :boolean
|
13
|
+
option :show_different , type: :boolean
|
14
|
+
|
15
|
+
# Open files in VSCode for for following options
|
16
|
+
option :open_left_only , type: :boolean
|
17
|
+
option :open_right_only , type: :boolean
|
18
|
+
option :open_same , type: :boolean
|
19
|
+
option :open_different , type: :boolean
|
20
|
+
|
21
|
+
# rubocop:disable Metrics/AbcSize
|
22
|
+
def diff(lhs_folder, rhs_folder)
|
23
|
+
# puts "Diffing #{lhs_folder} and #{rhs_folder}"
|
24
|
+
# puts JSON.pretty_generate(options)
|
25
|
+
processor = RailsAppGenerator::Diff::Processor.new(lhs_folder, rhs_folder)
|
26
|
+
compare_info = processor.compare
|
27
|
+
|
28
|
+
report = RailsAppGenerator::Diff::Report.new(
|
29
|
+
compare_info,
|
30
|
+
show_left_only: options[:show_left_only],
|
31
|
+
show_right_only: options[:show_right_only],
|
32
|
+
show_same: options[:show_same],
|
33
|
+
show_different: options[:show_different]
|
34
|
+
)
|
35
|
+
report.display
|
36
|
+
|
37
|
+
vscode = RailsAppGenerator::Diff::OpenInEditor.new(
|
38
|
+
compare_info,
|
39
|
+
open_left_only: options[:open_left_only],
|
40
|
+
open_right_only: options[:open_right_only],
|
41
|
+
open_same: options[:open_same],
|
42
|
+
open_different: options[:show_different]
|
43
|
+
)
|
44
|
+
vscode.open
|
45
|
+
end
|
46
|
+
# rubocop:enable Metrics/AbcSize
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RailsAppGenerator
|
4
|
+
module Cli
|
5
|
+
# Folder Diff
|
6
|
+
class Profile < Thor
|
7
|
+
desc 'xxx [options]', 'Create a new rails app based on a RAG profile'
|
8
|
+
|
9
|
+
option :profile_path , type: :string
|
10
|
+
option :fallback_profile_path , type: :string
|
11
|
+
|
12
|
+
# rubocop:disable Metrics/AbcSize
|
13
|
+
def profile(name)
|
14
|
+
path = options[:profile_path] || options[:fallback_profile_path]
|
15
|
+
profile_name = name.end_with?('.json') ? name : "#{name}.json"
|
16
|
+
profile_file = File.join(path, profile_name)
|
17
|
+
|
18
|
+
unless File.exist?(profile_file)
|
19
|
+
puts "Profile [#{profile_file}] not found"
|
20
|
+
exit 1
|
21
|
+
end
|
22
|
+
|
23
|
+
puts "Using profile #{profile_file}"
|
24
|
+
|
25
|
+
profile = JSON.parse(File.read(profile_file), symbolize_names: true)
|
26
|
+
args = profile[:args]
|
27
|
+
opts = RailsAppGenerator::RailsOptions.new(profile[:opts])
|
28
|
+
|
29
|
+
starter = RailsAppGenerator::Starter.new(args)
|
30
|
+
|
31
|
+
starter.delete_target_folder
|
32
|
+
starter.start(opts)
|
33
|
+
end
|
34
|
+
# rubocop:enable Metrics/AbcSize
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -8,7 +8,10 @@ module RailsAppGenerator
|
|
8
8
|
attr_reader :rhs_path
|
9
9
|
|
10
10
|
DEFAULT_EXCLUSION = lambda do |_file, relative_file|
|
11
|
-
relative_file.start_with?('tmp') ||
|
11
|
+
relative_file.start_with?('tmp') ||
|
12
|
+
relative_file.start_with?('node_modules') ||
|
13
|
+
relative_file.start_with?('log') ||
|
14
|
+
relative_file == 'Gemfile.lock'
|
12
15
|
end
|
13
16
|
|
14
17
|
def initialize(lhs_path, rhs_path)
|
@@ -14,7 +14,7 @@ module RailsAppGenerator
|
|
14
14
|
def initialize(compare_info, **opts)
|
15
15
|
@info = compare_info
|
16
16
|
|
17
|
-
@show_left_only = opts[:show_left_only].nil? ?
|
17
|
+
@show_left_only = opts[:show_left_only].nil? ? true : opts[:show_left_only]
|
18
18
|
@show_right_only = opts[:show_right_only].nil? ? true : opts[:show_right_only]
|
19
19
|
@show_same = opts[:show_same].nil? ? false : opts[:show_same]
|
20
20
|
@show_different = opts[:show_different].nil? ? true : opts[:show_different]
|
data/lib/rails_app_generator.rb
CHANGED
@@ -8,7 +8,8 @@ require 'rails/generators/rails/app/app_generator'
|
|
8
8
|
require 'bundler'
|
9
9
|
|
10
10
|
require 'rails_app_generator/version'
|
11
|
-
require 'rails_app_generator/cli'
|
11
|
+
require 'rails_app_generator/cli/diff'
|
12
|
+
require 'rails_app_generator/cli/profile'
|
12
13
|
require 'rails_app_generator/util'
|
13
14
|
require 'rails_app_generator/diff/file_pair'
|
14
15
|
require 'rails_app_generator/diff/compare_info'
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "rails_app_generator",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.1.2",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "rails_app_generator",
|
9
|
-
"version": "0.
|
9
|
+
"version": "0.1.2",
|
10
10
|
"devDependencies": {
|
11
11
|
"@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
|
12
12
|
"@semantic-release/changelog": "^6.0.1",
|
data/package.json
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"args": {
|
3
|
+
"app_path": "import_map",
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/rag"
|
5
|
+
},
|
6
|
+
"opts": {
|
7
|
+
"skip_test": true,
|
8
|
+
"skip_javascript": true,
|
9
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_import_map.rb"
|
10
|
+
}
|
11
|
+
}
|
data/profiles/rag-simple.json
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
{
|
2
|
+
"args": {
|
3
|
+
"app_path": "tailwind_hotwire",
|
4
|
+
"destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/rag"
|
5
|
+
},
|
6
|
+
"opts": {
|
7
|
+
"skip_test": true,
|
8
|
+
"template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_tailwind_hotwire.rb",
|
9
|
+
"css": "tailwind",
|
10
|
+
"javascript": "esbuild"
|
11
|
+
}
|
12
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_app_generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
@@ -146,8 +146,6 @@ files:
|
|
146
146
|
- README.md
|
147
147
|
- Rakefile
|
148
148
|
- after_templates/README.md
|
149
|
-
- after_templates/___base_template.rb
|
150
|
-
- after_templates/___r7_hotwire.rb
|
151
149
|
- after_templates/rag_bootstrap.rb
|
152
150
|
- after_templates/rag_bootstrap/application-yield.html.erb
|
153
151
|
- after_templates/rag_bootstrap/application.html.erb
|
@@ -158,11 +156,16 @@ files:
|
|
158
156
|
- after_templates/rag_bootstrap/component-cards-styled.html
|
159
157
|
- after_templates/rag_bootstrap/component-footer.html
|
160
158
|
- after_templates/rag_bootstrap/component-hero.html
|
159
|
+
- after_templates/rag_bootstrap/component-modal.html
|
161
160
|
- after_templates/rag_bootstrap/component-nav.html
|
162
161
|
- after_templates/rag_bootstrap/custom-bootstrap-import.scss
|
163
162
|
- after_templates/rag_bootstrap/custom-using-css.css
|
164
163
|
- after_templates/rag_bootstrap/custom-using-scss.scss
|
165
164
|
- after_templates/rag_bootstrap/manifest.js
|
165
|
+
- after_templates/rag_import_map.rb
|
166
|
+
- after_templates/rag_import_map/component-sortable.html
|
167
|
+
- after_templates/rag_import_map/home.css
|
168
|
+
- after_templates/rag_import_map/position_controller.js
|
166
169
|
- after_templates/rag_simple.rb
|
167
170
|
- after_templates/rag_tailwind.rb
|
168
171
|
- after_templates/rag_tailwind/component-cta.html
|
@@ -172,6 +175,11 @@ files:
|
|
172
175
|
- after_templates/rag_tailwind/component-nav.html
|
173
176
|
- after_templates/rag_tailwind/component-section-begin.html
|
174
177
|
- after_templates/rag_tailwind/component-section-end.html
|
178
|
+
- after_templates/rag_tailwind_hotwire.rb
|
179
|
+
- after_templates/rag_tailwind_hotwire/home/controller.rb
|
180
|
+
- after_templates/rag_tailwind_hotwire/home/helper.rb
|
181
|
+
- after_templates/rag_tailwind_hotwire/home/increment.html.erb
|
182
|
+
- after_templates/rag_tailwind_hotwire/home/index.html
|
175
183
|
- bin/console
|
176
184
|
- bin/setup
|
177
185
|
- docs/project-plan.md
|
@@ -207,7 +215,8 @@ files:
|
|
207
215
|
- lib/rails_app_generator/addons/views.rb
|
208
216
|
- lib/rails_app_generator/app_builder.rb
|
209
217
|
- lib/rails_app_generator/app_generator.rb
|
210
|
-
- lib/rails_app_generator/cli.rb
|
218
|
+
- lib/rails_app_generator/cli/diff.rb
|
219
|
+
- lib/rails_app_generator/cli/profile.rb
|
211
220
|
- lib/rails_app_generator/context.rb
|
212
221
|
- lib/rails_app_generator/dependencies.rb
|
213
222
|
- lib/rails_app_generator/diff/compare_info.rb
|
@@ -243,7 +252,9 @@ files:
|
|
243
252
|
- package.json
|
244
253
|
- profiles/rag-add-some-pages.json
|
245
254
|
- profiles/rag-bootstrap.json
|
255
|
+
- profiles/rag-import-map.json
|
246
256
|
- profiles/rag-simple.json
|
257
|
+
- profiles/rag-tailwind-hotwire.json
|
247
258
|
- profiles/rag-tailwind.json
|
248
259
|
- sig/rails_app_generator.rbs
|
249
260
|
- templates/README.md.erb
|
@@ -1 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
@@ -1 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
@@ -1,64 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module RailsAppGenerator
|
4
|
-
# Thor CLI
|
5
|
-
class Cli < Thor
|
6
|
-
desc 'diff lhs_folder rhs_folder [options]', 'Diff two different rails folders'
|
7
|
-
|
8
|
-
# Run report to console for following options
|
9
|
-
option :show_left_only , type: :boolean
|
10
|
-
option :show_right_only , type: :boolean
|
11
|
-
option :show_same , type: :boolean
|
12
|
-
option :show_different , type: :boolean
|
13
|
-
|
14
|
-
# Open files in VSCode for for following options
|
15
|
-
option :open_left_only , type: :boolean
|
16
|
-
option :open_right_only , type: :boolean
|
17
|
-
option :open_same , type: :boolean
|
18
|
-
option :open_different , type: :boolean
|
19
|
-
|
20
|
-
# rubocop:disable Metrics/AbcSize
|
21
|
-
def diff(lhs_folder, rhs_folder)
|
22
|
-
# puts "Diffing #{lhs_folder} and #{rhs_folder}"
|
23
|
-
# puts JSON.pretty_generate(options)
|
24
|
-
processor = RailsAppGenerator::Diff::Processor.new(lhs_folder, rhs_folder)
|
25
|
-
compare_info = processor.compare
|
26
|
-
|
27
|
-
report = RailsAppGenerator::Diff::Report.new(
|
28
|
-
compare_info,
|
29
|
-
show_left_only: options[:show_left_only],
|
30
|
-
show_right_only: options[:show_right_only],
|
31
|
-
show_same: options[:show_same],
|
32
|
-
show_different: options[:show_different]
|
33
|
-
)
|
34
|
-
report.display
|
35
|
-
|
36
|
-
vscode = RailsAppGenerator::Diff::OpenInEditor.new(
|
37
|
-
compare_info,
|
38
|
-
open_left_only: options[:open_left_only],
|
39
|
-
open_right_only: options[:open_right_only],
|
40
|
-
open_same: options[:open_same],
|
41
|
-
open_different: options[:show_different]
|
42
|
-
)
|
43
|
-
vscode.open
|
44
|
-
end
|
45
|
-
# rubocop:enable Metrics/AbcSize
|
46
|
-
|
47
|
-
# def initialize(profile_file)
|
48
|
-
# @profile_file = profile_file
|
49
|
-
# end
|
50
|
-
|
51
|
-
# def run
|
52
|
-
# puts "Using profile #{profile_file}"
|
53
|
-
|
54
|
-
# profile = JSON.parse(File.read(profile_file), symbolize_names: true)
|
55
|
-
# args = profile[:args]
|
56
|
-
# opts = profile[:opts]
|
57
|
-
# rails_options = RailsAppGenerator::RailsOptions.new(opts)
|
58
|
-
|
59
|
-
# instance = RailsAppGenerator::Starter.new(args)
|
60
|
-
# FileUtils.rm_rf(instance.target_path)
|
61
|
-
# instance.start(rails_options)
|
62
|
-
# end
|
63
|
-
end
|
64
|
-
end
|