hot-glue 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +16 -0
- data/.gitignore +3 -1
- data/.ruby-version +1 -0
- data/.travis.yml +2 -2
- data/Gemfile +17 -7
- data/LICENSE +2 -16
- data/README.md +69 -66
- data/README2.md +0 -2
- data/config/database.yml +22 -8
- data/db/schema.rb +149 -0
- data/lib/generators/hot_glue/install_generator.rb +1 -55
- data/lib/generators/hot_glue/scaffold_generator.rb +60 -3
- data/lib/generators/hot_glue/templates/controller.rb.erb +5 -5
- data/lib/generators/hot_glue/templates/system_spec.rb.erb +8 -123
- data/lib/hotglue/version.rb +1 -1
- data/script/clean_generated_code +20 -0
- data/script/test +47 -0
- metadata +10 -8
- data/.circleci/config.yml +0 -71
- data/Gemfile.lock +0 -230
- data/Rakefile +0 -42
- data/bin/rails +0 -14
- data/db/schema.rb +0 -1
@@ -130,8 +130,8 @@ module HotGlue
|
|
130
130
|
|
131
131
|
|
132
132
|
# determines if the labels show up BEFORE or AFTER on the NEW/EDIT (form)
|
133
|
-
class_option :form_labels_position, default: 'after' # choices are before, after, omit
|
134
|
-
class_option :form_placeholder_labels, default: false # puts the field names into the placeholder labels
|
133
|
+
class_option :form_labels_position, type: :string, default: 'after' # choices are before, after, omit
|
134
|
+
class_option :form_placeholder_labels, type: :boolean, default: false # puts the field names into the placeholder labels
|
135
135
|
|
136
136
|
|
137
137
|
# NOT YET IMPLEMENTED
|
@@ -627,7 +627,7 @@ module HotGlue
|
|
627
627
|
end
|
628
628
|
|
629
629
|
def objest_nest_factory_setup
|
630
|
-
res = ""
|
630
|
+
res = " "
|
631
631
|
if @auth
|
632
632
|
last_parent = ", #{@auth_identifier}: #{@auth}"
|
633
633
|
end
|
@@ -653,6 +653,10 @@ module HotGlue
|
|
653
653
|
@singular
|
654
654
|
end
|
655
655
|
|
656
|
+
def testing_name
|
657
|
+
singular_class_name.gsub("::","_").downcase
|
658
|
+
end
|
659
|
+
|
656
660
|
def singular_class_name
|
657
661
|
@singular_class
|
658
662
|
end
|
@@ -665,6 +669,59 @@ module HotGlue
|
|
665
669
|
@auth_identifier
|
666
670
|
end
|
667
671
|
|
672
|
+
def test_capybara_block
|
673
|
+
(@columns - @show_only).map { |col|
|
674
|
+
type = eval("#{singular_class}.columns_hash['#{col}']").type
|
675
|
+
case type
|
676
|
+
when :date
|
677
|
+
" " + "new_#{col} = Date.current + (rand(100).days) \n" +
|
678
|
+
' ' + "find(\"[name='#{testing_name}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
679
|
+
when :time
|
680
|
+
# " " + "new_#{col} = DateTime.current + (rand(100).days) \n" +
|
681
|
+
# ' ' + "find(\"[name='#{singular}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
682
|
+
|
683
|
+
when :datetime
|
684
|
+
" " + "new_#{col} = DateTime.current + (rand(100).days) \n" +
|
685
|
+
' ' + "find(\"[name='#{testing_name}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
686
|
+
|
687
|
+
when :integer
|
688
|
+
|
689
|
+
if col.to_s.ends_with?("_id")
|
690
|
+
assoc = col.to_s.gsub('_id','')
|
691
|
+
" #{col}_selector = find(\"[name='#{singular}[#{col}]']\").click \n" +
|
692
|
+
" #{col}_selector.first('option', text: #{assoc}1.name).select_option"
|
693
|
+
else
|
694
|
+
" new_#{col} = rand(10) \n" +
|
695
|
+
" find(\"[name='#{testing_name}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
696
|
+
|
697
|
+
end
|
698
|
+
|
699
|
+
when :enum
|
700
|
+
" list_of_#{col.to_s} = #{singular_class}.defined_enums['#{col.to_s}'].keys \n" +
|
701
|
+
" " + "new_#{col.to_s} = list_of_#{col.to_s}[rand(list_of_#{col.to_s}.length)].to_s \n" +
|
702
|
+
' find("select[name=\'' + singular + '[' + col.to_s + ']\'] option[value=\'#{new_' + col.to_s + '}\']").select_option'
|
703
|
+
|
704
|
+
when :boolean
|
705
|
+
" new_#{col} = rand(2).floor \n" +
|
706
|
+
" find(\"[name='#{testing_name}[#{col}]'][value='\#{new_" + col.to_s + "}']\").choose"
|
707
|
+
when :string
|
708
|
+
if col.to_s.include?("email")
|
709
|
+
" " + "new_#{col} = 'new_test-email@nowhere.com' \n" +
|
710
|
+
" find(\"[name='#{testing_name}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
711
|
+
|
712
|
+
else
|
713
|
+
" " + "new_#{col} = 'new_test-email@nowhere.com' \n" +
|
714
|
+
" find(\"[name='#{testing_name}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
715
|
+
end
|
716
|
+
when :text
|
717
|
+
" " + "new_#{col} = FFaker::Lorem.paragraphs(1).join("") \n" +
|
718
|
+
" find(\"[name='#{testing_name}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
719
|
+
end
|
720
|
+
|
721
|
+
}.join("\n")
|
722
|
+
end
|
723
|
+
|
724
|
+
|
668
725
|
def path_helper_args
|
669
726
|
if @nested_set.any? && @nested
|
670
727
|
[(@nested_set).collect{|a| "#{a[:singular]}"} , singular].join(",")
|
@@ -122,11 +122,11 @@ class <%= controller_class_name %> < <%= controller_descends_from %>
|
|
122
122
|
end
|
123
123
|
|
124
124
|
<% end %><% if @build_update_action %> def update
|
125
|
-
modified_params = modify_date_inputs_on_params(<%= singular %>_params<%= @auth ? ', ' + @auth : '' %>)<%= controller_update_params_tap_away_magic_buttons %>
|
126
|
-
|
127
|
-
<%= controller_magic_button_update_actions %>
|
125
|
+
modified_params = modify_date_inputs_on_params(<%= singular %>_params<%= @auth ? ', ' + @auth : '' %>)<%= controller_update_params_tap_away_magic_buttons %><% if @hawk_keys.any? %>
|
126
|
+
modified_params = hawk_params( {<%= hawk_to_ruby %>}, modified_params)<% end %>
|
127
|
+
<%= controller_magic_button_update_actions %> if @<%= singular_name %>.update(modified_params)
|
128
128
|
flash[:notice] = (flash[:notice] || "") << "Saved #{@<%= singular %>.<%= display_class %>}"
|
129
|
-
flash[:alert] = @hawk_alarm
|
129
|
+
flash[:alert] = @hawk_alarm if @hawk_alarm
|
130
130
|
else
|
131
131
|
flash[:alert] = (flash[:alert] || "") << "<%= singular_name.titlecase %> could not be saved. #{@hawk_alarm}"
|
132
132
|
|
@@ -152,7 +152,7 @@ class <%= controller_class_name %> < <%= controller_descends_from %>
|
|
152
152
|
end<% end %>
|
153
153
|
|
154
154
|
def <%=singular_name%>_params
|
155
|
-
params.require(:<%=
|
155
|
+
params.require(:<%= testing_name %>).permit( <%= (@columns - @show_only) + @magic_buttons.collect(&:to_sym) %> )
|
156
156
|
end
|
157
157
|
|
158
158
|
def namespace
|
@@ -4,13 +4,13 @@ describe "interaction for <%= controller_class_name %>", type: :feature do
|
|
4
4
|
include HotGlue::ControllerHelper
|
5
5
|
<%= @existing_content %>
|
6
6
|
<% unless @god %>let(:<%= @auth %>) {create(:<%= @auth.gsub('current_', '') %>)}<%end%>
|
7
|
-
|
7
|
+
<%= (@columns - @show_only).map { |col|
|
8
8
|
type = eval("#{singular_class}.columns_hash['#{col}']").type
|
9
9
|
case type
|
10
10
|
when :integer
|
11
11
|
if col.to_s.ends_with?("_id")
|
12
12
|
assoc = "#{col.to_s.gsub('_id','')}"
|
13
|
-
"let!(:#{assoc}1) {create(:#{assoc}" + (@hawk_keys["#{assoc}_id".to_sym] ? ", #{@auth.gsub('current_', '')}: #{@auth}": "") + ")}"
|
13
|
+
" let!(:#{assoc}1) {create(:#{assoc}" + (@hawk_keys["#{assoc}_id".to_sym] ? ", #{@auth.gsub('current_', '')}: #{@auth}": "") + ")}"
|
14
14
|
end
|
15
15
|
else
|
16
16
|
end
|
@@ -46,10 +46,10 @@ describe "interaction for <%= controller_class_name %>", type: :feature do
|
|
46
46
|
"#{col}: rand(100)"
|
47
47
|
end
|
48
48
|
end
|
49
|
-
}.compact.join(",
|
49
|
+
}.compact.join(", ")
|
50
50
|
%>let!(:<%= singular %>1) {create(:<%= singular %><%= object_parent_mapping_as_argument_for_specs %> <%= item1_addOns %> )}
|
51
51
|
<%= objest_nest_factory_setup %> <% unless @god %>
|
52
|
-
before
|
52
|
+
before do
|
53
53
|
login_as(<%= @auth %>)
|
54
54
|
end <% end %>
|
55
55
|
|
@@ -78,61 +78,9 @@ describe "interaction for <%= controller_class_name %>", type: :feature do
|
|
78
78
|
<% unless @no_create %> describe "new & create" do
|
79
79
|
it "should create a new <%= singular.titlecase %>" do
|
80
80
|
visit <%= path_helper_plural %>
|
81
|
-
click_link "New <%=
|
82
|
-
expect(page).to have_selector(:xpath, './/h3[contains(., "New <%=
|
83
|
-
|
84
|
-
<%=
|
85
|
-
(@columns - @show_only).map { |col|
|
86
|
-
type = eval("#{singular_class}.columns_hash['#{col}']").type
|
87
|
-
case type
|
88
|
-
when :date
|
89
|
-
" " + "new_#{col} = Date.current + (rand(100).days) \n" +
|
90
|
-
' ' + "find(\"[name='#{singular}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
91
|
-
when :time
|
92
|
-
# " " + "new_#{col} = DateTime.current + (rand(100).days) \n" +
|
93
|
-
# ' ' + "find(\"[name='#{singular}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
94
|
-
|
95
|
-
when :datetime
|
96
|
-
" " + "new_#{col} = DateTime.current + (rand(100).days) \n" +
|
97
|
-
' ' + "find(\"[name='#{singular}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
98
|
-
|
99
|
-
when :integer
|
100
|
-
|
101
|
-
if col.to_s.ends_with?("_id")
|
102
|
-
assoc = col.to_s.gsub('_id','')
|
103
|
-
" #{col}_selector = find(\"[name='#{singular}[#{col}]']\").click \n" +
|
104
|
-
" #{col}_selector.first('option', text: #{assoc}1.name).select_option"
|
105
|
-
else
|
106
|
-
" new_#{col} = rand(10) \n" +
|
107
|
-
" find(\"[name='#{singular}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
108
|
-
|
109
|
-
end
|
110
|
-
|
111
|
-
when :enum
|
112
|
-
" list_of_#{col.to_s} = #{singular_class}.defined_enums['#{col.to_s}'].keys \n" +
|
113
|
-
" " + "new_#{col.to_s} = list_of_#{col.to_s}[rand(list_of_#{col.to_s}.length)].to_s \n" +
|
114
|
-
' find("select[name=\'' + singular + '[' + col.to_s + ']\'] option[value=\'#{new_' + col.to_s + '}\']").select_option'
|
115
|
-
|
116
|
-
when :boolean
|
117
|
-
" new_#{col} = rand(2).floor \n" +
|
118
|
-
" find(\"[name='#{singular}[#{col}]'][value='\#{new_" + col.to_s + "}']\").choose"
|
119
|
-
when :string
|
120
|
-
if col.to_s.include?("email")
|
121
|
-
" " + "new_#{col} = 'new_test-email@nowhere.com' \n" +
|
122
|
-
" find(\"[name='#{singular}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
123
|
-
|
124
|
-
else
|
125
|
-
" " + "new_#{col} = 'new_test-email@nowhere.com' \n" +
|
126
|
-
" find(\"[name='#{singular}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
127
|
-
end
|
128
|
-
when :text
|
129
|
-
" " + "new_#{col} = FFaker::Lorem.paragraphs(1).join("") \n" +
|
130
|
-
" find(\"[name='#{singular}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
131
|
-
end
|
132
|
-
|
133
|
-
}.join("\n")
|
134
|
-
|
135
|
-
%>
|
81
|
+
click_link "New <%= thing_label %>"
|
82
|
+
expect(page).to have_selector(:xpath, './/h3[contains(., "New <%= thing_label %>")]')
|
83
|
+
<%= test_capybara_block %>
|
136
84
|
click_button "Save"
|
137
85
|
expect(page).to have_content("Successfully created")
|
138
86
|
<%=" " +
|
@@ -168,70 +116,7 @@ describe "interaction for <%= controller_class_name %>", type: :feature do
|
|
168
116
|
find("a.edit-<%= singular %>-button[href='/<%= namespace_with_slash %><%= plural %>/#{<%= singular %>1.id}/edit']").click
|
169
117
|
|
170
118
|
expect(page).to have_content("Editing #{<%= singular %>1.<%= @display_class %>.squish || "(no name)"}")
|
171
|
-
<%=
|
172
|
-
(@columns - @show_only).map { |col|
|
173
|
-
type = eval("#{singular_class}.columns_hash['#{col}']").type
|
174
|
-
limit = eval("#{singular_class}.columns_hash['#{col}']").limit
|
175
|
-
sql_type = eval("#{singular_class}.columns_hash['#{col}']").sql_type
|
176
|
-
case type
|
177
|
-
when :datetime
|
178
|
-
" new_#{col} = DateTime.current + 1.day \n" +
|
179
|
-
" find(\"[name='#{singular}[#{col}]']\").fill_in(with: new_#{col.to_s})"
|
180
|
-
when :integer
|
181
|
-
if !col.to_s.ends_with?("_id")
|
182
|
-
" new_#{col} = rand(10000).floor \n" +
|
183
|
-
" find(\"[name='#{singular}[#{col}]']\").fill_in(with: new_#{col.to_s})"
|
184
|
-
end
|
185
|
-
when :text
|
186
|
-
if sql_type == "text"
|
187
|
-
" " + "new_#{col.to_s} = FFaker::Lorem.paragraphs(3).join \n" +
|
188
|
-
' find("textarea[name=\'' + singular + '[' + col.to_s + ']\']").fill_in(with: new_' + col.to_s + ')'
|
189
|
-
|
190
|
-
else # unreachable?
|
191
|
-
" " + "new_#{col.to_s} = FFaker::Name.name \n" +
|
192
|
-
' find("input[name=\'' + singular + '[' + col.to_s + ']\']").fill_in(with: new_' + col.to_s + ')'
|
193
|
-
end
|
194
|
-
when :string
|
195
|
-
|
196
|
-
if col.to_s.include?("email")
|
197
|
-
" " + "new_#{col} = 'new_test-email@nowhere.com' \n" +
|
198
|
-
" find(\"[name='#{singular}[#{ col.to_s }]']\").fill_in(with: new_#{col.to_s})"
|
199
|
-
|
200
|
-
elsif sql_type == "varchar"
|
201
|
-
" " + "new_#{col.to_s} = FFaker::Name.name \n" +
|
202
|
-
' find("input[name=\'' + singular + '[' + col.to_s + ']\']").fill_in(with: new_' + col.to_s + ')'
|
203
|
-
else
|
204
|
-
" " + "new_#{col.to_s} = FFaker::Lorem.paragraphs(1).join \n" +
|
205
|
-
' find("input[name=\'' + singular + '[' + col.to_s + ']\']").fill_in(with: new_' + col.to_s + ')'
|
206
|
-
end
|
207
|
-
when :boolean
|
208
|
-
" new_#{col} = rand(2).floor \n" +
|
209
|
-
" find(\"[name='#{singular}[#{col}]'][value='\#{new_#{col}}']\").choose"
|
210
|
-
when :float
|
211
|
-
" new_#{col} = rand(1)*5000 \n" +
|
212
|
-
" find(\"[name='#{singular}[#{col}]']\").fill_in(with: new_#{col.to_s })"
|
213
|
-
when :date
|
214
|
-
" new_#{col} = Date.current + rand(100).days \n" +
|
215
|
-
" find(\"[name='#{singular}[#{col}]']\").fill_in(with: new_#{col.to_s })"
|
216
|
-
when :time
|
217
|
-
" new_#{col} = Time.current + rand(144).hours \n" +
|
218
|
-
" find(\"[name='#{singular}[#{col}]']\").fill_in(with: new_#{col.to_s })"
|
219
|
-
when :datetime
|
220
|
-
" new_#{col} = DateTime.current + rand(1000).minutes \n" +
|
221
|
-
" find(\"[name='#{singular}[#{col}]']\").fill_in(with: new_#{col.to_s })"
|
222
|
-
|
223
|
-
when :enum
|
224
|
-
" list_of_#{col.to_s} = #{singular_class}.defined_enums['#{col.to_s}'].keys \n" +
|
225
|
-
" " + "new_#{col.to_s} = list_of_#{col.to_s}[rand(list_of_#{col.to_s}.length)].to_s \n" +
|
226
|
-
' find("select[name=\'' + singular + '[' + col.to_s + ']\'] option[value=\'#{new_' + col.to_s + '}\']").select_option'
|
227
|
-
|
228
|
-
else
|
229
|
-
" " + "new_#{col.to_s} = FFaker::Name.name \n" +
|
230
|
-
' find("input[name=\'' + singular + '[' + col.to_s + ']\']").fill_in(with: new_' + col.to_s + ')'
|
231
|
-
|
232
|
-
end
|
233
|
-
}.join("\n")
|
234
|
-
%>
|
119
|
+
<%= test_capybara_block %>
|
235
120
|
click_button "Save"
|
236
121
|
within("turbo-frame#<%= singular %>__#{<%= singular %>1.id} ") do
|
237
122
|
<%=
|
data/lib/hotglue/version.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
rm dummy/app/controllers/ghis_controller.rb
|
3
|
+
rm dummy/app/controllers/abcs_controller.rb
|
4
|
+
rm dummy/app/controllers/dfgs_controller.rb
|
5
|
+
rm dummy/app/controllers/cantelopes_controller.rb
|
6
|
+
rm dummy/app/controllers/jkls_controller.rb
|
7
|
+
rm dummy/app/controllers/users_controller.rb
|
8
|
+
|
9
|
+
rm -rf dummy/app/views/cantelopes/*
|
10
|
+
rm -rf dummy/app/views/jkls/*
|
11
|
+
rm -rf dummy/app/views/ghis/*
|
12
|
+
rm -rf dummy/app/views/abcs/*
|
13
|
+
rm -rf dummy/app/views/dfgs/*
|
14
|
+
rm -rf dummy/app/views/users/*
|
15
|
+
|
16
|
+
/bin/rm -rf dummy/spec/system/
|
17
|
+
|
18
|
+
|
19
|
+
# !("application_controller.rb"|"welcome_controller.rb")
|
20
|
+
#find dummy/app/views/ -type f ! -name "application.html.erb" ! -name "welcome/index.erb" -delete
|
data/script/test
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
clean_generated_code() {
|
4
|
+
./clean_generated_code
|
5
|
+
}
|
6
|
+
|
7
|
+
echo "Internal test suite for Hot Glue (install, basic commands)..."
|
8
|
+
# the internal specs test only Hot Glue's command line usage
|
9
|
+
rspec spec
|
10
|
+
|
11
|
+
script/clean_generated_code
|
12
|
+
|
13
|
+
echo "Integration test suite for Hot Glue..."
|
14
|
+
# note that the dummy/ is in the root of the repository
|
15
|
+
# these specs generate several controllers & specs and then run the generated
|
16
|
+
# specs to test the generated code
|
17
|
+
|
18
|
+
cd dummy
|
19
|
+
|
20
|
+
echo "Setting up database..."
|
21
|
+
|
22
|
+
bundle install
|
23
|
+
rake db:create db:reset db:test:prepare
|
24
|
+
|
25
|
+
echo "Generating all code for testing..."
|
26
|
+
rails generate hot_glue:scaffold Abc --gd
|
27
|
+
|
28
|
+
rails generate hot_glue:scaffold Ghi --gd
|
29
|
+
|
30
|
+
rails generate hot_glue:scaffold Dfg --auth=current_user
|
31
|
+
|
32
|
+
rails generate hot_glue:scaffold Fruits::Cantelope --gd
|
33
|
+
|
34
|
+
#rails generate hot_glue:scaffold User --no-create --self-auth
|
35
|
+
#rails generate hot_glue:scaffold Jkl --gd
|
36
|
+
#rails generate hot_glue:scaffold Pet --gd
|
37
|
+
#rails generate hot_glue:scaffold Appointment --hawk=pets --gd
|
38
|
+
#rails generate hot_glue:scaffold Humen --gd
|
39
|
+
#rails generate hot_glue:scaffold Family --gd
|
40
|
+
|
41
|
+
|
42
|
+
rspec spec || exit
|
43
|
+
|
44
|
+
cd ../
|
45
|
+
|
46
|
+
script/clean_generated_code
|
47
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hot-glue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Fleetwood-Boldt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -59,21 +59,19 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- ".circleci/config.yml"
|
63
62
|
- ".github/FUNDING.yml"
|
63
|
+
- ".github/workflows/test.yml"
|
64
64
|
- ".gitignore"
|
65
|
+
- ".ruby-version"
|
65
66
|
- ".travis.yml"
|
66
67
|
- Gemfile
|
67
|
-
- Gemfile.lock
|
68
68
|
- LICENSE
|
69
69
|
- README.md
|
70
70
|
- README2.md
|
71
|
-
- Rakefile
|
72
71
|
- app/assets/config/manifest.js
|
73
72
|
- app/helpers/hot_glue/controller_helper.rb
|
74
73
|
- app/helpers/hot_glue_helper.rb
|
75
74
|
- app/views/layouts/_flash_notices.erb
|
76
|
-
- bin/rails
|
77
75
|
- config/database.yml
|
78
76
|
- config/hot_glue.yml
|
79
77
|
- db/schema.rb
|
@@ -124,11 +122,15 @@ files:
|
|
124
122
|
- lib/hot-glue.rb
|
125
123
|
- lib/hotglue/engine.rb
|
126
124
|
- lib/hotglue/version.rb
|
125
|
+
- script/clean_generated_code
|
126
|
+
- script/test
|
127
127
|
homepage: https://heliosdev.shop/p/hot-glue?utm_source=rubygems.org&utm_campaign=rubygems_link
|
128
128
|
licenses:
|
129
|
-
-
|
129
|
+
- Nonstandard
|
130
130
|
metadata:
|
131
131
|
source_code_uri: https://github.com/jasonfb/hot-glue
|
132
|
+
homepage: https://heliosdev.shop/hot-glue
|
133
|
+
funding: https://tekduds.com
|
132
134
|
post_install_message: |
|
133
135
|
---------------------------------------------
|
134
136
|
Welcome to Hot Glue - A Scaffold Building Companion for Hotwire + Turbo-Rails
|
@@ -148,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
150
|
- !ruby/object:Gem::Version
|
149
151
|
version: '0'
|
150
152
|
requirements: []
|
151
|
-
rubygems_version: 3.
|
153
|
+
rubygems_version: 3.3.7
|
152
154
|
signing_key:
|
153
155
|
specification_version: 4
|
154
156
|
summary: A gem to build Tubro Rails scaffolding.
|
data/.circleci/config.yml
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
# Use the latest 2.1 version of CircleCI pipeline process engine.
|
2
|
-
# See: https://circleci.com/docs/2.0/configuration-reference
|
3
|
-
version: 2.1
|
4
|
-
|
5
|
-
# Orbs are reusable packages of CircleCI configuration that you may share across projects, enabling you to create encapsulated, parameterized commands, jobs, and executors that can be used across multiple projects.
|
6
|
-
# See: https://circleci.com/docs/2.0/orb-intro/
|
7
|
-
orbs:
|
8
|
-
ruby: circleci/ruby@1.4.0
|
9
|
-
|
10
|
-
# Define a job to be invoked later in a workflow.
|
11
|
-
# See: https://circleci.com/docs/2.0/configuration-reference/#jobs
|
12
|
-
jobs:
|
13
|
-
build:
|
14
|
-
docker:
|
15
|
-
- image: cimg/ruby:2.7.5-browsers
|
16
|
-
executor: ruby/default
|
17
|
-
steps:
|
18
|
-
- checkout
|
19
|
-
- ruby/install-deps # use the ruby orb to install dependencies
|
20
|
-
|
21
|
-
- run:
|
22
|
-
name: Which bundler?
|
23
|
-
command: bundle -v
|
24
|
-
test: # our next job, called "test"
|
25
|
-
parallelism: 1
|
26
|
-
# here we set TWO docker images.
|
27
|
-
docker:
|
28
|
-
|
29
|
-
- image: cimg/ruby:2.7.5-browsers # this is our primary docker image, where step commands run.
|
30
|
-
auth:
|
31
|
-
username: mydockerhub-user
|
32
|
-
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
|
33
|
-
- image: redis:6.2.6
|
34
|
-
- image: circleci/postgres:9.5-alpine
|
35
|
-
auth:
|
36
|
-
username: mydockerhub-user
|
37
|
-
password: $DOCKERHUB_PASSWORD # context / project UI env-var reference
|
38
|
-
environment: # add POSTGRES environment variables.
|
39
|
-
POSTGRES_USER: circleci-demo-ruby
|
40
|
-
POSTGRES_DB: hot-glue-test
|
41
|
-
POSTGRES_PASSWORD: ""
|
42
|
-
# environment variables specific to Ruby/Rails, applied to the primary container.
|
43
|
-
environment:
|
44
|
-
BUNDLE_JOBS: "3"
|
45
|
-
BUNDLE_RETRY: "3"
|
46
|
-
PGHOST: 127.0.0.1
|
47
|
-
PGUSER: circleci-demo-ruby
|
48
|
-
PGPASSWORD: ""
|
49
|
-
RAILS_ENV: test
|
50
|
-
# A series of steps to run, some are similar to those in "build".
|
51
|
-
steps:
|
52
|
-
- checkout
|
53
|
-
- ruby/install-deps
|
54
|
-
# Here we make sure that the secondary container boots
|
55
|
-
# up before we run operations on the database.
|
56
|
-
- run:
|
57
|
-
name: Wait for DB
|
58
|
-
command: dockerize -wait tcp://localhost:5432 -timeout 1m
|
59
|
-
# Run rspec in parallel
|
60
|
-
- run: bundle exec rspec --profile 10 --format RspecJunitFormatter --out /tmp/test-results/rspec/results.xml --format progress
|
61
|
-
|
62
|
-
# We use workflows to orchestrate the jobs that we declared above.
|
63
|
-
workflows:
|
64
|
-
version: 2
|
65
|
-
build_and_test: # The name of our workflow is "build_and_test"
|
66
|
-
jobs: # The list of jobs we run as part of this workflow.
|
67
|
-
- build # Run build first.
|
68
|
-
- test: # Then run test,
|
69
|
-
requires: # Test requires that build passes for it to run.
|
70
|
-
- build # Finally, run the build job.
|
71
|
-
|