rails_app_generator 0.0.9 → 0.0.12

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb8e4527b8ed4718b6e87844e6bf5f531b3747fd98e4ea0d6b9a00a362a6e690
4
- data.tar.gz: 5ce9f0b4ca298a820ab8bdfd4cff8947163230fb2548b40a2e6432506fe43fd4
3
+ metadata.gz: 0470af9a31da0f8b53b53c9fb7f4dbe832ecd8d778adea006047d933e17e056f
4
+ data.tar.gz: b4889acbaaaa9fb37af410fedd68a3368213e40efdf7af72d81d47b28a6ec7a2
5
5
  SHA512:
6
- metadata.gz: 32689a628daeebed93c2e415d71fe9ed68adcce3737c55a55ad2966a378125dd22dc948f1c46325aa992c0f2bb7ba1fc37d0560f47dd385e094dbe5e2f63d9e2
7
- data.tar.gz: c3094d0c0384107b80ffe00b766a51e6c72b43135bdf298b3c0b3b524aa9aff3729cfe9a1b9d38886d5542a8a090ca7ce0708be0d3f03d09d5a7968a53e407e1
6
+ metadata.gz: d1de0b5079f06786e8872ee9302fb25a020c58d6c5b82b82759800c439c48627f32fd3db642a7fcc1b1df821fdc97385b951824248ca6da9d87cebc24d86deed
7
+ data.tar.gz: 7e885bdbf52d97ef963a45a57cca5f4ff557434ba0c93dd5699bfe69d60329257901bf07f22bd381ecb10ef8f50b45a2d9d1c0c5a40a8c0e2d1188a775f50c2f
@@ -10,20 +10,17 @@ KManager.action :project_plan do
10
10
 
11
11
  grid_layout(y: 90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
12
12
 
13
- todo(title: '')
13
+ todo(title: 'add diff tool open in vscode option')
14
14
  end
15
15
  .page('To Do', theme: :style_02, margin_left: 0, margin_top: 0) do
16
16
 
17
17
  # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
18
18
  # p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan')
19
19
 
20
- todo(title: 'add diff tool with support')
21
- todo(title: 'add diff tool left hand side only option')
22
- todo(title: 'add diff tool right hand side only option')
23
- todo(title: 'add diff tool lhs/rhs differences')
24
- todo(title: 'add diff tool open in vscode option')
25
- todo(title: 'rag new should work like rails new')
26
- todo(title: 'rag profile is the default option')
20
+ todo(title: 'cli support for diff')
21
+ todo(title: 'cli support for profile')
22
+ todo(title: 'cli support for rails new (rag new should work like rails new) - buggy, need to work through')
23
+ todo(title: 'need an option for deleting target project path') # FileUtils.rm_rf(instance.target_path)
27
24
 
28
25
  grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
29
26
 
@@ -33,6 +30,7 @@ KManager.action :project_plan do
33
30
  # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
34
31
  # p(x: 350, y: 40, w: 400, h: 80, title: 'Done')
35
32
 
33
+ todo(title: 'add diff tool supporting lhs only, rhs only, same and different')
36
34
  todo(title: 'add project plan to do list')
37
35
 
38
36
  grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
data/CHANGELOG.md CHANGED
@@ -1,3 +1,26 @@
1
+ ## [0.0.11](https://github.com/klueless-io/rails_app_generator/compare/v0.0.10...v0.0.11) (2022-07-25)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add support for FilePairs in diff tool ([e330e1c](https://github.com/klueless-io/rails_app_generator/commit/e330e1c3db06ac2710893a3909f36af290727b57))
7
+
8
+ ## [0.0.10](https://github.com/klueless-io/rails_app_generator/compare/v0.0.9...v0.0.10) (2022-07-25)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * add diff processor ([edd86a3](https://github.com/klueless-io/rails_app_generator/commit/edd86a3657ec83c566f84cd965820d780a2a1c43))
14
+ * fix gha specs ([6ae95de](https://github.com/klueless-io/rails_app_generator/commit/6ae95de2e53e77590375c3a9863a78744b38fa30))
15
+ * fix gha specs ([c7504f9](https://github.com/klueless-io/rails_app_generator/commit/c7504f97ddf25011a887b7b6ec4b0235e6dbd16d))
16
+
17
+ ## [0.0.9](https://github.com/klueless-io/rails_app_generator/compare/v0.0.8...v0.0.9) (2022-07-24)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * add project plan ([1c47e0f](https://github.com/klueless-io/rails_app_generator/commit/1c47e0fa82b7b184d63fab8c2363416587d4c66d))
23
+
1
24
  ## [0.0.8](https://github.com/klueless-io/rails_app_generator/compare/v0.0.7...v0.0.8) (2022-07-24)
2
25
 
3
26
 
@@ -1,53 +1,47 @@
1
- <mxfile host="aLZ">
2
- <diagram id="pvH" name="In progress">
1
+ <mxfile host="x0A">
2
+ <diagram id="Oq8" 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_pvH" parent="pvH"/>
6
- <mxCell id="node_root_pvH" parent="page_root_pvH"/>
7
- <mxCell id="pvH-1" value="DrawIO DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fontColor=#1F2D3D;text;fontSize=28;fontStyle=1;fillColor=none" vertex="1" parent="node_root_pvH">
5
+ <mxCell id="page_root_Oq8" parent="Oq8"/>
6
+ <mxCell id="node_root_Oq8" parent="page_root_Oq8"/>
7
+ <mxCell id="Oq8-1" value="DrawIO DSL" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fontColor=#1F2D3D;text;fontSize=28;fontStyle=1;fillColor=none" vertex="1" parent="node_root_Oq8">
8
8
  <mxGeometry x="300" y="0" width="400" height="80" as="geometry"/>
9
9
  </mxCell>
10
- <mxCell id="pvH-3" value="" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_pvH">
10
+ <mxCell id="Oq8-3" value="add diff tool open in vscode option" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#333333" vertex="1" parent="node_root_Oq8">
11
11
  <mxGeometry x="10" y="10" width="300" height="60" as="geometry"/>
12
12
  </mxCell>
13
13
  </root>
14
14
  </mxGraphModel>
15
15
  </diagram>
16
- <diagram id="U3w" name="To Do">
16
+ <diagram id="Ip4" name="To Do">
17
17
  <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">
18
18
  <root>
19
- <mxCell id="page_root_U3w" parent="U3w"/>
20
- <mxCell id="node_root_U3w" parent="page_root_U3w"/>
21
- <mxCell id="U3w-1" value="add diff tool with support" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_U3w">
19
+ <mxCell id="page_root_Ip4" parent="Ip4"/>
20
+ <mxCell id="node_root_Ip4" parent="page_root_Ip4"/>
21
+ <mxCell id="Ip4-1" value="cli support for diff" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_Ip4">
22
22
  <mxGeometry x="0" y="0" width="300" height="60" as="geometry"/>
23
23
  </mxCell>
24
- <mxCell id="U3w-2" value="add diff tool left hand side only option" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_U3w">
24
+ <mxCell id="Ip4-2" value="cli support for profile" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_Ip4">
25
25
  <mxGeometry x="0" y="0" width="300" height="60" as="geometry"/>
26
26
  </mxCell>
27
- <mxCell id="U3w-3" value="add diff tool right hand side only option" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_U3w">
27
+ <mxCell id="Ip4-3" 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_Ip4">
28
28
  <mxGeometry x="0" y="0" width="300" height="60" as="geometry"/>
29
29
  </mxCell>
30
- <mxCell id="U3w-4" value="add diff tool lhs/rhs differences" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_U3w">
31
- <mxGeometry x="0" y="0" width="300" height="60" as="geometry"/>
32
- </mxCell>
33
- <mxCell id="U3w-5" value="add diff tool open in vscode option" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_U3w">
34
- <mxGeometry x="0" y="0" width="300" height="60" as="geometry"/>
35
- </mxCell>
36
- <mxCell id="U3w-6" value="rag new should work like rails new" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_U3w">
37
- <mxGeometry x="0" y="0" width="300" height="60" as="geometry"/>
38
- </mxCell>
39
- <mxCell id="U3w-7" value="rag profile is the default option" style="whiteSpace=wrap;html=1;rounded=1;glass=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#333333" vertex="1" parent="node_root_U3w">
30
+ <mxCell id="Ip4-4" 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_Ip4">
40
31
  <mxGeometry x="0" y="0" width="300" height="60" as="geometry"/>
41
32
  </mxCell>
42
33
  </root>
43
34
  </mxGraphModel>
44
35
  </diagram>
45
- <diagram id="CMT" name="Done">
36
+ <diagram id="YZE" name="Done">
46
37
  <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">
47
38
  <root>
48
- <mxCell id="page_root_CMT" parent="CMT"/>
49
- <mxCell id="node_root_CMT" parent="page_root_CMT"/>
50
- <mxCell id="CMT-1" 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_CMT">
39
+ <mxCell id="page_root_YZE" parent="YZE"/>
40
+ <mxCell id="node_root_YZE" parent="page_root_YZE"/>
41
+ <mxCell id="YZE-1" 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_YZE">
42
+ <mxGeometry x="0" y="0" width="300" height="60" as="geometry"/>
43
+ </mxCell>
44
+ <mxCell id="YZE-2" 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_YZE">
51
45
  <mxGeometry x="0" y="0" width="300" height="60" as="geometry"/>
52
46
  </mxCell>
53
47
  </root>
@@ -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="#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 project plan to do list</div></div></div></foreignObject><text x="150" y="34" 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="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="#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 diff tool supporting lhs only, rhs only, same and different</div></div></div></foreignObject><text x="150" 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="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 project plan to do list</div></div></div></foreignObject><text x="150" y="34" 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="692px" height="82px" viewBox="-0.5 -0.5 692 82"><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="290" y="0" width="400" height="80" rx="12" ry="12" fill="none" 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 flex-start; justify-content: unsafe flex-start; width: 398px; height: 1px; padding-top: 7px; margin-left: 292px;"><div data-drawio-colors="color: #1F2D3D; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 28px; font-family: Helvetica; color: rgb(31, 45, 61); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">DrawIO DSL</div></div></div></foreignObject><text x="292" y="35" fill="#1F2D3D" font-family="Helvetica" font-size="28px" font-weight="bold">DrawIO DSL</text></switch></g><rect x="0" y="10" width="300" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 10.15 9 Q -1 9 -1 20.15 L -1 34 Q 150 52 301 34 L 301 20.15 Q 301 9 289.85 9 Z" fill="url(#mx-gradient-ffffff-0.9-ffffff-0.1-s-0)" stroke="none" pointer-events="all"/></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="692px" height="82px" viewBox="-0.5 -0.5 692 82"><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="290" y="0" width="400" height="80" rx="12" ry="12" fill="none" 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 flex-start; justify-content: unsafe flex-start; width: 398px; height: 1px; padding-top: 7px; margin-left: 292px;"><div data-drawio-colors="color: #1F2D3D; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 28px; font-family: Helvetica; color: rgb(31, 45, 61); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">DrawIO DSL</div></div></div></foreignObject><text x="292" y="35" fill="#1F2D3D" font-family="Helvetica" font-size="28px" font-weight="bold">DrawIO DSL</text></switch></g><rect x="0" y="10" width="300" height="60" rx="9" ry="9" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><path d="M 10.15 9 Q -1 9 -1 20.15 L -1 34 Q 150 52 301 34 L 301 20.15 Q 301 9 289.85 9 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: 40px; 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 vscode option</div></div></div></foreignObject><text x="150" y="44" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool open in vscode option</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="#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 diff tool with support</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool with support</text></switch></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 diff tool left hand side only option</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool left hand side only option</text></switch></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 diff tool right hand side only option</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool right hand side only option</text></switch></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 diff tool lhs/rhs differences</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool lhs/rhs differences</text></switch></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 diff tool open in vscode option</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">add diff tool open in vscode option</text></switch></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;">rag new should work like rails new</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">rag new should work like rails new</text></switch></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;">rag profile is the default option</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">rag profile is the default option</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="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="#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 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="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 support for profile</div></div></div></foreignObject><text x="150" y="34" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">cli support for profile</text></switch></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 support for rails new (rag new should work like rails new) - buggy, need to work through</div></div></div></foreignObject><text x="150" 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="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;">need an option for deleting target project path</div></div></div></foreignObject><text x="150" 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>
data/exe/rag CHANGED
@@ -19,23 +19,52 @@ elsif %w[-v --version].include? ARGV[0]
19
19
  exit 0
20
20
  end
21
21
 
22
- profile_path = File.expand_path("#{Pathname.new(__FILE__).dirname}/../profiles")
23
- profile_name = ARGV[0]
24
- profile_name += '.json' unless profile_name.end_with?('.json')
25
- profile_file = File.join(profile_path, profile_name)
26
-
27
- if File.exist?(profile_file)
28
- puts "Using profile #{profile_file}"
29
-
30
- profile = JSON.parse(File.read(profile_file), symbolize_names: true)
31
- args = profile[:args]
32
- opts = profile[:opts]
33
- rails_options = RailsAppGenerator::RailsOptions.new(opts)
34
-
35
- instance = RailsAppGenerator::Starter.new(args)
36
- FileUtils.rm_rf(instance.target_path)
37
- instance.start(rails_options)
38
- else
39
- puts "Profile #{profile_file} not found"
40
- exit 1
41
- end
22
+ RailsAppGenerator::Cli.start(ARGV)
23
+
24
+ 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,40 @@
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
+ option :lhs , type: :boolean
8
+ option :rhs , type: :boolean
9
+ option :compare , type: :boolean
10
+
11
+ def diff(lhs_folder, rhs_folder)
12
+ # puts "Diffing #{lhs_folder} and #{rhs_folder}"
13
+ # puts JSON.pretty_generate(options)
14
+ processor = RailsAppGenerator::Diff::Processor.new(lhs_folder, rhs_folder)
15
+ compare_info = processor.compare
16
+
17
+ compare_info.debug
18
+
19
+ # report = RailsAppGenerator::Diff::Report.new(compare_info)
20
+ # report.display
21
+ end
22
+
23
+ # def initialize(profile_file)
24
+ # @profile_file = profile_file
25
+ # end
26
+
27
+ # def run
28
+ # puts "Using profile #{profile_file}"
29
+
30
+ # profile = JSON.parse(File.read(profile_file), symbolize_names: true)
31
+ # args = profile[:args]
32
+ # opts = profile[:opts]
33
+ # rails_options = RailsAppGenerator::RailsOptions.new(opts)
34
+
35
+ # instance = RailsAppGenerator::Starter.new(args)
36
+ # FileUtils.rm_rf(instance.target_path)
37
+ # instance.start(rails_options)
38
+ # end
39
+ end
40
+ end
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ module Diff
5
+ # CompareInfo stores LHS and RHS file information in segments
6
+ class CompareInfo
7
+ attr_reader :lhs_path
8
+ attr_reader :lhs_files
9
+
10
+ attr_reader :rhs_path
11
+ attr_reader :rhs_files
12
+
13
+ # File segments
14
+ attr_reader :lhs_only
15
+ attr_reader :rhs_only
16
+ attr_reader :diff
17
+ attr_reader :same
18
+
19
+ def initialize(lhs_path, lhs_files, rhs_path, rhs_files)
20
+ @lhs_path = lhs_path
21
+ @lhs_files = lhs_files
22
+
23
+ @rhs_path = rhs_path
24
+ @rhs_files = rhs_files
25
+
26
+ @lhs_only = []
27
+ @rhs_only = []
28
+ @diff = []
29
+ @same = []
30
+
31
+ segment_files(lhs_path, lhs_files, rhs_path, rhs_files)
32
+ end
33
+
34
+ def lhs_file_info(type)
35
+ case type
36
+ when :lhs_only
37
+ rel_abs_file(lhs_path, lhs_only)
38
+ when :rhs_only
39
+ [] # there should be no right hand side files for the left hand path
40
+ when :same
41
+ rel_abs_file(lhs_path, same)
42
+ when :diff
43
+ rel_abs_file(lhs_path, diff)
44
+ end
45
+ end
46
+
47
+ def rhs_file_info(type)
48
+ case type
49
+ when :lhs_only
50
+ [] # there should be no left hand side files for the right hand path
51
+ when :rhs_only
52
+ rel_abs_file(rhs_path, rhs_only)
53
+ when :same
54
+ rel_abs_file(rhs_path, same)
55
+ when :diff
56
+ rel_abs_file(rhs_path, diff)
57
+ end
58
+ end
59
+
60
+ def debug
61
+ debug_stats
62
+ debug_files('left only' , lhs_only)
63
+ debug_files('right only' , rhs_only)
64
+ debug_files('same' , same)
65
+ debug_files('diff' , diff)
66
+ end
67
+
68
+ private
69
+
70
+ # rubocop:disable Metrics/AbcSize
71
+ def segment_files(lhs_path, lhs_files, rhs_path, rhs_files)
72
+ lhs_only = lhs_files - rhs_files
73
+ rhs_only = rhs_files - lhs_files
74
+ matching_files = lhs_files & rhs_files
75
+
76
+ @lhs_only = lhs_only.map { |file| FilePair.new(file, lhs_absolute_file: File.join(lhs_path, file)) }
77
+ @rhs_only = rhs_only.map { |file| FilePair.new(file, rhs_absolute_file: File.join(rhs_path, file)) }
78
+
79
+ matching_files.each do |file|
80
+ file_pair = FilePair.new(
81
+ file,
82
+ lhs_absolute_file: File.join(lhs_path, file),
83
+ rhs_absolute_file: File.join(rhs_path, file)
84
+ )
85
+
86
+ if FileUtils.compare_file(File.join(lhs_path, file), File.join(rhs_path, file))
87
+ @same << file_pair
88
+ else
89
+ @diff << file_pair
90
+ end
91
+ end
92
+ end
93
+ # rubocop:enable Metrics/AbcSize
94
+
95
+ def rel_abs_file(path, files)
96
+ files.map { |file| FilePair.new(file, File.join(path, file)) }
97
+ end
98
+
99
+ # rubocop:disable Metrics/AbcSize
100
+ def debug_stats
101
+ Util.kv('left path' , lhs_path)
102
+ Util.kv('right path' , rhs_path)
103
+
104
+ Util.kv('file count - left' , lhs_files.count)
105
+ Util.kv('file count - right' , rhs_files.count)
106
+
107
+ Util.kv('file count - left only' , lhs_only.count)
108
+ Util.kv('file count - right only' , rhs_only.count)
109
+
110
+ Util.kv('file count - same' , same.count)
111
+ Util.kv('file count - different' , diff.count)
112
+ end
113
+ # rubocop:enable Metrics/AbcSize
114
+
115
+ def debug_files(heading, files)
116
+ Util.line(heading)
117
+ puts files.any? ? files : 'NO FILES'
118
+ end
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ module Diff
5
+ # FilePair stores the relative file path, plus the absolute file for both Left and Right site
6
+ class FilePair
7
+ attr_reader :file
8
+ attr_reader :lhs_absolute_file
9
+ attr_reader :rhs_absolute_file
10
+
11
+ def initialize(file, lhs_absolute_file: nil, rhs_absolute_file: nil)
12
+ @file = file
13
+ @lhs_absolute_file = lhs_absolute_file
14
+ @rhs_absolute_file = rhs_absolute_file
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ module Diff
5
+ # Diff Report
6
+ class OpenInEditor
7
+ attr_reader :info
8
+
9
+ attr_reader :open_left_only
10
+ attr_reader :open_right_only
11
+ attr_reader :open_same
12
+ attr_reader :open_different
13
+
14
+ def initialize(compare_info, **opts)
15
+ @info = compare_info
16
+
17
+ @open_left_only = opts[:open_left_only].nil? ? false : opts[:open_left_only]
18
+ @open_right_only = opts[:open_right_only].nil? ? true : opts[:open_right_only]
19
+ @open_same = opts[:open_same].nil? ? false : opts[:open_same]
20
+ @open_different = opts[:open_different].nil? ? true : opts[:open_different]
21
+ end
22
+
23
+ def open
24
+ open_files(info.lhs_only) if open_left_only
25
+ open_files(info.rhs_only) if open_right_only
26
+ open_files(info.same) if open_same
27
+ open_files(info.diff) if open_different
28
+ end
29
+
30
+ private
31
+
32
+ def open_files(files)
33
+ files.map do |f|
34
+ system("code --diff #{f.lhs_absolute_file} #{f.rhs_absolute_file}")
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ module Diff
5
+ # Diff Processor
6
+ class Processor
7
+ attr_reader :lhs_path
8
+ attr_reader :rhs_path
9
+
10
+ DEFAULT_EXCLUSION = lambda do |_file, relative_file|
11
+ relative_file.start_with?('tmp') || relative_file.start_with?('node_modules')
12
+ end
13
+
14
+ def initialize(lhs_path, rhs_path)
15
+ @lhs_path = lhs_path
16
+ @rhs_path = rhs_path
17
+ end
18
+
19
+ attr_writer :exclusion_handler
20
+
21
+ def compare
22
+ @info ||= RailsAppGenerator::Diff::CompareInfo.new(
23
+ lhs_path, file_list(lhs_path),
24
+ rhs_path, file_list(rhs_path)
25
+ )
26
+ end
27
+
28
+ def debug
29
+ compare.debug
30
+ end
31
+
32
+ private
33
+
34
+ def exclusion_handler
35
+ @exclusion_handler ||= DEFAULT_EXCLUSION
36
+ end
37
+
38
+ def file_list(path)
39
+ prefix_path = path.end_with?('/') ? path : "#{path}/"
40
+
41
+ Dir.glob("#{path}/**/*")
42
+ .reject { |file| File.directory?(file) || exclusion_handler.call(file, file.delete_prefix(prefix_path)) }
43
+ .map { |file| file.delete_prefix(prefix_path) }
44
+ end
45
+
46
+ # def diff_exclusions(file)
47
+ # file.include?('config/credentials.yml.enc') ||
48
+ # file.include?('master.key')
49
+ # end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ module Diff
5
+ # Diff Report
6
+ class Report
7
+ attr_reader :info
8
+
9
+ attr_reader :show_left_only
10
+ attr_reader :show_right_only
11
+ attr_reader :show_same
12
+ attr_reader :show_different
13
+
14
+ def initialize(compare_info, **opts)
15
+ @info = compare_info
16
+
17
+ @show_left_only = opts[:show_left_only].nil? ? false : opts[:show_left_only]
18
+ @show_right_only = opts[:show_right_only].nil? ? true : opts[:show_right_only]
19
+ @show_same = opts[:show_same].nil? ? false : opts[:show_same]
20
+ @show_different = opts[:show_different].nil? ? true : opts[:show_different]
21
+ end
22
+
23
+ def display
24
+ display_files('Files only in source folder' , info.lhs_only) if show_left_only
25
+ display_files('Files only in target folder' , info.rhs_only) if show_right_only
26
+ display_files('Files in both folders' , info.same) if show_same
27
+ display_files('Files that are different' , info.diff) if show_different
28
+ end
29
+
30
+ private
31
+
32
+ def display_files(heading, files)
33
+ Util.line(heading)
34
+ puts files.any? ? files.map(&:file) : 'NO FILES'
35
+ end
36
+ end
37
+ end
38
+ end
@@ -4,17 +4,6 @@ require 'rails'
4
4
 
5
5
  require 'rails/generators'
6
6
  require 'rails/generators/rails/app/app_generator'
7
- # require 'active_model/railtie'
8
- # active_record/railtie
9
- # active_storage/engine
10
- # action_controller/railtie
11
- # action_view/railtie
12
- # action_mailer/railtie
13
- # active_job/railtie
14
- # action_cable/engine
15
- # action_mailbox/engine
16
- # action_text/engine
17
- # rails/test_unit/railtie
18
7
 
19
8
  module RailsAppGenerator
20
9
  # Starter is a wrapper for Rails::AppGenerator
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # Utility methods
5
+ class Util
6
+ class << self
7
+ # Log KeyValue pair
8
+ #
9
+ # @example
10
+ # Util.kv(:key, :value)
11
+ def kv(label, value, len = 35)
12
+ return ' ' * len if label.nil?
13
+
14
+ label = label.to_s if label.is_a?(Symbol)
15
+ label = label.length > len ? label.slice(0..len) : label.ljust(len, ' ')
16
+
17
+ puts "#{label}: #{value}"
18
+ end
19
+
20
+ def line(heading, len = 80)
21
+ heading = "- [ #{heading} ]"
22
+ puts heading.length > len ? heading : heading.ljust(len, '-')
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.0.9'
4
+ VERSION = '0.0.12'
5
5
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # require 'k_log'
4
-
5
3
  require 'rails/command/base'
6
4
  require 'rails/generators/app_base'
7
5
  require 'rails/generators'
@@ -10,6 +8,13 @@ require 'rails/generators/rails/app/app_generator'
10
8
  require 'bundler'
11
9
 
12
10
  require 'rails_app_generator/version'
11
+ require 'rails_app_generator/cli'
12
+ require 'rails_app_generator/util'
13
+ require 'rails_app_generator/diff/file_pair'
14
+ require 'rails_app_generator/diff/compare_info'
15
+ require 'rails_app_generator/diff/processor'
16
+ require 'rails_app_generator/diff/report'
17
+ require 'rails_app_generator/diff/open_in_editor'
13
18
  require 'rails_app_generator/options/base_map_option'
14
19
  require 'rails_app_generator/options/map_option_ignore'
15
20
  require 'rails_app_generator/options/map_option_string'
@@ -25,15 +30,9 @@ require 'rails_app_generator/app_builder'
25
30
  require 'rails_app_generator/app_generator'
26
31
  require 'rails_app_generator/starter'
27
32
 
28
- # require "rails_app_generator/generators/base"
29
- # require "rails_app_generator/generators/foo_generator"
30
- # require "rails_app_generator/generators/advisories_generator"
31
-
32
33
  module RailsAppGenerator
33
34
  # raise RailsAppGenerator::Error, 'Sample message'
34
35
  Error = Class.new(StandardError)
35
-
36
- # Your code goes here...
37
36
  end
38
37
 
39
38
  if ENV.fetch('KLUE_DEBUG', 'false').downcase == 'true'
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.0.9",
3
+ "version": "0.0.12",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.0.9",
9
+ "version": "0.0.12",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.0.9",
3
+ "version": "0.0.12",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_app_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-24 00:00:00.000000000 Z
11
+ date: 2022-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bootsnap
@@ -207,8 +207,14 @@ files:
207
207
  - lib/rails_app_generator/addons/views.rb
208
208
  - lib/rails_app_generator/app_builder.rb
209
209
  - lib/rails_app_generator/app_generator.rb
210
+ - lib/rails_app_generator/cli.rb
210
211
  - lib/rails_app_generator/context.rb
211
212
  - lib/rails_app_generator/dependencies.rb
213
+ - lib/rails_app_generator/diff/compare_info.rb
214
+ - lib/rails_app_generator/diff/file_pair.rb
215
+ - lib/rails_app_generator/diff/open_in_editor.rb
216
+ - lib/rails_app_generator/diff/processor.rb
217
+ - lib/rails_app_generator/diff/report.rb
212
218
  - lib/rails_app_generator/generators/advisories_generator.rb
213
219
  - lib/rails_app_generator/generators/base.rb
214
220
  - lib/rails_app_generator/generators/foo_generator.rb
@@ -231,6 +237,7 @@ files:
231
237
  - lib/rails_app_generator/options/options_builder.rb
232
238
  - lib/rails_app_generator/options/rails_options.rb
233
239
  - lib/rails_app_generator/starter.rb
240
+ - lib/rails_app_generator/util.rb
234
241
  - lib/rails_app_generator/version.rb
235
242
  - package-lock.json
236
243
  - package.json