rails_app_generator 0.1.16 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>