rails_app 0.8.1 → 0.9.0

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: fa0c7e932155134e3302a6ac298bf0042427dcbf1c43ee9ae91f44b4156718cb
4
- data.tar.gz: 2870a89982c68aa08b3a8ee772d88a781174630967097a2dec87dd91cde662b4
3
+ metadata.gz: 52a552ad38f9b0cd6267841541720a9f89db6000e68131eb8a34247f1a329fdc
4
+ data.tar.gz: 87e54f8b3f3a27327d426f14871e3ede7b5d7f5377a5ef54d586b77ec6953f99
5
5
  SHA512:
6
- metadata.gz: 2febb710ca10bbadc35bf436bf3aab125068ee2ae3c9b5415d3820217e12163a6ede6648afdfd660a89ca44ffa0a283426244c45b2be0984e12d56e2d595ccb1
7
- data.tar.gz: 4abdce09c8d37c63f164c1bf70678852491dd816dd9f90e2acd2666b40271e8c210ec5d48e045ca0e11b06e817c310af474249155f5adfc0ab2ec4738fc0a72e
6
+ metadata.gz: 0ce7c421dd28e008f52caf74b520e8bb2aa57ca13e8d21f7b4dc5c0cc6ab8357d3ffad3a18dd8f65b7ae80339475664fcf23ff28d5fb8a4d838f165bbb9e0e71
7
+ data.tar.gz: 54409b3d01c1bd0a11f4ca01bcd8ba0f0d153192127ab262b2e2f9a4bfafb7046fd2f8df04b84d37ed4451d6858fdb1ee9451296a1a214628bd031499de3e42e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.9.0](https://github.com/eclectic-coding/rails_app/tree/0.9.0) (2024-04-09)
4
+
5
+ [Full Changelog](https://github.com/eclectic-coding/rails_app/compare/0.8.1...0.9.0)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Add additional flags to CLI [\#26](https://github.com/eclectic-coding/rails_app/issues/26)
10
+ - Add additional flags to cli [\#30](https://github.com/eclectic-coding/rails_app/pull/30) ([eclectic-coding](https://github.com/eclectic-coding))
11
+
3
12
  ## [0.8.1](https://github.com/eclectic-coding/rails_app/tree/0.8.1) (2024-04-08)
4
13
 
5
14
  [Full Changelog](https://github.com/eclectic-coding/rails_app/compare/0.8.0...0.8.1)
data/lib/rails_app/cli.rb CHANGED
@@ -5,7 +5,7 @@ require "tty-prompt"
5
5
  module RailsApp
6
6
  class CLI
7
7
  def self.start(args)
8
- puts "args: #{args}"
8
+ # puts "args: #{args}"
9
9
  prompt = TTY::Prompt.new
10
10
  options_data = OptionsData.new(args)
11
11
  config_file = ConfigFile.new
@@ -16,39 +16,42 @@ module RailsApp
16
16
  config_options = config_file.read
17
17
 
18
18
  if config_options && prompt.yes?("Do you want to use this configuration? #{config_options}")
19
-
20
19
  create_app(app_name, config_options) # standard:disable Style/IdenticalConditionalBranches
21
20
  else
22
- # not using config display menu to user
23
- config_options = menu(app_name, prompt)
24
-
25
- # Ask the user if they wish to save their configuration
26
- if prompt.yes?("Do you wish to save your configuration?")
27
- # Iterate over the hash and set the configuration
28
- config_options.each do |key, value|
29
- next if key == :app_name
30
- config_file.set(key, value)
31
- end
32
- config_file.write(force: true)
33
- puts "Configuration saved successfully @ #{config_file.full_path}"
34
- end
35
-
36
- puts "config_options: #{config_options}"
21
+ config_options = menu(prompt, options_data) # open cli menus to get user input
22
+ # puts "config_options: #{config_options}"
23
+ save_config(prompt, config_file, config_options) # save their configuration
37
24
  create_app(app_name, config_options) # standard:disable Style/IdenticalConditionalBranches
38
25
  end
39
26
  end
40
27
 
41
- def self.menu(app_name, prompt)
42
- assets = prompt.select("How would you like to manage assets?", %w[propshaft sprockets])
43
- styling = prompt.select("How would you like to manage styling?", %w[bootstrap tailwind bulma postcss sass])
44
- database = prompt.select("Which database would you like to use?",
45
- %w[postgresql sqlite3 mysql trilogy oracle sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc])
46
-
47
- {app_name: app_name, assets: assets, styling: styling, database: database}
28
+ def self.menu(prompt, option_data = nil)
29
+ assets = prompt.select("How would you like to manage assets?", %w[propshaft sprockets], default: option_data&.default_assets)
30
+ styling = prompt.select("How would you like to manage styling?", %w[bootstrap tailwind bulma postcss sass], default: option_data&.default_styling)
31
+ database = prompt.select("Which database would you like to use?", %w[postgresql sqlite3 mysql trilogy oracle sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc], default: option_data&.default_database)
32
+ skip_spring = prompt.yes?("Would you like to SKIP spring?", default: option_data&.default_action_mailer)
33
+ action_mailer = prompt.yes?("Would you like to SKIP Action Mailer?", default: option_data&.default_action_mailer)
34
+ action_mailbox = prompt.yes?("Would you like to SKIP Action Mailbox?", default: option_data&.default_action_mailbox)
35
+ action_text = prompt.yes?("Would you like to SKIP Action Text?", default: option_data&.default_action_text)
36
+ action_storage = prompt.yes?("Would you like to SKIP Active Storage?", default: option_data&.default_action_storage)
37
+ action_cable = prompt.yes?("Would you like to SKIP Active Cable?", default: option_data&.default_action_cable)
38
+
39
+ {assets: assets, styling: styling, database: database, skip_spring: skip_spring, action_mailer: action_mailer,
40
+ action_mailbox: action_mailbox, action_text: action_text, action_storage: action_storage, action_cable: action_cable}
48
41
  end
49
42
 
50
43
  def self.create_app(app_name, args)
51
44
  Command.new(app_name, args).run
52
45
  end
46
+
47
+ def self.save_config(prompt, config_file, config_options)
48
+ if prompt.yes?("Do you wish to save your configuration?")
49
+ config_options.each do |key, value|
50
+ config_file.set(key, value)
51
+ end
52
+ config_file.write(force: true)
53
+ puts "Configuration saved successfully @ #{config_file.full_path}"
54
+ end
55
+ end
53
56
  end
54
57
  end
@@ -3,11 +3,17 @@ module RailsApp
3
3
  attr_reader :app_name, :assets, :styling, :database
4
4
 
5
5
  def initialize(app_name, args)
6
+ # puts "args: #{args}"
6
7
  @app_name = app_name
7
8
  @assets = args[:assets]
8
9
  @styling = args[:styling]
9
10
  @database = args[:database]
10
- puts "Command: #{@app_name} #{args[:app_name]}"
11
+ @skip_spring = args[:skip_spring]
12
+ @skip_action_mailer = args[:action_mailer]
13
+ @skip_action_mailbox = args[:action_mailbox]
14
+ @skip_action_text = args[:action_text]
15
+ @skip_action_storage = args[:action_storage]
16
+ @skip_action_cable = args[:action_cable]
11
17
  end
12
18
 
13
19
  def template
@@ -15,14 +21,34 @@ module RailsApp
15
21
  end
16
22
 
17
23
  def run
18
- command = "rails new #{@app_name} --no-rc #{skip_spring} #{database_adapter} #{asset_management} #{javascript_bundling} #{styling_framework} #{testing_framework} -m #{template}"
24
+ command = "rails new #{@app_name} --no-rc #{skip_spring} #{skip_action_mailer} #{skip_action_mailbox} #{skip_action_text} #{skip_action_text} #{skip_action_cable} #{database_adapter} #{asset_management} #{javascript_bundling} #{styling_framework} #{testing_framework} -m #{template}"
19
25
  command.squeeze!(" ")
20
26
  # puts command
21
27
  system(command)
22
28
  end
23
29
 
24
30
  def skip_spring
25
- "--skip-spring"
31
+ "--skip-spring" if @skip_spring == true
32
+ end
33
+
34
+ def skip_action_mailer
35
+ "--skip-action-mailer" if @skip_action_mailer == true
36
+ end
37
+
38
+ def skip_action_mailbox
39
+ "--skip-action-mailbox" if @skip_action_mailbox == true
40
+ end
41
+
42
+ def skip_action_text
43
+ "--skip-action-text" if @skip_action_text == true
44
+ end
45
+
46
+ def skip_action_storage
47
+ "--skip-active-storage" if @skip_action_storage == true
48
+ end
49
+
50
+ def skip_action_cable
51
+ "--skip-action-cable" if @skip_action_cable == true
26
52
  end
27
53
 
28
54
  def database_adapter
@@ -13,6 +13,8 @@ module RailsApp
13
13
  end
14
14
 
15
15
  def default_assets
16
+ # puts "@options: #{@options.include?("sprockets")}"
17
+
16
18
  @options.include?("sprockets") ? "sprockets" : "propshaft"
17
19
  end
18
20
 
@@ -55,5 +57,25 @@ module RailsApp
55
57
  "sqlite3"
56
58
  end
57
59
  end
60
+
61
+ def default_action_mailer
62
+ @options.include?("skip_action_mailer")
63
+ end
64
+
65
+ def default_action_mailbox
66
+ @options.include?("skip_action_mailbox")
67
+ end
68
+
69
+ def default_action_text
70
+ @options.include?("skip_action_text")
71
+ end
72
+
73
+ def default_action_storage
74
+ @options.include?("skip_action_storage")
75
+ end
76
+
77
+ def default_action_cable
78
+ @options.include?("skip_action_cable")
79
+ end
58
80
  end
59
81
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsApp
4
- VERSION = "0.8.1"
4
+ VERSION = "0.9.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chuck Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-08 00:00:00.000000000 Z
11
+ date: 2024-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bootsnap