rails_app_generator 0.2.43 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +22 -1
  4. data/after_templates/addons/factory_bot/_.rb +82 -0
  5. data/after_templates/addons/factory_bot/app/controllers/home_controller.rb +10 -0
  6. data/after_templates/addons/factory_bot/app/services/seed_service.rb +35 -0
  7. data/after_templates/addons/factory_bot/app/views/home/index.html.erb +3 -0
  8. data/after_templates/addons/factory_bot/app/views/layouts/_footer.html.erb +0 -0
  9. data/after_templates/addons/factory_bot/app/views/layouts/_navbar.html.erb +10 -0
  10. data/after_templates/addons/factory_bot/app/views/layouts/application.html.erb +29 -0
  11. data/after_templates/addons/factory_bot/db/seeds.rb +1 -0
  12. data/after_templates/addons/factory_bot/factories.rb +73 -0
  13. data/after_templates/addons/factory_bot/factory-create-user.png +0 -0
  14. data/after_templates/addons/factory_bot/factory-employee-bad.png +0 -0
  15. data/after_templates/addons/factory_bot/factory-employee-good.png +0 -0
  16. data/after_templates/addons/factory_bot/factory-role.png +0 -0
  17. data/after_templates/addons/factory_bot/factory-video.png +0 -0
  18. data/after_templates/application/klueless/.rubocop.yml +40 -0
  19. data/after_templates/application/klueless/_.rb +31 -12
  20. data/after_templates/application/klueless/app/avo/cards/amount_raised.rb +14 -0
  21. data/after_templates/application/klueless/app/avo/cards/example_custom_partial.rb +7 -0
  22. data/after_templates/application/klueless/app/avo/cards/example_metric.rb +38 -0
  23. data/after_templates/application/klueless/app/avo/cards/percent_done.rb +10 -0
  24. data/after_templates/application/klueless/app/avo/cards/rubocop_card.rb +10 -0
  25. data/after_templates/application/klueless/app/avo/filters/rubocop_entry_cop_filter.rb +15 -0
  26. data/after_templates/application/klueless/app/avo/filters/rubocop_entry_filename_filter.rb +13 -0
  27. data/after_templates/application/klueless/app/avo/filters/rubocop_entry_message_filter.rb +13 -0
  28. data/after_templates/application/klueless/app/avo/filters/rubocop_entry_status_filter.rb +15 -0
  29. data/after_templates/application/klueless/app/avo/filters/table_count_entry_tablename_filter.rb +13 -0
  30. data/after_templates/application/klueless/app/avo/resource_tools/rubocop_info.rb +4 -0
  31. data/after_templates/application/klueless/app/avo/resources/rubocop_entry_resource.rb +28 -0
  32. data/after_templates/application/klueless/app/avo/resources/rubocop_resource.rb +9 -0
  33. data/after_templates/application/klueless/app/avo/resources/table_count_entry_resource.rb +18 -0
  34. data/after_templates/application/klueless/app/controllers/home_controller.rb +9 -1
  35. data/after_templates/application/klueless/app/services/seed_service.rb +49 -3
  36. data/after_templates/application/klueless/app/views/home/index.html.erb +2 -2
  37. data/after_templates/application/klueless/app/views/layouts/_navbar.html.erb +6 -3
  38. data/after_templates/application/klueless/config/initializers/avo.rb +4 -2
  39. data/after_templates/application/klueless/db/seeds.rb +1 -18
  40. data/after_templates/application/klueless/db/views/rubocop_entries_v01.sql +23 -0
  41. data/after_templates/application/klueless/db/views/table_count_entries_v01.sql +11 -0
  42. data/docs/last_run/app_generator_data.json +7 -7
  43. data/docs/last_run/rails_options_data.json +10 -8
  44. data/lib/rails_app_generator/app_generator.rb +18 -4
  45. data/lib/rails_app_generator/cli/profile.rb +1 -3
  46. data/lib/rails_app_generator/starter.rb +49 -8
  47. data/lib/rails_app_generator/version.rb +1 -1
  48. data/package-lock.json +2 -2
  49. data/package.json +1 -1
  50. data/profiles/addons/factory_bot.json +18 -0
  51. data/profiles/addons/faker.json +1 -1
  52. data/profiles/application/klueless.json +7 -3
  53. data/templates/README.md.erb +2 -2
  54. data/templates/thor_task/profile/app/services/seed_service.rb +8 -4
  55. data/templates/thor_task/profile/profile.json.tt +2 -1
  56. metadata +33 -2
@@ -0,0 +1,28 @@
1
+ class RubocopEntryResource < Avo::BaseResource
2
+ filter RubocopEntryFilenameFilter
3
+ filter RubocopEntryMessageFilter
4
+ filter RubocopEntryStatusFilter
5
+ filter RubocopEntryCopFilter
6
+
7
+ self.title = :file_name
8
+ self.includes = []
9
+
10
+ self.search_query = ->(params:) do
11
+ scope.ransack(
12
+ cop_cont: params[:q],
13
+ file_name_cont: params[:q],
14
+ position_cont: params[:q],
15
+ status_cont: params[:q],
16
+ status_message_cont: params[:q],
17
+ m: "or"
18
+ ).result(distinct: false)
19
+ end
20
+
21
+ field :cop , as: :text
22
+ field :file_name , as: :text
23
+ # field :full_line , as: :text
24
+ field :position , as: :text
25
+ # field :status , as: :text
26
+ field :status_message , as: :text
27
+ field :message , as: :text
28
+ end
@@ -9,4 +9,13 @@ class RubocopResource < Avo::BaseResource
9
9
  field :id, as: :id
10
10
  # field :data, as: :textarea, only_on: [:edit]
11
11
  # field :user_name, as: :text
12
+ tool RubocopInfo, show_on: :edit
13
+
14
+ # tabs do
15
+ # tab "List of Cops" do
16
+ # panel do
17
+ # field :id, as: :id
18
+ # end
19
+ # end
20
+ # end
12
21
  end
@@ -0,0 +1,18 @@
1
+ class TableCountEntryResource < Avo::BaseResource
2
+ filter TableCountEntryTablenameFilter
3
+
4
+ self.title = :table_count
5
+ self.includes = []
6
+
7
+ self.search_query = ->(params:) do
8
+ scope.ransack(
9
+ table_count_cont: params[:q],
10
+ m: "or"
11
+ ).result(distinct: false)
12
+ end
13
+
14
+ field :table_count, as: :text
15
+ field :au, as: :text
16
+ field :eu, as: :text
17
+ field :us, as: :text
18
+ end
@@ -7,6 +7,14 @@ class HomeController < ApplicationController
7
7
  end
8
8
 
9
9
  def reseed
10
- SeedService.seed
10
+ SeedService.seed(variant: :refresh)
11
+
12
+ redirect_back_or_to root_path
13
+ end
14
+
15
+ def refresh_material_view
16
+ RubocopEntry.refresh
17
+
18
+ redirect_back_or_to root_path
11
19
  end
12
20
  end
@@ -1,7 +1,53 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class SeedService
4
+ PRINTSPEAK_DATA_PATH = "/Users/davidcruwys/dev/printspeak/printspeak-generator/.builders/.data/"
5
+
2
6
  class << self
3
- def seed
4
- puts 'sssssssssssssssssssssss'
7
+ def seed(variant: :reset)
8
+ service = SeedService.new
9
+ service.call(variant: variant)
5
10
  end
6
11
  end
7
- end
12
+
13
+ def call(variant: :reset)
14
+ reset if variant == :reset
15
+ refresh if variant == :refresh
16
+ create
17
+ end
18
+
19
+ private
20
+
21
+ def get_data(filename)
22
+ json = File.read(File.join(PRINTSPEAK_DATA_PATH, filename))
23
+ JSON.parse(json)
24
+ end
25
+
26
+ def reset
27
+ User.delete_all
28
+ RailsApp.delete_all
29
+ Rubocop.delete_all
30
+ TableCount.delete_all
31
+ end
32
+
33
+ def refresh
34
+ end
35
+
36
+ def create
37
+ refresh_printspeak
38
+
39
+ RubocopEntry.refresh
40
+ end
41
+
42
+ def refresh_printspeak
43
+ david = User.create_with(name: 'david', password: 'password').find_or_create_by(email: 'david@site.com')
44
+
45
+ rails_app = RailsApp.create_with(user: david).find_or_create_by(name: 'Printspeak')
46
+
47
+ puts 'Create Rubocop Data'
48
+ Rubocop.create(rails_app: rails_app, data: get_data('rubocop.json'))
49
+
50
+ puts 'Create Table Count Data'
51
+ TableCount.create(rails_app: rails_app, data: get_data('sql_count.json'))
52
+ end
53
+ end
@@ -1,6 +1,6 @@
1
1
  <h1><%= I18n.t('application_name') %></h1>
2
2
 
3
- <p>The Klue is to do Less</p>
3
+ <%# <p>The Klue is to do Less</p>
4
4
 
5
5
  <p>No Code as a Service - Rails Application Builder</p>
6
-
6
+ %>
@@ -1,4 +1,7 @@
1
- <%= link_to 'Home', root_path %>
2
- <%= link_to 'Quick Sign In', home_quick_signin_path %> |
3
- <%= link_to 'Admin', avo_path %>
1
+ <%= link_to 'Home', root_path %>
2
+ | <%= link_to 'Bookings', bookings_path %>
3
+ | <%= link_to 'Re-Seed', home_reseed_path, style: 'color: blue; font-weight: 600;' %>
4
+ | <%= link_to 'Refresh Material View', home_refresh_material_view_path, style: 'color: blue; font-weight: 600;' %>
5
+ | <%= link_to 'Quick Sign In', home_quick_signin_path %>
6
+ | <%= link_to 'Admin', avo_path %>
4
7
  <hr />
@@ -78,8 +78,10 @@ Avo.configure do |config|
78
78
  resource :table_count, label: 'Table Count'
79
79
  end
80
80
 
81
- # group "Xxx" do # , collapsable: true, collapsed: true
82
- # end
81
+ group "Live Views", collapsable: true, collapsed: true do
82
+ resource :rubocop_entries, label: 'Rubo Cop'
83
+ resource :table_count_entries, label: 'Table Count'
84
+ end
83
85
 
84
86
  group "Admin" do
85
87
  resource :user
@@ -1,18 +1 @@
1
- @data_path = "/Users/davidcruwys/dev/printspeak/printspeak-generator/.builders/.data/"
2
-
3
- david = User.create_with(name: 'david', password: 'password').find_or_create_by(email: 'david@site.com')
4
-
5
- def get_data(filename)
6
- json = File.read(File.join(@data_path, filename))
7
- JSON.parse(json)
8
- end
9
-
10
- rails_app = RailsApp.create(name: 'Printspeak', user: david)
11
-
12
- puts 'Create Rubocop Data'
13
- Rubocop.create(rails_app: rails_app, data: get_data('rubocop.json'))
14
-
15
- puts 'Create Table Count Data'
16
- TableCount.create(rails_app: rails_app, data: get_data('sql_count.json'))
17
-
18
-
1
+ SeedService.seed
@@ -0,0 +1,23 @@
1
+ WITH
2
+
3
+ files AS (
4
+ SELECT jsonb_array_elements(data->'files') FROM rubocops
5
+ ),
6
+ lines AS (
7
+ SELECT
8
+ jsonb_array_elements(files)->>'file' as file,
9
+ jsonb_array_elements(files)->'lines' as lines
10
+ FROM files
11
+ ),
12
+ denormalized AS (
13
+ SELECT
14
+ jsonb_array_elements(lines)->>'position' as position,
15
+ jsonb_array_elements(lines)->>'status' as status,
16
+ jsonb_array_elements(lines)->>'status_message' as status_message,
17
+ jsonb_array_elements(lines)->>'cop' as cop,
18
+ jsonb_array_elements(lines)->>'message' as message,
19
+ jsonb_array_elements(lines)->>'full_line' as full_line,
20
+ jsonb_array_elements(lines)->>'file_name' as file_name
21
+ FROM lines
22
+ )
23
+ select row_number() OVER () AS id, * from denormalized
@@ -0,0 +1,11 @@
1
+ WITH
2
+
3
+ denormalized AS (
4
+ SELECT
5
+ jsonb_array_elements(data)->>'table_name' as table_name,
6
+ jsonb_array_elements(data)->>'au' as au,
7
+ jsonb_array_elements(data)->>'eu' as eu,
8
+ jsonb_array_elements(data)->>'us' as us
9
+ FROM table_counts
10
+ )
11
+ select * from denormalized order by table_name
@@ -3,8 +3,8 @@
3
3
  "skip_namespace": false,
4
4
  "skip_collision_check": false,
5
5
  "ruby": "/Users/davidcruwys/.asdf/installs/ruby/3.1.1/bin/ruby",
6
- "database": "postgresql",
7
- "skip_git": true,
6
+ "database": "sqlite3",
7
+ "skip_git": false,
8
8
  "skip_keeps": false,
9
9
  "skip_action_mailer": false,
10
10
  "skip_action_mailbox": false,
@@ -32,7 +32,7 @@
32
32
  "test": "rspec",
33
33
  "add_acts_as_list": false,
34
34
  "add_administrate": false,
35
- "add_annotate": false,
35
+ "add_annotate": true,
36
36
  "add_avo": false,
37
37
  "add_bcrypt": false,
38
38
  "add_brakeman": false,
@@ -42,8 +42,8 @@
42
42
  "add_devise": false,
43
43
  "add_devise_masquerade": false,
44
44
  "add_dotenv": false,
45
- "add_factory_bot_rails": false,
46
- "add_faker": false,
45
+ "add_factory_bot_rails": true,
46
+ "add_faker": true,
47
47
  "add_friendly_id": false,
48
48
  "add_groupdate": false,
49
49
  "add_hexapdf": false,
@@ -60,12 +60,12 @@
60
60
  "add_pretender": false,
61
61
  "add_public_suffix": false,
62
62
  "add_rails_html_sanitizer": false,
63
- "add_scenic": true,
63
+ "add_scenic": false,
64
64
  "add_ransack": false,
65
65
  "add_redcarpet": false,
66
66
  "add_rolify": false,
67
67
  "add_rubocop": false,
68
68
  "add_twilio_ruby": false,
69
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/scenic/_.rb"
69
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/factory_bot/_.rb"
70
70
  }
71
71
  }
@@ -7,9 +7,9 @@
7
7
  "quiet": false,
8
8
  "skip": false,
9
9
  "ruby": "/Users/davidcruwys/.asdf/installs/ruby/3.1.1/bin/ruby",
10
- "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/scenic/_.rb",
11
- "database": "postgresql",
12
- "skip_git": true,
10
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/factory_bot/_.rb",
11
+ "database": "sqlite3",
12
+ "skip_git": false,
13
13
  "skip_keeps": false,
14
14
  "skip_action_mailer": false,
15
15
  "skip_action_mailbox": false,
@@ -42,7 +42,7 @@
42
42
  "test": "rspec",
43
43
  "add_acts_as_list": false,
44
44
  "add_administrate": false,
45
- "add_annotate": false,
45
+ "add_annotate": true,
46
46
  "add_avo": false,
47
47
  "add_bcrypt": false,
48
48
  "add_brakeman": false,
@@ -52,8 +52,8 @@
52
52
  "add_devise": false,
53
53
  "add_devise_masquerade": false,
54
54
  "add_dotenv": false,
55
- "add_factory_bot_rails": false,
56
- "add_faker": false,
55
+ "add_factory_bot_rails": true,
56
+ "add_faker": true,
57
57
  "add_friendly_id": false,
58
58
  "add_groupdate": false,
59
59
  "add_hexapdf": false,
@@ -70,11 +70,13 @@
70
70
  "add_pretender": false,
71
71
  "add_public_suffix": false,
72
72
  "add_rails_html_sanitizer": false,
73
- "add_scenic": true,
73
+ "add_scenic": false,
74
74
  "add_ransack": false,
75
75
  "add_redcarpet": false,
76
76
  "add_rolify": false,
77
77
  "add_rubocop": false,
78
- "add_twilio_ruby": false
78
+ "add_twilio_ruby": false,
79
+ "add_factory_bot": true,
80
+ "add_rspec": true
79
81
  }
80
82
  }
@@ -71,7 +71,7 @@ module RailsAppGenerator
71
71
  puts "gem not available for '#{gem_name}'"
72
72
 
73
73
  # THIS CODE DOES NOT REALLY WORK
74
- return Dir.pwd if Dir.pwd.end_with?('dev/kgems/rails_app_generator') # code smell: this is for my local development environment
74
+ return Dir.pwd if Dir.pwd.end_with?('dev/kgems/rails_app_generator') # code smell: this is for my local test environment
75
75
 
76
76
  raise "'#{gem_name}' not available"
77
77
  end
@@ -103,7 +103,7 @@ module RailsAppGenerator
103
103
  # def rails_customization
104
104
  # puts 'rails customizations'
105
105
  # # invoke :customize_gemfile
106
- # # invoke :setup_development_environment
106
+ # # invoke :setup_test_environment
107
107
  # # invoke :setup_production_environment
108
108
  # # invoke :setup_secret_token
109
109
  # # invoke :configure_app
@@ -292,8 +292,17 @@ module RailsAppGenerator
292
292
  rails_command('db:migrate')
293
293
  end
294
294
 
295
- def db(drop: false, create: false, migrate: false, seed: false)
295
+ def db_recreate(environment: nil)
296
+ db_environment(environment) if environment
297
+ # when a DB does not exist, the drop will fail, but we still need to run create separately
298
+ db(drop: true)
299
+ db(create: true)
300
+ end
301
+
302
+ def db(environment: nil, drop: false, create: false, migrate: false, seed: false)
296
303
  commands = []
304
+
305
+ commands << "db:environment:set RAILS_ENV=#{environment}" if environment
297
306
  commands << 'db:drop' if drop
298
307
  commands << 'db:create' if create
299
308
  commands << 'db:migrate' if migrate
@@ -301,6 +310,10 @@ module RailsAppGenerator
301
310
  rails_command(commands.join(' '))
302
311
  end
303
312
 
313
+ def db_environment(environment)
314
+ rails_command("db:environment:set RAILS_ENV=#{environment}")
315
+ end
316
+
304
317
  def db_seed
305
318
  rails_command('db:seed')
306
319
  end
@@ -350,11 +363,12 @@ module RailsAppGenerator
350
363
 
351
364
  # copy_file in railties and copy_file in thor have different signatures
352
365
  # I may want to remove this method because it just causes pain at the moment
353
- def copy_file(source, destination, args = {})
366
+ def copy_file(source, destination = nil, args = {})
354
367
  # puts source
355
368
  # puts destination
356
369
  # puts args
357
370
  args = { force: true }.merge(args) if force_copy?
371
+ destination ||= source
358
372
 
359
373
  super(source, destination, args)
360
374
  end
@@ -29,9 +29,7 @@ module RailsAppGenerator
29
29
  RailsAppGenerator::Util.write_last_run('rails_options_data.json', opts.to_h)
30
30
 
31
31
  starter = RailsAppGenerator::Starter.new(**args)
32
-
33
- starter.delete_target_folder
34
- starter.start(opts)
32
+ starter.start(opts) if starter.handle_target_folder_found?
35
33
  end
36
34
  # rubocop:enable Metrics/AbcSize
37
35
  end
@@ -28,17 +28,22 @@ module RailsAppGenerator
28
28
  # points to templates related to rails addons
29
29
  attr_reader :addon_template_path
30
30
 
31
+ attr_reader :when_folder_exist # [abort destroy keep_git overwrite]
32
+
31
33
  attr_reader :capture_output
32
34
  attr_reader :console_output
33
35
 
36
+ # rubocop:disable Metrics/CyclomaticComplexity
34
37
  def initialize(**args)
35
- @app_path = args[:app_path] || '.'
36
- @destination_root = args[:destination_root] || Dir.pwd
37
- @rails_template_path = args[:rails_template_path] || AppGenerator.rails_template_path
38
- @override_template_path = args[:override_template_path] || AppGenerator.override_template_path
39
- @addon_template_path = args[:addon_template_path] || AppGenerator.addon_template_path
40
- @capture_output = args[:capture_output].nil? ? false : args[:capture_output]
38
+ @app_path = args[:app_path] || '.'
39
+ @destination_root = args[:destination_root] || Dir.pwd
40
+ @rails_template_path = args[:rails_template_path] || AppGenerator.rails_template_path
41
+ @override_template_path = args[:override_template_path] || AppGenerator.override_template_path
42
+ @addon_template_path = args[:addon_template_path] || AppGenerator.addon_template_path
43
+ @when_folder_exist = args[:when_folder_exist] || 'abort'
44
+ @capture_output = args[:capture_output].nil? ? false : args[:capture_output]
41
45
  end
46
+ # rubocop:enable Metrics/CyclomaticComplexity
42
47
 
43
48
  def target_path
44
49
  File.expand_path(File.join(destination_root, app_path))
@@ -58,12 +63,48 @@ module RailsAppGenerator
58
63
  end
59
64
  end
60
65
 
61
- def delete_target_folder
62
- FileUtils.rm_rf(target_path)
66
+ # rubocop:disable Metrics/AbcSize
67
+ def handle_target_folder_found?
68
+ return true unless File.directory?(target_path)
69
+
70
+ case when_folder_exist
71
+ when 'abort'
72
+ puts "Target folder [#{target_path}] already exists. Aborting"
73
+ puts 'Maybe you want to use when_folder_exist option with one of these values [destroy overwrite keep_git]'
74
+ false
75
+ when 'destroy'
76
+ puts "Target folder [#{target_path}] already exists. Destroying it"
77
+ FileUtils.rm_rf(target_path)
78
+ true
79
+ when 'keep_git'
80
+ puts "Target folder [#{target_path}] already exists. Wiping it but keeping git history"
81
+ clean_target_folder
82
+ true
83
+ when 'overwrite'
84
+ puts "Target folder [#{target_path}] already exists. Overwriting it"
85
+ true
86
+ else
87
+ raise "Invalid when_folder_exist: #{when_folder_exist}"
88
+ end
63
89
  end
90
+ # rubocop:enable Metrics/AbcSize
64
91
 
65
92
  private
66
93
 
94
+ def clean_target_folder
95
+ Dir.entries(target_path).each do |entry|
96
+ entry_path = File.join(target_path, entry)
97
+
98
+ next if ['.', '..', '.git'].include?(entry)
99
+
100
+ if File.file?(entry_path)
101
+ File.delete(entry_path)
102
+ elsif File.directory?(entry_path)
103
+ FileUtils.rm_rf(entry_path)
104
+ end
105
+ end
106
+ end
107
+
67
108
  # Rails options returns a flat array of options
68
109
  #
69
110
  # It can work accept a flat array of options or a
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.2.43'
4
+ VERSION = '0.3.2'
5
5
  end
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.43",
3
+ "version": "0.3.2",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.2.43",
9
+ "version": "0.3.2",
10
10
  "dependencies": {
11
11
  "daisyui": "^2.20.0"
12
12
  },
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.2.43",
3
+ "version": "0.3.2",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
@@ -0,0 +1,18 @@
1
+ {
2
+ "args": {
3
+ "app_path": "r7_factory_bot",
4
+ "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons",
5
+ "when_folder_exist": "keep_git"
6
+ },
7
+ "opts": {
8
+ "skip_git": false,
9
+ "skip_test": true,
10
+ "add_minimal_css": true,
11
+ "template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/addons/factory_bot/_.rb",
12
+ "add_annotate": true,
13
+ "add_factory_bot": true,
14
+ "add_factory_bot_rails": true,
15
+ "add_faker": true,
16
+ "add_rspec": true
17
+ }
18
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "args": {
3
- "app_path": "faker",
3
+ "app_path": "r7_faker",
4
4
  "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/addons"
5
5
  },
6
6
  "opts": {
@@ -2,7 +2,8 @@
2
2
  "args": {
3
3
  "app_path": "klueless",
4
4
  "destination_root": "/Users/davidcruwys/dev/kweb",
5
- "note": "add sidekiq to handle the data import tasks, add impersonate"
5
+ "note": "add sidekiq to handle the data import tasks, add impersonate",
6
+ "when_folder_exist": "keep_git"
6
7
  },
7
8
  "opts": {
8
9
  "skip_test": true,
@@ -17,7 +18,10 @@
17
18
  "add_dotenv": true,
18
19
  "add_factory_bot_rails": true,
19
20
  "add_faker": true,
20
- "add_ransack": false,
21
- "add_rubocop": true
21
+ "add_kaminari": true,
22
+ "add_lograge": true,
23
+ "add_ransack": true,
24
+ "add_rubocop": true,
25
+ "add_scenic": true
22
26
  }
23
27
  }
@@ -18,9 +18,9 @@ Open your browser on [localhost:3000](http://localhost:3000).
18
18
 
19
19
  ## Development
20
20
 
21
- This app was generated using [Schienenzeppelin](https://github.com/hschne/schienenzeppelin) - there are tons of little tweaks to simplify your development workflow.
21
+ This app was generated using [Klueless - RailsAppGenerator](https://github.com/klueless-io/rails_app_generator) - there are tons of little tweaks to simplify your development workflow.
22
22
 
23
- For more details refer to the [Documentation](https://github.com/hschne/schienenzeppelin)
23
+ For more details refer to the [Documentation](https://github.com/klueless-io/rails_app_generator)
24
24
 
25
25
  ## Deployment
26
26
 
@@ -1,13 +1,14 @@
1
1
  class SeedService
2
2
  class << self
3
- def seed
3
+ def seed(variant: :reset)
4
4
  service = SeedService.new
5
- service.call
5
+ service.call(variant: variant)
6
6
  end
7
7
  end
8
8
 
9
- def call
10
- reset
9
+ def call(variant: :reset)
10
+ reset if variant == :reset
11
+ refresh if variant == :refresh
11
12
  create
12
13
  end
13
14
 
@@ -19,6 +20,9 @@ class SeedService
19
20
  # Project.delete_all
20
21
  end
21
22
 
23
+ def refresh
24
+ end
25
+
22
26
  def create
23
27
  # FactoryBot.create_list(:post, rand(10..20))
24
28
  # FactoryBot.create_list(:person, rand(10..20))
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "args": {
3
3
  "app_path": "r7_<%= data.name_snake %>",
4
- "destination_root": "<%= data.destination_root %>"
4
+ "destination_root": "<%= data.destination_root %>",
5
+ "when_folder_exist": "destroy"
5
6
  },
6
7
  "opts": {
7
8
  "skip_git": true,