rails_app_generator 0.1.16 → 0.1.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/generators/project-plan.rb +10 -0
  3. data/CHANGELOG.md +21 -0
  4. data/after_templates/addons/acts_as_list/app/views/home/index.html.erb +0 -12
  5. data/after_templates/addons/browser/_.rb +20 -0
  6. data/after_templates/addons/browser/app/controllers/home_controller.rb +5 -0
  7. data/after_templates/addons/browser/app/views/home/index.html.erb +103 -0
  8. data/after_templates/addons/chartkick/_.rb +58 -0
  9. data/after_templates/addons/chartkick/app/controllers/home_controller.rb +4 -0
  10. data/after_templates/addons/chartkick/app/views/home/index.html.erb +38 -0
  11. data/after_templates/addons/chartkick/app/views/layouts/_alerts.html.erb +2 -0
  12. data/after_templates/addons/chartkick/app/views/layouts/_footer.html.erb +3 -0
  13. data/after_templates/addons/chartkick/app/views/layouts/_navbar.html.erb +7 -0
  14. data/after_templates/addons/chartkick/app/views/layouts/application.html.erb +28 -0
  15. data/after_templates/addons/chartkick/app/views/people/_person.html.erb +6 -0
  16. data/after_templates/addons/chartkick/config/initializers/chartkick.rb +1 -0
  17. data/after_templates/addons/chartkick/db/seeds.rb +17 -0
  18. data/docs/project-plan/project.drawio +64 -37
  19. data/docs/project-plan/project_done.svg +1 -1
  20. data/docs/project-plan/project_todo.svg +1 -1
  21. data/lib/rails_app_generator/add_on.rb +16 -5
  22. data/lib/rails_app_generator/addons/browser.rb +13 -0
  23. data/lib/rails_app_generator/addons/chartkick.rb +40 -0
  24. data/lib/rails_app_generator/addons/faker.rb +1 -10
  25. data/lib/rails_app_generator/addons/groupdate.rb +31 -0
  26. data/lib/rails_app_generator/app_generator.rb +41 -2
  27. data/lib/rails_app_generator/options/rails_options.rb +3 -0
  28. data/lib/rails_app_generator/version.rb +1 -1
  29. data/package-lock.json +2 -2
  30. data/package.json +1 -1
  31. data/profiles/addons/browser.json +12 -0
  32. data/profiles/addons/chartkick.json +14 -0
  33. data/templates/thor_task/addon/addon.tt +9 -1
  34. data/templates/thor_task/profile/app/views/home/index.html.erb.tt +0 -12
  35. data/templates/thor_task/profile/app/views/layouts/_navbar.html.erb +4 -4
  36. metadata +20 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4678312f0c3daef59040ffdff420854a8830450683873c7543d9738634ac185
4
- data.tar.gz: 3db0da5693679fb06ab7958d10379805419cd55e8c190668d9d0888a312db152
3
+ metadata.gz: 58eda777a093e8b1984c349173a33adb87df19b61c0b09413ae9aad098fb2c1b
4
+ data.tar.gz: 2eda255d5d1d296a6828b10196c50e9be59221d364d80cf5a4b4bf72f889141e
5
5
  SHA512:
6
- metadata.gz: e6a6cc4fc9d402061464492e6853973aaa727131f972116827582b07b24d248a605efd763395e1b8c47869734b0ac73f0525a29ff47ef519b521a66b923fcbe1
7
- data.tar.gz: 9063b3dac614fcd9798103919adb62a99b9cb3cf9ca58b9bacbeb2c0002a1f385425e48e462b4b627fb50888e6cd382ea601bee787c85b920acb6b45f6c7602e
6
+ metadata.gz: 5d514deb8bd877567f1e071398df52d2bf7f96cb2fc349d709319ebd1475278008ff12c28b1624b5ea8502522e82174f9d49e6c06cb01e8e0b0ae9580be81fe8
7
+ data.tar.gz: 8778a30c75cee4daa2eb5af29cc37d89c3a02b3cd94f824fb5dbc14431d8a50d3adea81f76f30cf020f21d242337b69ca8ecf39d58740225cdb610e77dcb1e99
@@ -34,6 +34,16 @@ KManager.action :project_plan do
34
34
 
35
35
  grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
36
36
 
37
+ todo(title: 'add addon - groupdate')
38
+ todo(title: 'add addon - chartkick')
39
+ todo(title: 'add addon - browser')
40
+ todo(title: 'add addon - faker')
41
+ todo(title: 'add addon - acts_as_list')
42
+ todo(title: 'add addon - twilio')
43
+ todo(title: 'add addon - honeybadger')
44
+
45
+
46
+ todo(title: 'add profile - rails-html-sanitizer')
37
47
  todo(title: 'add profile - tailwind-emulating-bootstrap')
38
48
  todo(title: 'add profile - tailwind-hotwire-form-search')
39
49
  todo(title: 'add profile - tailwind-hotwire-form')
data/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## [0.1.18](https://github.com/klueless-io/rails_app_generator/compare/v0.1.17...v0.1.18) (2022-08-06)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * addon chartkick and groupdate ([f3dd173](https://github.com/klueless-io/rails_app_generator/commit/f3dd1736ac4e2cacb87314b9f5703a45a70e102c))
7
+
8
+ ## [0.1.17](https://github.com/klueless-io/rails_app_generator/compare/v0.1.16...v0.1.17) (2022-08-05)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * addon browser ([a1fae1d](https://github.com/klueless-io/rails_app_generator/commit/a1fae1d3ee5e5ecabe53fb5ac60d8067477f39b1))
14
+
15
+ ## [0.1.16](https://github.com/klueless-io/rails_app_generator/compare/v0.1.15...v0.1.16) (2022-08-05)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * addon faker ([0c61f17](https://github.com/klueless-io/rails_app_generator/commit/0c61f17dbff15dcfc2f9d3851601cbdddde4d207))
21
+
1
22
  ## [0.1.15](https://github.com/klueless-io/rails_app_generator/compare/v0.1.14...v0.1.15) (2022-08-04)
2
23
 
3
24
 
@@ -9,15 +9,3 @@
9
9
  <h1>Acts as list</h1>
10
10
 
11
11
  <h2>This "acts_as" extension provides the capabilities for sorting and reordering a number of objects in a list. The class that has this specified needs to have a "position" column defined as an integer on the mapped database table.</h2>
12
-
13
- <!--
14
- Add/Remove as needed
15
- -->
16
-
17
- <!--
18
- <= link_to 'Some Action', home_some_action_path %>
19
-
20
- <= link_to 'Products', products_path %> |
21
- <= link_to 'Posts', posts_path %> |
22
- <= link_to 'People', people_path %>
23
- -->
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ # require 'pry'
4
+
5
+ # Do some browser detection with Ruby.
6
+ #
7
+ # exe/rag addons/browser
8
+
9
+ self.local_template_path = File.dirname(__FILE__)
10
+
11
+ gac 'base rails 7 image created'
12
+
13
+ add_controller('home', 'index')
14
+ route("root 'home#index'")
15
+
16
+ force_copy
17
+
18
+ copy_file 'app/controllers/home_controller.rb' , 'app/controllers/home_controller.rb'
19
+ copy_file 'app/views/home/index.html.erb' , 'app/views/home/index.html.erb'
20
+
@@ -0,0 +1,5 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ @browser = Browser.new(request.user_agent, accept_language: "en-us")
4
+ end
5
+ end
@@ -0,0 +1,103 @@
1
+ <h1>Browser</h1>
2
+
3
+ <h2>Do some browser detection with Ruby.</h2>
4
+
5
+ <ul>
6
+ <li><code>browser.bot?</code> <%= browser.bot? %>
7
+ <li><code>browser.chrome?</code> <%= browser.chrome? %>
8
+ <li><code>browser.core_media?</code> <%= browser.core_media? %>
9
+ <li><code>browser.duck_duck_go?</code> <%= browser.duck_duck_go? %>
10
+ <li><code>browser.edge?</code> <%= browser.edge? %>
11
+ <li><code>browser.electron?</code> <%= browser.electron? %>
12
+ <li><code>browser.firefox?</code> <%= browser.firefox? %>
13
+ <li><code>browser.full_version</code> <%= browser.full_version %>
14
+ <li><code>browser.ie?</code> <%= browser.ie? %>
15
+ <li><code>browser.known?</code> <%= browser.known? %>
16
+ <li><code>browser.unknown?</code> <%= browser.unknown? %>
17
+ <li><code>browser.meta</code> <%= browser.meta %>
18
+ <li><code>browser.name</code> <%= browser.name %>
19
+ <li><code>browser.nokia?</code> <%= browser.nokia? %>
20
+ <li><code>browser.opera?</code> <%= browser.opera? %>
21
+ <li><code>browser.opera_mini?</code> <%= browser.opera_mini? %>
22
+ <li><code>browser.phantom_js?</code> <%= browser.phantom_js? %>
23
+ <li><code>browser.quicktime?</code> <%= browser.quicktime? %>
24
+ <li><code>browser.safari?</code> <%= browser.safari? %>
25
+ <li><code>browser.safari_webapp_mode?</code> <%= browser.safari_webapp_mode? %>
26
+ <li><code>browser.samsung_browser?</code> <%= browser.samsung_browser? %>
27
+ <li><code>browser.to_s</code> <%= browser.to_s %>
28
+ <li><code>browser.uc_browser?</code> <%= browser.uc_browser? %>
29
+ <li><code>browser.version</code> <%= browser.version %>
30
+ <li><code>browser.webkit?</code> <%= browser.webkit? %>
31
+ <li><code>browser.webkit_full_version</code> <%= browser.webkit_full_version %>
32
+ <li><code>browser.yandex?</code> <%= browser.yandex? %>
33
+ <li><code>browser.wechat?</code> <%= browser.wechat? %>
34
+ <li><code>browser.qq?</code> <%= browser.qq? %>
35
+ <li><code>browser.weibo?</code> <%= browser.weibo? %>
36
+ <li><code>browser.sputnik?</code> <%= browser.sputnik? %>
37
+ <li><code>browser.sougou_browser?</code> <%= browser.sougou_browser? %>
38
+ <li><code>browser.bot.name</code> <%= browser.bot.name %>
39
+ <li><code>browser.bot.search_engine?</code> <%= browser.bot.search_engine? %>
40
+ <li><code>browser.bot?</code> <%= browser.bot? %>
41
+ <li><code>browser.bot.why? </code> <%= browser.bot.why? %>
42
+ <li><code>browser.device</code> <%= browser.device %>
43
+ <li><code>browser.device.id</code> <%= browser.device.id %>
44
+ <li><code>browser.device.name</code> <%= browser.device.name %>
45
+ <li><code>browser.device.unknown?</code> <%= browser.device.unknown? %>
46
+ <li><code>browser.device.blackberry_playbook?</code> <%= browser.device.blackberry_playbook? %>
47
+ <li><code>browser.device.console?</code> <%= browser.device.console? %>
48
+ <li><code>browser.device.ipad?</code> <%= browser.device.ipad? %>
49
+ <li><code>browser.device.iphone?</code> <%= browser.device.iphone? %>
50
+ <li><code>browser.device.ipod_touch?</code> <%= browser.device.ipod_touch? %>
51
+ <li><code>browser.device.kindle?</code> <%= browser.device.kindle? %>
52
+ <li><code>browser.device.kindle_fire?</code> <%= browser.device.kindle_fire? %>
53
+ <li><code>browser.device.mobile?</code> <%= browser.device.mobile? %>
54
+ <li><code>browser.device.nintendo?</code> <%= browser.device.nintendo? %>
55
+ <li><code>browser.device.playstation?</code> <%= browser.device.playstation? %>
56
+ <li><code>browser.device.ps3?</code> <%= browser.device.ps3? %>
57
+ <li><code>browser.device.ps4?</code> <%= browser.device.ps4? %>
58
+ <li><code>browser.device.psp?</code> <%= browser.device.psp? %>
59
+ <li><code>browser.device.silk?</code> <%= browser.device.silk? %>
60
+ <li><code>browser.device.surface?</code> <%= browser.device.surface? %>
61
+ <li><code>browser.device.tablet?</code> <%= browser.device.tablet? %>
62
+ <li><code>browser.device.tv?</code> <%= browser.device.tv? %>
63
+ <li><code>browser.device.vita?</code> <%= browser.device.vita? %>
64
+ <li><code>browser.device.wii?</code> <%= browser.device.wii? %>
65
+ <li><code>browser.device.wiiu?</code> <%= browser.device.wiiu? %>
66
+ <li><code>browser.device.samsung?</code> <%= browser.device.samsung? %>
67
+ <li><code>browser.device.switch?</code> <%= browser.device.switch? %>
68
+ <li><code>browser.device.xbox?</code> <%= browser.device.xbox? %>
69
+ <li><code>browser.device.xbox_360?</code> <%= browser.device.xbox_360? %>
70
+ <li><code>browser.device.xbox_one?</code> <%= browser.device.xbox_one? %>
71
+ <li><code>browser.platform</code> <%= browser.platform %>
72
+ <li><code>browser.platform.id</code> <%= browser.platform.id %>
73
+ <li><code>browser.platform.name</code> <%= browser.platform.name %>
74
+ <li><code>browser.platform.version</code> <%= browser.platform.version %>
75
+ <li><code>browser.platform.adobe_air?</code> <%= browser.platform.adobe_air? %>
76
+ <li><code>browser.platform.android?</code> <%= browser.platform.android? %>
77
+ <li><code>browser.platform.blackberry?</code> <%= browser.platform.blackberry? %>
78
+ <li><code>browser.platform.blackberry?(10) </code> <%= browser.platform.blackberry?(10) %>
79
+ <li><code>browser.platform.chrome_os?</code> <%= browser.platform.chrome_os? %>
80
+ <li><code>browser.platform.firefox_os?</code> <%= browser.platform.firefox_os? %>
81
+ <li><code>browser.platform.ios?</code> <%= browser.platform.ios? %>
82
+ <li><code>browser.platform.ios?(9)</code> <%= browser.platform.ios?(9) %>
83
+ <li><code>browser.platform.ios_app? </code> <%= browser.platform.ios_app? %>
84
+ <li><code>browser.platform.ios_webview? </code> <%= browser.platform.ios_webview? %>
85
+ <li><code>browser.platform.linux?</code> <%= browser.platform.linux? %>
86
+ <li><code>browser.platform.mac?</code> <%= browser.platform.mac? %>
87
+ <li><code>browser.platform.unknown?</code> <%= browser.platform.unknown? %>
88
+ <li><code>browser.platform.windows10?</code> <%= browser.platform.windows10? %>
89
+ <li><code>browser.platform.windows7?</code> <%= browser.platform.windows7? %>
90
+ <li><code>browser.platform.windows8?</code> <%= browser.platform.windows8? %>
91
+ <li><code>browser.platform.windows8_1?</code> <%= browser.platform.windows8_1? %>
92
+ <li><code>browser.platform.windows?</code> <%= browser.platform.windows? %>
93
+ <li><code>browser.platform.windows_mobile?</code> <%= browser.platform.windows_mobile? %>
94
+ <li><code>browser.platform.windows_phone?</code> <%= browser.platform.windows_phone? %>
95
+ <li><code>browser.platform.windows_rt?</code> <%= browser.platform.windows_rt? %>
96
+ <li><code>browser.platform.windows_touchscreen_desktop?</code> <%= browser.platform.windows_touchscreen_desktop? %>
97
+ <li><code>browser.platform.windows_vista?</code> <%= browser.platform.windows_vista? %>
98
+ <li><code>browser.platform.windows_wow64?</code> <%= browser.platform.windows_wow64? %>
99
+ <li><code>browser.platform.windows_x64?</code> <%= browser.platform.windows_x64? %>
100
+ <li><code>browser.platform.windows_x64_inclusive?</code> <%= browser.platform.windows_x64_inclusive? %>
101
+ <li><code>browser.platform.windows_xp?</code> <%= browser.platform.windows_xp? %>
102
+ <li><code>browser.platform.kai_os?</code> <%= browser.platform.kai_os? %>
103
+ </ul>
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ # require 'pry'
4
+
5
+ # Create beautiful JavaScript charts with one line of Ruby
6
+ #
7
+ # exe/rag addons/chartkick
8
+
9
+ self.local_template_path = File.dirname(__FILE__)
10
+
11
+ gac 'base rails 7 image created'
12
+
13
+ add_controller('home', 'index')
14
+ route("root 'home#index'")
15
+
16
+ force_copy
17
+
18
+ copy_file 'app/controllers/home_controller.rb' , 'app/controllers/home_controller.rb'
19
+ copy_file 'app/views/home/index.html.erb' , 'app/views/home/index.html.erb'
20
+
21
+ copy_file 'app/views/layouts/_alerts.html.erb' , 'app/views/layouts/_alerts.html.erb'
22
+ copy_file 'app/views/layouts/_navbar.html.erb' , 'app/views/layouts/_navbar.html.erb'
23
+ copy_file 'app/views/layouts/_footer.html.erb' , 'app/views/layouts/_footer.html.erb'
24
+ template 'app/views/layouts/application.html.erb' , 'app/views/layouts/application.html.erb'
25
+
26
+ template 'db/seeds.rb' , 'db/seeds.rb'
27
+
28
+ copy_file 'config/initializers/chartkick.rb' , 'config/initializers/chartkick.rb'
29
+
30
+ after_bundle do
31
+ setup_db
32
+ db_seed
33
+ end
34
+
35
+ def setup_db
36
+ add_scaffold('yogurt', 'flavour')
37
+ # add_scaffold('post', 'title', 'body:text')
38
+ add_scaffold('people', 'name')
39
+ copy_file 'app/views/people/_person.html.erb' , 'app/views/people/_person.html.erb'
40
+
41
+ # add_scaffold('product', 'name', 'price:integer')
42
+
43
+ db_migrate
44
+ end
45
+
46
+ # Other template command examples
47
+ # css_install('tailwind')
48
+ # rails_command('db:migrate')
49
+ # bundle_add('hotwire-rails')
50
+ # rails_command('hotwire:install')
51
+ # run('bin/importmap pin sortablejs')
52
+ # run('npm install daisyui')
53
+ # create_file 'app/assets/stylesheets/custom-bootstrap-import.scss' , read_template('custom-bootstrap-import.scss')
54
+ # append_to_file 'app/assets/config/manifest.js' , read_template('manifest.js')
55
+ # insert_into_file 'app/views/layouts/application.html.erb', read_template('application.html.erb'),
56
+ # before: %( <%= javascript_include_tag "application", "data-turbo-track": "reload", defer: true %>)
57
+ # gsub_file 'app/views/layouts/application.html.erb', %(container mx-auto mt-28 px-5 flex), 'container mx-auto px-5'
58
+ # template 'home.css', 'app/assets/stylesheets/home.css'
@@ -0,0 +1,4 @@
1
+ class HomeController < ApplicationController
2
+ def index
3
+ end
4
+ end
@@ -0,0 +1,38 @@
1
+ <style>
2
+ .alert { color: red; }
3
+ .notice { color: green; }
4
+ </style>
5
+
6
+ <% flash.each do |type, msg| %><div class="<%= type %>"><%= msg %></div><% end %>
7
+ <% if flash.any? %><hr /><% end %>
8
+
9
+ <h1>Chartkick</h1>
10
+
11
+ <h2>Create beautiful JavaScript charts with one line of Ruby</h2>
12
+
13
+ <p>
14
+ <a href="https://chartkick.com/">Chartkick</a> is a simple, yet powerful library for creating beautiful charts with one line of Ruby.
15
+ It is built on top of the <a href="http://www.chartjs.org/">Chart.js</a> library.</p>
16
+
17
+ <h3>Line Chart</h3><br /><br />
18
+ <%= line_chart Person.group_by_day(:updated_at).count %>
19
+
20
+ <br /><br />
21
+ <h3>Pie Chart via Query</h3><br /><br />
22
+ <%= pie_chart Yogurt.group(:flavour).count %>
23
+
24
+ <h3>Pie Chart (Manual)</h3><br /><br />
25
+
26
+ <%= pie_chart [
27
+ ['Task', 'Hours per Day'],
28
+ ['Work',11],
29
+ ['Eat',2],
30
+ ['Commute',2],
31
+ ['Watch TV', 2],
32
+ ['Sleep',7]
33
+ ]
34
+ %>
35
+
36
+ <h3>Column Chart</h3><br /><br />
37
+
38
+ <%= column_chart Person.group_by_hour_of_day(:updated_at, format: "%l %P").count %>
@@ -0,0 +1,2 @@
1
+ <% flash.each do |type, msg| %><div class="<%= type %>"><%= msg %></div><% end %>
2
+ <% if flash.any? %><hr /><% end %>
@@ -0,0 +1,3 @@
1
+ <footer>
2
+ <hr />
3
+ </footer>
@@ -0,0 +1,7 @@
1
+ <header>
2
+ <%= link_to 'Home', root_path %> |
3
+ <%= link_to 'Yogurt', yogurts_path %> |
4
+ <%# link_to 'Posts', posts_path %> |
5
+ <%= link_to 'People', people_path %>
6
+ <hr />
7
+ </header>
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= camelized %></title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <%%= csrf_meta_tags %>
7
+ <%%= csp_meta_tag %>
8
+
9
+ <%- if options[:skip_hotwire] || options[:skip_javascript] -%>
10
+ <%%= stylesheet_link_tag "application" %>
11
+ <%- else -%>
12
+ <%%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
13
+ <%- end -%>
14
+ <style>
15
+ .alert { color: red; }
16
+ .notice { color: green; }
17
+ </style>
18
+ </head>
19
+
20
+ <body>
21
+ <%%= render 'layouts/navbar' %>
22
+ <main>
23
+ <%%= render 'layouts/alerts' %>
24
+ <%%= yield %>
25
+ </main>
26
+ <%%= render 'layouts/footer' %>
27
+ </body>
28
+ </html>
@@ -0,0 +1,6 @@
1
+ <div id="<%= dom_id person %>">
2
+ <p>
3
+ <strong>Name:</strong>
4
+ <%= person.name %> - <%= person.updated_at %>
5
+ </p>
6
+ </div>
@@ -0,0 +1 @@
1
+ # Custom initializer for rails application
@@ -0,0 +1,17 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup).
3
+ #
4
+ # User.find_or_create_by(email: "admin@admin.com") do |user|
5
+ # user.name = 'Admin'
6
+ # user.password = 'password'
7
+ # user.admin = true
8
+ # end
9
+
10
+ flavours = %w[Blueberry Strawberry Banana Raspberry Apple Grape]
11
+ 50.times do
12
+ Yogurt.create(flavour: flavours.sample)
13
+ end
14
+ 50.times do
15
+ person = Person.create(name: Faker::Name.name)
16
+ person.update!(updated_at: Faker::Time.between_dates(from: 20.days.ago, to: Date.today, period: :day) + 10.hours)
17
+ end
@@ -1,106 +1,133 @@
1
- <mxfile host="wXn">
2
- <diagram id="cPt" name="In progress">
1
+ <mxfile host="3qK">
2
+ <diagram id="OFV" 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="page_root_cPt" parent="cPt"/>
6
- <mxCell id="node_root_cPt" parent="page_root_cPt"/>
7
- <mxCell id="cPt-2" value="add profile - rag_tailwind_hotwire_flash" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_cPt">
5
+ <mxCell id="page_root_OFV" parent="OFV"/>
6
+ <mxCell id="node_root_OFV" parent="page_root_OFV"/>
7
+ <mxCell id="OFV-2" value="add profile - rag_tailwind_hotwire_flash" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_OFV">
8
8
  <mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
9
9
  </mxCell>
10
10
  </root>
11
11
  </mxGraphModel>
12
12
  </diagram>
13
- <diagram id="mGU" name="To Do">
13
+ <diagram id="KyR" name="To Do">
14
14
  <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
15
  <root>
16
- <mxCell id="page_root_mGU" parent="mGU"/>
17
- <mxCell id="node_root_mGU" parent="page_root_mGU"/>
18
- <mxCell id="mGU-2" value="generator for new profiles" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
16
+ <mxCell id="page_root_KyR" parent="KyR"/>
17
+ <mxCell id="node_root_KyR" parent="page_root_KyR"/>
18
+ <mxCell id="KyR-2" value="generator for new profiles" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
19
19
  <mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
20
20
  </mxCell>
21
- <mxCell id="mGU-3" 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_mGU">
21
+ <mxCell id="KyR-3" value="look at the sample tailwind pages in P7 and turn them into an addon" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
22
22
  <mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
23
23
  </mxCell>
24
- <mxCell id="mGU-4" value="add profile - stimulas" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
24
+ <mxCell id="KyR-4" 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_KyR">
25
25
  <mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
26
26
  </mxCell>
27
- <mxCell id="mGU-5" value="add profile - hotwire" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
27
+ <mxCell id="KyR-5" value="add profile - stimulas" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
28
28
  <mxGeometry x="10" y="90" width="300" height="60" as="geometry"/>
29
29
  </mxCell>
30
- <mxCell id="mGU-6" value="add profile - turbo" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
30
+ <mxCell id="KyR-6" value="add profile - hotwire" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
31
31
  <mxGeometry x="330" y="90" width="300" height="60" as="geometry"/>
32
32
  </mxCell>
33
- <mxCell id="mGU-7" value="add profile - vue" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
33
+ <mxCell id="KyR-7" value="add profile - turbo" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
34
34
  <mxGeometry x="650" y="90" width="300" height="60" as="geometry"/>
35
35
  </mxCell>
36
- <mxCell id="mGU-8" value="add profile - svelte" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
36
+ <mxCell id="KyR-8" value="add profile - vue" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
37
37
  <mxGeometry x="10" y="170" width="300" height="60" as="geometry"/>
38
38
  </mxCell>
39
- <mxCell id="mGU-9" value="add profile - react" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
39
+ <mxCell id="KyR-9" value="add profile - svelte" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
40
40
  <mxGeometry x="330" y="170" width="300" height="60" as="geometry"/>
41
41
  </mxCell>
42
- <mxCell id="mGU-10" value="add profile - vite" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
42
+ <mxCell id="KyR-10" value="add profile - react" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
43
43
  <mxGeometry x="650" y="170" width="300" height="60" as="geometry"/>
44
44
  </mxCell>
45
- <mxCell id="mGU-11" value="add profile - docker" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
45
+ <mxCell id="KyR-11" value="add profile - vite" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
46
46
  <mxGeometry x="10" y="250" width="300" height="60" as="geometry"/>
47
47
  </mxCell>
48
- <mxCell id="mGU-12" value="add encryption" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_mGU">
48
+ <mxCell id="KyR-12" value="add profile - docker" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
49
49
  <mxGeometry x="330" y="250" width="300" height="60" as="geometry"/>
50
50
  </mxCell>
51
- <mxCell id="mGU-13" 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_mGU">
51
+ <mxCell id="KyR-13" value="add encryption" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_KyR">
52
52
  <mxGeometry x="650" y="250" width="300" height="60" as="geometry"/>
53
53
  </mxCell>
54
- <mxCell id="mGU-14" 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_mGU">
54
+ <mxCell id="KyR-14" 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_KyR">
55
55
  <mxGeometry x="10" y="330" width="300" height="60" as="geometry"/>
56
56
  </mxCell>
57
- <mxCell id="mGU-15" 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_mGU">
57
+ <mxCell id="KyR-15" 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_KyR">
58
58
  <mxGeometry x="330" y="330" width="300" height="60" as="geometry"/>
59
59
  </mxCell>
60
+ <mxCell id="KyR-16" 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_KyR">
61
+ <mxGeometry x="650" y="330" width="300" height="60" as="geometry"/>
62
+ </mxCell>
60
63
  </root>
61
64
  </mxGraphModel>
62
65
  </diagram>
63
- <diagram id="2N0" name="Done">
66
+ <diagram id="1sE" name="Done">
64
67
  <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">
65
68
  <root>
66
- <mxCell id="page_root_2N0" parent="2N0"/>
67
- <mxCell id="node_root_2N0" parent="page_root_2N0"/>
68
- <mxCell id="2N0-2" value="add profile - tailwind-emulating-bootstrap" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_2N0">
69
+ <mxCell id="page_root_1sE" parent="1sE"/>
70
+ <mxCell id="node_root_1sE" parent="page_root_1sE"/>
71
+ <mxCell id="1sE-2" value="add addon - groupdate" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
69
72
  <mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
70
73
  </mxCell>
71
- <mxCell id="2N0-3" value="add profile - tailwind-hotwire-form-search" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_2N0">
74
+ <mxCell id="1sE-3" value="add addon - chartkick" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
72
75
  <mxGeometry x="330" y="10" width="300" height="60" as="geometry"/>
73
76
  </mxCell>
74
- <mxCell id="2N0-4" value="add profile - tailwind-hotwire-form" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_2N0">
77
+ <mxCell id="1sE-4" value="add addon - browser" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
75
78
  <mxGeometry x="650" y="10" width="300" height="60" as="geometry"/>
76
79
  </mxCell>
77
- <mxCell id="2N0-5" 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_2N0">
80
+ <mxCell id="1sE-5" value="add addon - faker" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
78
81
  <mxGeometry x="10" y="90" width="300" height="60" as="geometry"/>
79
82
  </mxCell>
80
- <mxCell id="2N0-6" 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_2N0">
83
+ <mxCell id="1sE-6" value="add addon - acts_as_list" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
81
84
  <mxGeometry x="330" y="90" width="300" height="60" as="geometry"/>
82
85
  </mxCell>
83
- <mxCell id="2N0-7" 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_2N0">
86
+ <mxCell id="1sE-7" value="add addon - twilio" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
84
87
  <mxGeometry x="650" y="90" width="300" height="60" as="geometry"/>
85
88
  </mxCell>
86
- <mxCell id="2N0-8" 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_2N0">
89
+ <mxCell id="1sE-8" value="add addon - honeybadger" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
87
90
  <mxGeometry x="10" y="170" width="300" height="60" as="geometry"/>
88
91
  </mxCell>
89
- <mxCell id="2N0-9" 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_2N0">
92
+ <mxCell id="1sE-9" value="add profile - rails-html-sanitizer" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
90
93
  <mxGeometry x="330" y="170" width="300" height="60" as="geometry"/>
91
94
  </mxCell>
92
- <mxCell id="2N0-10" 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_2N0">
95
+ <mxCell id="1sE-10" value="add profile - tailwind-emulating-bootstrap" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
93
96
  <mxGeometry x="650" y="170" width="300" height="60" as="geometry"/>
94
97
  </mxCell>
95
- <mxCell id="2N0-11" 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_2N0">
98
+ <mxCell id="1sE-11" value="add profile - tailwind-hotwire-form-search" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
96
99
  <mxGeometry x="10" y="250" width="300" height="60" as="geometry"/>
97
100
  </mxCell>
98
- <mxCell id="2N0-12" 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_2N0">
101
+ <mxCell id="1sE-12" value="add profile - tailwind-hotwire-form" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#f8cecc;strokeColor=#b85450;fontColor=#333333" vertex="1" parent="node_root_1sE">
99
102
  <mxGeometry x="330" y="250" width="300" height="60" as="geometry"/>
100
103
  </mxCell>
101
- <mxCell id="2N0-13" 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_2N0">
104
+ <mxCell id="1sE-13" 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_1sE">
102
105
  <mxGeometry x="650" y="250" width="300" height="60" as="geometry"/>
103
106
  </mxCell>
107
+ <mxCell id="1sE-14" 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_1sE">
108
+ <mxGeometry x="10" y="330" width="300" height="60" as="geometry"/>
109
+ </mxCell>
110
+ <mxCell id="1sE-15" 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_1sE">
111
+ <mxGeometry x="330" y="330" width="300" height="60" as="geometry"/>
112
+ </mxCell>
113
+ <mxCell id="1sE-16" 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_1sE">
114
+ <mxGeometry x="650" y="330" width="300" height="60" as="geometry"/>
115
+ </mxCell>
116
+ <mxCell id="1sE-17" 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_1sE">
117
+ <mxGeometry x="10" y="410" width="300" height="60" as="geometry"/>
118
+ </mxCell>
119
+ <mxCell id="1sE-18" 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_1sE">
120
+ <mxGeometry x="330" y="410" width="300" height="60" as="geometry"/>
121
+ </mxCell>
122
+ <mxCell id="1sE-19" 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_1sE">
123
+ <mxGeometry x="650" y="410" width="300" height="60" as="geometry"/>
124
+ </mxCell>
125
+ <mxCell id="1sE-20" 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_1sE">
126
+ <mxGeometry x="10" y="490" width="300" height="60" as="geometry"/>
127
+ </mxCell>
128
+ <mxCell id="1sE-21" 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_1sE">
129
+ <mxGeometry x="330" y="490" width="300" height="60" as="geometry"/>
130
+ </mxCell>
104
131
  </root>
105
132
  </mxGraphModel>
106
133
  </diagram>