terraform-synthesizer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4a4a33f20d37a3d87461647e13d8e2e28d2cb2f2f12652914fbbc0497643e6c6
4
+ data.tar.gz: 7f2ebc6814c03e93f7afb91ef69d6ae0e37fcf9da850d22ac81b07730d050b9a
5
+ SHA512:
6
+ metadata.gz: 6e831d7acc9ee6290ebf3793b407bd975eac2ef1b57b6e5dc55e126b64fa6ea2455dcaf2c87ee75277172a48f076dc7553d45fdd455f0ecda7bc2bc224ddc57d
7
+ data.tar.gz: c65b5da1cdc4dfa06a39ff10bc8e6763a2d1cdf5f3f1f2eea53b2e9b4b0e0ce1898ee21245bff9ac26e7538fdb8784ab1f60562d8411969d87c921f059838075
data/.gitignore ADDED
@@ -0,0 +1,56 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+
13
+ # Used by dotenv library to load environment variables.
14
+ # .env
15
+
16
+ # Ignore Byebug command history file.
17
+ .byebug_history
18
+
19
+ ## Specific to RubyMotion:
20
+ .dat*
21
+ .repl_history
22
+ build/
23
+ *.bridgesupport
24
+ build-iPhoneOS/
25
+ build-iPhoneSimulator/
26
+
27
+ ## Specific to RubyMotion (use of CocoaPods):
28
+ #
29
+ # We recommend against adding the Pods directory to your .gitignore. However
30
+ # you should judge for yourself, the pros and cons are mentioned at:
31
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
+ #
33
+ # vendor/Pods/
34
+
35
+ ## Documentation cache and generated files:
36
+ /.yardoc/
37
+ /_yardoc/
38
+ /doc/
39
+ /rdoc/
40
+
41
+ ## Environment normalization:
42
+ /.bundle/
43
+ /vendor/bundle
44
+ /lib/bundler/man/
45
+
46
+ # for a library or gem, you might want to ignore these files since the code is
47
+ # intended to run in multiple environments; otherwise, check them in:
48
+ # Gemfile.lock
49
+ # .ruby-version
50
+ # .ruby-gemset
51
+
52
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
+ .rvmrc
54
+
55
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
56
+ # .rubocop-https?--*
data/.rubocop.yml ADDED
@@ -0,0 +1,54 @@
1
+ AllCops:
2
+ TargetRubyVersion: '3.0'
3
+ NewCops: enable
4
+
5
+ Gemspec/RequiredRubyVersion:
6
+ Enabled: false
7
+
8
+ Style/FrozenStringLiteralComment:
9
+ Enabled: false
10
+
11
+ Style/Documentation:
12
+ Enabled: false
13
+
14
+ Style/GlobalVars:
15
+ Enabled: false
16
+
17
+ Style/GuardClause:
18
+ Enabled: false
19
+
20
+ Style/StringConcatenation:
21
+ Enabled: false
22
+
23
+ Metrics/MethodLength:
24
+ Enabled: false
25
+
26
+ Metrics/ModuleLength:
27
+ Enabled: false
28
+
29
+ Metrics/AbcSize:
30
+ Enabled: false
31
+
32
+ Metrics/PerceivedComplexity:
33
+ Enabled: false
34
+
35
+ Metrics/ParameterLists:
36
+ Enabled: false
37
+
38
+ Style/MissingRespondToMissing:
39
+ Enabled: false
40
+
41
+ Lint/MissingSuper:
42
+ Enabled: false
43
+
44
+ Metrics/CyclomaticComplexity:
45
+ Enabled: false
46
+
47
+ Metrics/ClassLength:
48
+ Enabled: false
49
+
50
+ Metrics/BlockLength:
51
+ Enabled: false
52
+
53
+ Naming/AccessorMethodName:
54
+ Enabled: false
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.1.0
data/Gemfile ADDED
@@ -0,0 +1,18 @@
1
+ source %(https://rubygems.org)
2
+
3
+ group :development do
4
+ %w[
5
+ solargraph
6
+ keycutter
7
+ rubocop
8
+ rspec
9
+ rake
10
+ yard
11
+ ].each do |this_gem|
12
+ gem this_gem
13
+ end
14
+ end
15
+
16
+ group :production do
17
+ gem %(abstract-synthesizer)
18
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,91 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ abstract-synthesizer (0.0.1)
5
+ ast (2.4.2)
6
+ backport (1.2.0)
7
+ benchmark (0.2.1)
8
+ diff-lcs (1.5.0)
9
+ e2mmap (0.1.0)
10
+ jaro_winkler (1.5.6)
11
+ json (2.6.3)
12
+ keycutter (1.0.2)
13
+ kramdown (2.4.0)
14
+ rexml
15
+ kramdown-parser-gfm (1.1.0)
16
+ kramdown (~> 2.0)
17
+ nokogiri (1.15.2-x86_64-darwin)
18
+ racc (~> 1.4)
19
+ parallel (1.23.0)
20
+ parser (3.2.2.3)
21
+ ast (~> 2.4.1)
22
+ racc
23
+ racc (1.7.1)
24
+ rainbow (3.1.1)
25
+ rake (13.0.6)
26
+ rbs (2.8.4)
27
+ regexp_parser (2.8.1)
28
+ reverse_markdown (2.1.1)
29
+ nokogiri
30
+ rexml (3.2.5)
31
+ rspec (3.12.0)
32
+ rspec-core (~> 3.12.0)
33
+ rspec-expectations (~> 3.12.0)
34
+ rspec-mocks (~> 3.12.0)
35
+ rspec-core (3.12.2)
36
+ rspec-support (~> 3.12.0)
37
+ rspec-expectations (3.12.3)
38
+ diff-lcs (>= 1.2.0, < 2.0)
39
+ rspec-support (~> 3.12.0)
40
+ rspec-mocks (3.12.5)
41
+ diff-lcs (>= 1.2.0, < 2.0)
42
+ rspec-support (~> 3.12.0)
43
+ rspec-support (3.12.0)
44
+ rubocop (1.52.1)
45
+ json (~> 2.3)
46
+ parallel (~> 1.10)
47
+ parser (>= 3.2.2.3)
48
+ rainbow (>= 2.2.2, < 4.0)
49
+ regexp_parser (>= 1.8, < 3.0)
50
+ rexml (>= 3.2.5, < 4.0)
51
+ rubocop-ast (>= 1.28.0, < 2.0)
52
+ ruby-progressbar (~> 1.7)
53
+ unicode-display_width (>= 2.4.0, < 3.0)
54
+ rubocop-ast (1.29.0)
55
+ parser (>= 3.2.1.0)
56
+ ruby-progressbar (1.13.0)
57
+ solargraph (0.49.0)
58
+ backport (~> 1.2)
59
+ benchmark
60
+ bundler (~> 2.0)
61
+ diff-lcs (~> 1.4)
62
+ e2mmap
63
+ jaro_winkler (~> 1.5)
64
+ kramdown (~> 2.3)
65
+ kramdown-parser-gfm (~> 1.1)
66
+ parser (~> 3.0)
67
+ rbs (~> 2.0)
68
+ reverse_markdown (~> 2.0)
69
+ rubocop (~> 1.38)
70
+ thor (~> 1.0)
71
+ tilt (~> 2.0)
72
+ yard (~> 0.9, >= 0.9.24)
73
+ thor (1.2.2)
74
+ tilt (2.2.0)
75
+ unicode-display_width (2.4.2)
76
+ yard (0.9.34)
77
+
78
+ PLATFORMS
79
+ x86_64-darwin-22
80
+
81
+ DEPENDENCIES
82
+ abstract-synthesizer
83
+ keycutter
84
+ rake
85
+ rspec
86
+ rubocop
87
+ solargraph
88
+ yard
89
+
90
+ BUNDLED WITH
91
+ 2.4.6
data/LICENSE ADDED
@@ -0,0 +1,201 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
177
+
178
+ APPENDIX: How to apply the Apache License to your work.
179
+
180
+ To apply the Apache License to your work, attach the following
181
+ boilerplate notice, with the fields enclosed by brackets "[]"
182
+ replaced with your own identifying information. (Don't include
183
+ the brackets!) The text should be enclosed in the appropriate
184
+ comment syntax for the file format. We also recommend that a
185
+ file or class name and description of purpose be included on the
186
+ same "printed page" as the copyright notice for easier
187
+ identification within third-party archives.
188
+
189
+ Copyright [yyyy] [name of copyright owner]
190
+
191
+ Licensed under the Apache License, Version 2.0 (the "License");
192
+ you may not use this file except in compliance with the License.
193
+ You may obtain a copy of the License at
194
+
195
+ http://www.apache.org/licenses/LICENSE-2.0
196
+
197
+ Unless required by applicable law or agreed to in writing, software
198
+ distributed under the License is distributed on an "AS IS" BASIS,
199
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
+ See the License for the specific language governing permissions and
201
+ limitations under the License.
data/README.md ADDED
@@ -0,0 +1 @@
1
+ # terraform-synthesizer
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require %(bundler/gem_tasks)
4
+ require %(rubocop/rake_task)
5
+ require %(rspec/core/rake_task)
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
8
+ RuboCop::RakeTask.new(:rubocop) do |t|
9
+ t.options = [%(--display-cop-names)]
10
+ end
data/flake.lock ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "nodes": {
3
+ "flake-utils": {
4
+ "locked": {
5
+ "lastModified": 1676283394,
6
+ "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=",
7
+ "owner": "numtide",
8
+ "repo": "flake-utils",
9
+ "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073",
10
+ "type": "github"
11
+ },
12
+ "original": {
13
+ "owner": "numtide",
14
+ "repo": "flake-utils",
15
+ "type": "github"
16
+ }
17
+ },
18
+ "nixpkgs": {
19
+ "locked": {
20
+ "lastModified": 1687218208,
21
+ "narHash": "sha256-EPiHZr1/WpVFlNdZ1PIQI/D197yZfNhfxh1Itif4ans=",
22
+ "owner": "NixOS",
23
+ "repo": "nixpkgs",
24
+ "rev": "397a3ef26f4b400df3ff35e157d334230db7809f",
25
+ "type": "github"
26
+ },
27
+ "original": {
28
+ "owner": "NixOS",
29
+ "repo": "nixpkgs",
30
+ "type": "github"
31
+ }
32
+ },
33
+ "root": {
34
+ "inputs": {
35
+ "nixpkgs": "nixpkgs",
36
+ "ruby-flake-utils": "ruby-flake-utils"
37
+ }
38
+ },
39
+ "ruby-flake-utils": {
40
+ "inputs": {
41
+ "flake-utils": "flake-utils"
42
+ },
43
+ "locked": {
44
+ "lastModified": 1677241498,
45
+ "narHash": "sha256-WqLNHvUbN8HhC8dryp48/Q7e0Fw/eZ0oWfHpVAMSQAQ=",
46
+ "owner": "t3rro",
47
+ "repo": "ruby-flake-utils",
48
+ "rev": "90d49b909be757ddb459b9c0261da5d8f653e88d",
49
+ "type": "github"
50
+ },
51
+ "original": {
52
+ "owner": "t3rro",
53
+ "repo": "ruby-flake-utils",
54
+ "type": "github"
55
+ }
56
+ }
57
+ },
58
+ "root": "root",
59
+ "version": 7
60
+ }
data/flake.nix ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ description = "terraform-synthesizer";
3
+
4
+ inputs.nixpkgs.url = github:NixOS/nixpkgs;
5
+ inputs.ruby-flake-utils.url = github:t3rro/ruby-flake-utils;
6
+
7
+ outputs = { ruby-flake-utils, nixpkgs, ... }:
8
+ ruby-flake-utils.lib.mkGemSystems {
9
+ inherit nixpkgs;
10
+ name = "terraform-synthesizer";
11
+ lockfile = ./Gemfile.lock;
12
+ gemfile = ./Gemfile;
13
+ gemset = ./gemset.nix;
14
+ strategy = "lib";
15
+ src = ./.;
16
+ };
17
+ }
data/gemset.nix ADDED
@@ -0,0 +1,354 @@
1
+ {
2
+ abstract-synthesizer = {
3
+ groups = ["production"];
4
+ platforms = [];
5
+ source = {
6
+ remotes = ["https://rubygems.org"];
7
+ sha256 = "1xnhippwcywr65gm0y8rjpy35pmsx8nq4wm8k5sb87xpxidrqm35";
8
+ type = "gem";
9
+ };
10
+ version = "0.0.1";
11
+ };
12
+ ast = {
13
+ groups = ["default" "development"];
14
+ platforms = [];
15
+ source = {
16
+ remotes = ["https://rubygems.org"];
17
+ sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
18
+ type = "gem";
19
+ };
20
+ version = "2.4.2";
21
+ };
22
+ backport = {
23
+ groups = ["default" "development"];
24
+ platforms = [];
25
+ source = {
26
+ remotes = ["https://rubygems.org"];
27
+ sha256 = "0xbzzjrgah0f8ifgd449kak2vyf30micpz6x2g82aipfv7ypsb4i";
28
+ type = "gem";
29
+ };
30
+ version = "1.2.0";
31
+ };
32
+ benchmark = {
33
+ groups = ["default" "development"];
34
+ platforms = [];
35
+ source = {
36
+ remotes = ["https://rubygems.org"];
37
+ sha256 = "017jh2lx3z5hqjvnqclc5bfr5q0d3zk0nqjfz73909ybr4h20kmi";
38
+ type = "gem";
39
+ };
40
+ version = "0.2.1";
41
+ };
42
+ diff-lcs = {
43
+ groups = ["default" "development"];
44
+ platforms = [];
45
+ source = {
46
+ remotes = ["https://rubygems.org"];
47
+ sha256 = "0rwvjahnp7cpmracd8x732rjgnilqv2sx7d1gfrysslc3h039fa9";
48
+ type = "gem";
49
+ };
50
+ version = "1.5.0";
51
+ };
52
+ e2mmap = {
53
+ groups = ["default" "development"];
54
+ platforms = [];
55
+ source = {
56
+ remotes = ["https://rubygems.org"];
57
+ sha256 = "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5";
58
+ type = "gem";
59
+ };
60
+ version = "0.1.0";
61
+ };
62
+ jaro_winkler = {
63
+ groups = ["default" "development"];
64
+ platforms = [];
65
+ source = {
66
+ remotes = ["https://rubygems.org"];
67
+ sha256 = "10fd3i92897blalxfkgc0jjv0qqx31v7cm7j2b6a3b97an0bfz80";
68
+ type = "gem";
69
+ };
70
+ version = "1.5.6";
71
+ };
72
+ json = {
73
+ groups = ["default" "development"];
74
+ platforms = [];
75
+ source = {
76
+ remotes = ["https://rubygems.org"];
77
+ sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
78
+ type = "gem";
79
+ };
80
+ version = "2.6.3";
81
+ };
82
+ keycutter = {
83
+ groups = ["development"];
84
+ platforms = [];
85
+ source = {
86
+ remotes = ["https://rubygems.org"];
87
+ sha256 = "09v950ip9wn5l17dcd7jdyz43aj2hmy8q3rj31q430mz0q02z98n";
88
+ type = "gem";
89
+ };
90
+ version = "1.0.2";
91
+ };
92
+ kramdown = {
93
+ dependencies = ["rexml"];
94
+ groups = ["default" "development"];
95
+ platforms = [];
96
+ source = {
97
+ remotes = ["https://rubygems.org"];
98
+ sha256 = "1ic14hdcqxn821dvzki99zhmcy130yhv5fqfffkcf87asv5mnbmn";
99
+ type = "gem";
100
+ };
101
+ version = "2.4.0";
102
+ };
103
+ kramdown-parser-gfm = {
104
+ dependencies = ["kramdown"];
105
+ groups = ["default" "development"];
106
+ platforms = [];
107
+ source = {
108
+ remotes = ["https://rubygems.org"];
109
+ sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
110
+ type = "gem";
111
+ };
112
+ version = "1.1.0";
113
+ };
114
+ nokogiri = {
115
+ dependencies = ["racc"];
116
+ groups = ["default" "development"];
117
+ platforms = [];
118
+ source = {
119
+ remotes = ["https://rubygems.org"];
120
+ sha256 = "0c3r6dxi50cy4bdn10jr08yi7hdrgy4x4l3z64703i71kv0fwzmm";
121
+ type = "gem";
122
+ };
123
+ version = "1.15.2";
124
+ };
125
+ parallel = {
126
+ groups = ["default" "development"];
127
+ platforms = [];
128
+ source = {
129
+ remotes = ["https://rubygems.org"];
130
+ sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597";
131
+ type = "gem";
132
+ };
133
+ version = "1.23.0";
134
+ };
135
+ parser = {
136
+ dependencies = ["ast" "racc"];
137
+ groups = ["default" "development"];
138
+ platforms = [];
139
+ source = {
140
+ remotes = ["https://rubygems.org"];
141
+ sha256 = "1swigds85jddb5gshll1g8lkmbcgbcp9bi1d4nigwvxki8smys0h";
142
+ type = "gem";
143
+ };
144
+ version = "3.2.2.3";
145
+ };
146
+ racc = {
147
+ groups = ["default" "development"];
148
+ platforms = [];
149
+ source = {
150
+ remotes = ["https://rubygems.org"];
151
+ sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g";
152
+ type = "gem";
153
+ };
154
+ version = "1.7.1";
155
+ };
156
+ rainbow = {
157
+ groups = ["default" "development"];
158
+ platforms = [];
159
+ source = {
160
+ remotes = ["https://rubygems.org"];
161
+ sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
162
+ type = "gem";
163
+ };
164
+ version = "3.1.1";
165
+ };
166
+ rake = {
167
+ groups = ["development"];
168
+ platforms = [];
169
+ source = {
170
+ remotes = ["https://rubygems.org"];
171
+ sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
172
+ type = "gem";
173
+ };
174
+ version = "13.0.6";
175
+ };
176
+ rbs = {
177
+ groups = ["default" "development"];
178
+ platforms = [];
179
+ source = {
180
+ remotes = ["https://rubygems.org"];
181
+ sha256 = "0dgj5n7rj83981fvrhswfwsh88x42p7r00nvd80hkxmdcjvda2h6";
182
+ type = "gem";
183
+ };
184
+ version = "2.8.4";
185
+ };
186
+ regexp_parser = {
187
+ groups = ["default" "development"];
188
+ platforms = [];
189
+ source = {
190
+ remotes = ["https://rubygems.org"];
191
+ sha256 = "136br91alxdwh1s85z912dwz23qlhm212vy6i3wkinz3z8mkxxl3";
192
+ type = "gem";
193
+ };
194
+ version = "2.8.1";
195
+ };
196
+ reverse_markdown = {
197
+ dependencies = ["nokogiri"];
198
+ groups = ["default" "development"];
199
+ platforms = [];
200
+ source = {
201
+ remotes = ["https://rubygems.org"];
202
+ sha256 = "0087vhw5ik50lxvddicns01clkx800fk5v5qnrvi3b42nrk6885j";
203
+ type = "gem";
204
+ };
205
+ version = "2.1.1";
206
+ };
207
+ rexml = {
208
+ groups = ["default" "development"];
209
+ platforms = [];
210
+ source = {
211
+ remotes = ["https://rubygems.org"];
212
+ sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
213
+ type = "gem";
214
+ };
215
+ version = "3.2.5";
216
+ };
217
+ rspec = {
218
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
219
+ groups = ["development"];
220
+ platforms = [];
221
+ source = {
222
+ remotes = ["https://rubygems.org"];
223
+ sha256 = "171rc90vcgjl8p1bdrqa92ymrj8a87qf6w20x05xq29mljcigi6c";
224
+ type = "gem";
225
+ };
226
+ version = "3.12.0";
227
+ };
228
+ rspec-core = {
229
+ dependencies = ["rspec-support"];
230
+ groups = ["default" "development"];
231
+ platforms = [];
232
+ source = {
233
+ remotes = ["https://rubygems.org"];
234
+ sha256 = "0l95bnjxdabrn79hwdhn2q1n7mn26pj7y1w5660v5qi81x458nqm";
235
+ type = "gem";
236
+ };
237
+ version = "3.12.2";
238
+ };
239
+ rspec-expectations = {
240
+ dependencies = ["diff-lcs" "rspec-support"];
241
+ groups = ["default" "development"];
242
+ platforms = [];
243
+ source = {
244
+ remotes = ["https://rubygems.org"];
245
+ sha256 = "05j44jfqlv7j2rpxb5vqzf9hfv7w8ba46wwgxwcwd8p0wzi1hg89";
246
+ type = "gem";
247
+ };
248
+ version = "3.12.3";
249
+ };
250
+ rspec-mocks = {
251
+ dependencies = ["diff-lcs" "rspec-support"];
252
+ groups = ["default" "development"];
253
+ platforms = [];
254
+ source = {
255
+ remotes = ["https://rubygems.org"];
256
+ sha256 = "1hfm17xakfvwya236graj6c2arr4sb9zasp35q5fykhyz8mhs0w2";
257
+ type = "gem";
258
+ };
259
+ version = "3.12.5";
260
+ };
261
+ rspec-support = {
262
+ groups = ["default" "development"];
263
+ platforms = [];
264
+ source = {
265
+ remotes = ["https://rubygems.org"];
266
+ sha256 = "12y52zwwb3xr7h91dy9k3ndmyyhr3mjcayk0nnarnrzz8yr48kfx";
267
+ type = "gem";
268
+ };
269
+ version = "3.12.0";
270
+ };
271
+ rubocop = {
272
+ dependencies = ["json" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
273
+ groups = ["development"];
274
+ platforms = [];
275
+ source = {
276
+ remotes = ["https://rubygems.org"];
277
+ sha256 = "0bxc1p7bwh8dlmcvh6ns239sp9v8j46vw4h450ag8wa7bh1ii1wh";
278
+ type = "gem";
279
+ };
280
+ version = "1.52.1";
281
+ };
282
+ rubocop-ast = {
283
+ dependencies = ["parser"];
284
+ groups = ["default" "development"];
285
+ platforms = [];
286
+ source = {
287
+ remotes = ["https://rubygems.org"];
288
+ sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni";
289
+ type = "gem";
290
+ };
291
+ version = "1.29.0";
292
+ };
293
+ ruby-progressbar = {
294
+ groups = ["default" "development"];
295
+ platforms = [];
296
+ source = {
297
+ remotes = ["https://rubygems.org"];
298
+ sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40";
299
+ type = "gem";
300
+ };
301
+ version = "1.13.0";
302
+ };
303
+ solargraph = {
304
+ dependencies = ["backport" "benchmark" "diff-lcs" "e2mmap" "jaro_winkler" "kramdown" "kramdown-parser-gfm" "parser" "rbs" "reverse_markdown" "rubocop" "thor" "tilt" "yard"];
305
+ groups = ["development"];
306
+ platforms = [];
307
+ source = {
308
+ remotes = ["https://rubygems.org"];
309
+ sha256 = "18wpma2mgw82qzf1jwjalmz7nwdvn87b22wd5yy16jb67fqgrq78";
310
+ type = "gem";
311
+ };
312
+ version = "0.49.0";
313
+ };
314
+ thor = {
315
+ groups = ["default" "development"];
316
+ platforms = [];
317
+ source = {
318
+ remotes = ["https://rubygems.org"];
319
+ sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
320
+ type = "gem";
321
+ };
322
+ version = "1.2.2";
323
+ };
324
+ tilt = {
325
+ groups = ["default" "development"];
326
+ platforms = [];
327
+ source = {
328
+ remotes = ["https://rubygems.org"];
329
+ sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7";
330
+ type = "gem";
331
+ };
332
+ version = "2.2.0";
333
+ };
334
+ unicode-display_width = {
335
+ groups = ["default" "development"];
336
+ platforms = [];
337
+ source = {
338
+ remotes = ["https://rubygems.org"];
339
+ sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
340
+ type = "gem";
341
+ };
342
+ version = "2.4.2";
343
+ };
344
+ yard = {
345
+ groups = ["development"];
346
+ platforms = [];
347
+ source = {
348
+ remotes = ["https://rubygems.org"];
349
+ sha256 = "013yrnwx1zhzhn1fnc19zck22a1qgimsaglp2iwgf5bz9l8h93js";
350
+ type = "gem";
351
+ };
352
+ version = "0.9.34";
353
+ };
354
+ }
@@ -0,0 +1,3 @@
1
+ module TerraformSynthesizer
2
+ VERSION = %(0.0.1)
3
+ end
@@ -0,0 +1,17 @@
1
+ require %(abstract-synthesizer)
2
+
3
+ class TerraformSynthesizer < AbstractSynthesizer
4
+ def method_missing(method_name, *args, &block)
5
+ abstract_method_missing(
6
+ method_name,
7
+ %i[
8
+ terraform
9
+ resource
10
+ variable
11
+ data
12
+ ],
13
+ *args,
14
+ &block
15
+ )
16
+ end
17
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path(%(lib), __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require_relative %(./lib/terraform-synthesizer/version)
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = %(terraform-synthesizer)
9
+ spec.version = TerraformSynthesizer::VERSION
10
+ spec.authors = [%(drzthslnt@gmail.com)]
11
+ spec.email = [%(drzthslnt@gmail.com)]
12
+ spec.description = %(create terraform resources)
13
+ spec.summary = %(create terraform resources)
14
+ spec.homepage = %(https://github.com/drzln/#{spec.name})
15
+ spec.license = %(IPA)
16
+ spec.files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR)
17
+ spec.require_paths = [%(lib)]
18
+ spec.required_ruby_version = %(>= #{`cat .ruby-version`})
19
+
20
+ spec.metadata[%(rubygems_mfa_required)] = %(true)
21
+ end
metadata ADDED
@@ -0,0 +1,58 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: terraform-synthesizer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - drzthslnt@gmail.com
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 1980-01-01 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: create terraform resources
14
+ email:
15
+ - drzthslnt@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".gitignore"
21
+ - ".rubocop.yml"
22
+ - ".ruby-version"
23
+ - Gemfile
24
+ - Gemfile.lock
25
+ - LICENSE
26
+ - README.md
27
+ - Rakefile
28
+ - flake.lock
29
+ - flake.nix
30
+ - gemset.nix
31
+ - lib/terraform-synthesizer.rb
32
+ - lib/terraform-synthesizer/version.rb
33
+ - terraform-synthesizer.gemspec
34
+ homepage: https://github.com/drzln/terraform-synthesizer
35
+ licenses:
36
+ - IPA
37
+ metadata:
38
+ rubygems_mfa_required: 'true'
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 3.1.0
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubygems_version: 3.3.20
55
+ signing_key:
56
+ specification_version: 4
57
+ summary: create terraform resources
58
+ test_files: []