rails_steroids 0.7.0 → 0.7.1

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: 9e8022f4d9c1864d8fb7886a799f32b7f8d0f7db85152a7f29db9810ce104367
4
- data.tar.gz: 04571a62c83ac2d43d3294189265a9563e351fd43350dea47c413e2738d1b76e
3
+ metadata.gz: df4e95abc0bcd978678c7fca5b7a63daaf98f652b4e117295453cc3314df8baf
4
+ data.tar.gz: '038b916212e3c2c092825e96ebd0e8bcbf50508330542f35182008bcfd5b6807'
5
5
  SHA512:
6
- metadata.gz: 30fb811636d668a114df763e0f0eb50dffae19cef6ab6e2246a12772cfbabd8e6f3f4d8b66e948bbcd80f646d9233aca061259456b39712c16ecec78b91f36bd
7
- data.tar.gz: 902918a36f478d5da29a785da787ab4eaf19896354f6c24fe2ca3143aba778b07535f6a689902fea8042085220f22b5e270a846f7f0c50cf37d9d42799e8dbb9
6
+ metadata.gz: 678f0a8b483a2f389652f1907e9b0ec3d87a7ffb5c110b26a3332f4a8c9905ec4b9f3f74b5e928c7cf97521ec750bad6568960c30792943f2ec13ebddfe7119b
7
+ data.tar.gz: 995c17f522d05f5fef7ba4957d52d23377a4ca249310d029bd73005a52e7e00cb793378318a76c42bf629f1a7ee0152bed5d96a92fdb4d6fc0c96db03e964143
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.7.1] - 2024-02-09
4
+
5
+ - Improvement: Formatting to terminal output for all steroids
6
+ - Improvement: Formatting of `rails_steroids list` output in table format
7
+ - Fix: RailsSteroids Banner display on terminal
8
+
3
9
  ## [0.7.0] - 2024-02-08
4
10
 
5
11
  - Improvement in steroid recipe: migration
data/bin/rails_steroids CHANGED
@@ -2,10 +2,11 @@
2
2
 
3
3
  banner = <<-BANNER
4
4
  ____ _ __ _____ __ _ __
5
- / __ \____ _(_) /____ / ___// /____ _________ (_)___/ /____
6
- / /_/ / __ `/ / / ___/ \__ \/ __/ _ \/ ___/ __ \/ / __ / ___/
5
+ / __ \\____ _(_) /____ / ___// /____ _________ (_)___/ /____
6
+ / /_/ / __ `/ / / ___/ \\__ \\/ __/ _ \\/ ___/ __ \\/ / __ / ___/
7
7
  / _, _/ /_/ / / (__ ) ___/ / /_/ __/ / / /_/ / / /_/ (__ )
8
- /_/ |_|\__,_/_/_/____/ /____/\__/\___/_/ \____/_/\__,_/____/
8
+ /_/ |_|\\__,_/_/_/____/ /____/\\__/\\___/_/ \\____/_/\\__,_/____/
9
+
9
10
  BANNER
10
11
 
11
12
  puts banner
@@ -16,4 +17,4 @@ end
16
17
 
17
18
  require "rails_steroids/cli"
18
19
 
19
- RailsSteroids::CLI.start(ARGV)
20
+ RailsSteroids::CLI.start(ARGV)
@@ -8,22 +8,22 @@ module Steroid
8
8
  source_root File.expand_path("templates", __dir__)
9
9
 
10
10
  def add_controller
11
- say "Injecting steroid: Controller", :green
11
+ say "Applying steroid: Controller", [:bold, :magenta]
12
12
  cmd = ["rails generate controller"]
13
13
  prompt = TTY::Prompt.new
14
- controller_name = prompt.ask("What is the great name of your controller?") do |q|
14
+ controller_name = prompt.ask("\nWhat is the great name of your controller?") do |q|
15
15
  q.required true
16
16
  q.modify :remove
17
17
  end
18
18
  cmd << controller_name
19
19
 
20
- actions = prompt.multi_select("Choose actions:", %w(index show new edit create update destroy))
20
+ actions = prompt.multi_select("\nChoose actions:", %w(index show new edit create update destroy))
21
21
  cmd += actions
22
22
 
23
23
  boolean_choices = [{name: "yes", value: true}, {name: "no", value: false}]
24
24
 
25
25
  custom_actions = []
26
- while prompt.select("Would you like to add more actions?", boolean_choices)
26
+ while prompt.select("\nWould you like to add more actions?", boolean_choices)
27
27
  custom_actions << prompt.ask("Specify name of action:") do |q|
28
28
  q.required true
29
29
  q.modify :remove
@@ -31,8 +31,8 @@ module Steroid
31
31
  end
32
32
  cmd += custom_actions
33
33
 
34
- cmd << "--skip-routes" if prompt.select("Skip routes?", boolean_choices)
35
- cmd << "--no-helper" if prompt.select("Skip helper?", boolean_choices)
34
+ cmd << "--skip-routes" if prompt.select("\nSkip routes?", boolean_choices)
35
+ cmd << "--no-helper" if prompt.select("\nSkip helper?", boolean_choices)
36
36
 
37
37
  run cmd.join(" ")
38
38
  end
@@ -13,8 +13,7 @@ module Steroid
13
13
  include ActiveRecord::Migration::JoinTable
14
14
 
15
15
  def add_migration
16
- say "Injecting steroid: Migration", :green
17
- cmd = ["rails generate migration"]
16
+ say "Applying steroid: Migration", [:bold, :magenta]
18
17
 
19
18
  action_choices = [
20
19
  {name: 'Create table', value: 'create_table'},
@@ -22,39 +21,39 @@ module Steroid
22
21
  {name: 'Drop table', value: 'drop_table'},
23
22
  {name: 'Modify table columns/index', value: 'modify_table'},
24
23
  ]
25
- @action = prompt.select("What would you like to do?", action_choices)
24
+ @action = prompt.select("\nWhat would you like to do?", action_choices)
26
25
 
27
26
  case @action
28
27
  when 'create_table'
29
- table_name = prompt.ask("What is the name of table to be created?", required: true) { |q| q.modify :remove }
28
+ table_name = prompt.ask("\nWhat is the name of table to be created?", required: true) { |q| q.modify :remove }
30
29
  @content = content_for_create_table(table_name, collect_columns_data)
31
30
  migration_template "migration.rb", "#{db_migrate_path}/create_#{table_name}.rb"
32
31
  when 'create_join_table'
33
- table1_name = prompt.ask("What is the name of first table to be joined?", required: true) { |q| q.modify :remove }
34
- table2_name = prompt.ask("What is the name of second table to be joined?", required: true) { |q| q.modify :remove }
35
- table_name = prompt.ask("What is the custom name for join table?", default: find_join_table_name(table1_name, table2_name), required: true) { |q| q.modify :remove }
32
+ table1_name = prompt.ask("\nWhat is the name of first table to be joined?", required: true) { |q| q.modify :remove }
33
+ table2_name = prompt.ask("\nWhat is the name of second table to be joined?", required: true) { |q| q.modify :remove }
34
+ table_name = prompt.ask("\nWhat is the custom name for join table?", default: find_join_table_name(table1_name, table2_name), required: true) { |q| q.modify :remove }
36
35
  columns_data = []
37
- if prompt.select("Add `id` column?", boolean_choices)
36
+ if prompt.select("\nAdd `id` column?", boolean_choices)
38
37
  columns_data << {name: 'id', type: 'primary_key'}
39
38
  end
40
- if prompt.select("Add index for #{table1_name} foreign_key?", boolean_choices)
39
+ if prompt.select("\nAdd index for #{table1_name} foreign_key?", boolean_choices)
41
40
  columns_data << {name: "#{table1_name.singularize}_id", type: 'index'}
42
41
  end
43
- if prompt.select("Add index for #{table2_name} foreign_key?", boolean_choices)
42
+ if prompt.select("\nAdd index for #{table2_name} foreign_key?", boolean_choices)
44
43
  columns_data << {name: "#{table2_name.singularize}_id", type: 'index'}
45
44
  end
46
- if prompt.select("Add composite index for #{table1_name} and #{table2_name} foreign_key?", boolean_choices)
45
+ if prompt.select("\nAdd composite index for #{table1_name} and #{table2_name} foreign_key?", boolean_choices)
47
46
  uniq_index_option = prompt.select("Unique combination index?", boolean_choices) ? {meta: {unique: true}} : {}
48
47
  columns_data << {name: ["#{table2_name.singularize}_id", "#{table2_name.singularize}_id"], type: 'index'}.merge(uniq_index_option)
49
48
  end
50
49
  @content = content_for_create_join_table(table1_name, table2_name, table_name, (columns_data + collect_columns_data))
51
50
  migration_template "migration.rb", "#{db_migrate_path}/create_join_table_#{table_name}.rb"
52
51
  when 'drop_table'
53
- table_name = prompt.ask("What is the name of table to be dropped?", required: true) { |q| q.modify :remove }
52
+ table_name = prompt.ask("\nWhat is the name of table to be dropped?", required: true) { |q| q.modify :remove }
54
53
  @content = content_for_drop_table(table_name)
55
54
  migration_template "migration.rb", "#{db_migrate_path}/drop_#{table_name}.rb"
56
55
  when 'modify_table'
57
- table_name = prompt.ask("What is the name of table to add/remove columns/index?", required: true) { |q| q.modify :remove }
56
+ table_name = prompt.ask("\nWhat is the name of table to add/remove columns/index?", required: true) { |q| q.modify :remove }
58
57
  modify_table_choices = [
59
58
  {name: 'Add column', value: 'add_column'}, {name: 'Remove column', value: 'remove_column'},
60
59
  {name: 'Add index', value: 'add_index'}, {name: 'Remove index', value: 'remove_index'},
@@ -64,7 +63,7 @@ module Steroid
64
63
  ]
65
64
  @content = []
66
65
  file_name = []
67
- while (modify_table_action = prompt.select("What would you like to do?", modify_table_choices)) != 'exit'
66
+ while (modify_table_action = prompt.select("\nWhat would you like to do?", modify_table_choices)) != 'exit'
68
67
  for_removal = modify_table_action.start_with?('remove_')
69
68
  if modify_table_action.end_with?('_index') || modify_table_action.end_with?('_reference')
70
69
  data = modify_table_action.end_with?('_index') ? ask_index_data(for_removal: for_removal) : ask_reference_data(for_removal: for_removal)
@@ -92,7 +91,7 @@ module Steroid
92
91
 
93
92
  def collect_columns_data
94
93
  columns_data = []
95
- while prompt.select("Would you like to add model attributes(columns)?", boolean_choices)
94
+ while prompt.select("\nWould you like to add model attributes(columns)?", boolean_choices)
96
95
  columns_data << ask_column_data
97
96
  end
98
97
  timestamps_data = ask_timestamps_data
@@ -149,7 +148,6 @@ module Steroid
149
148
  column_data[:meta][:index] = prompt.select("Unique index?", boolean_choices) ? :unique : true
150
149
  end
151
150
  end
152
-
153
151
  column_data.merge!(name: column_name, type: column_type)
154
152
  column_data
155
153
  end
@@ -179,7 +177,7 @@ module Steroid
179
177
  end
180
178
 
181
179
  def ask_timestamps_data
182
- if prompt.select("Add timestamps?", boolean_choices)
180
+ if prompt.select("\nAdd timestamps?", boolean_choices)
183
181
  { type: 'timestamps' }
184
182
  end
185
183
  end
@@ -8,10 +8,10 @@ module Steroid
8
8
  source_root File.expand_path("templates", __dir__)
9
9
 
10
10
  def add_model
11
- say "Injecting steroid: Model", :green
11
+ say "Applying steroid: Model", [:bold, :magenta]
12
12
  cmd = ["rails generate model"]
13
13
  prompt = TTY::Prompt.new
14
- model_name = prompt.ask("What is the great name of your model?") do |q|
14
+ model_name = prompt.ask("\nWhat is the great name of your model?") do |q|
15
15
  q.required true
16
16
  q.modify :remove
17
17
  end
@@ -20,7 +20,7 @@ module Steroid
20
20
  boolean_choices = [{name: "yes", value: true}, {name: "no", value: false}]
21
21
 
22
22
  columns = []
23
- while prompt.select("Would you like to add model attributes(columns)?", boolean_choices)
23
+ while prompt.select("\nWould you like to add model attributes(columns)?", boolean_choices)
24
24
 
25
25
  column_name = prompt.ask("Specify name of column:") do |q|
26
26
  q.required true
@@ -67,9 +67,9 @@ module Steroid
67
67
  end
68
68
  cmd += columns
69
69
 
70
- cmd << "--no-migration" if prompt.select("Skip migration?", boolean_choices)
71
- cmd << "--no-timestamps" if prompt.select("Skip created_at, updated_at timestamps?", boolean_choices)
72
- cmd << "--no-indexes" if prompt.select("Skip indexes?", boolean_choices)
70
+ cmd << "--no-migration" if prompt.select("\nSkip migration?", boolean_choices)
71
+ cmd << "--no-timestamps" if prompt.select("\nSkip created_at, updated_at timestamps?", boolean_choices)
72
+ cmd << "--no-indexes" if prompt.select("\nSkip indexes?", boolean_choices)
73
73
 
74
74
  run cmd.join(" ")
75
75
  end
@@ -8,15 +8,15 @@ module Steroid
8
8
  source_root File.expand_path("templates", __dir__)
9
9
 
10
10
  def add_new_project
11
- say "Injecting steroid: New Project"
11
+ say "Applying steroid: New Project", [:bold, :magenta]
12
12
  prompt = TTY::Prompt.new
13
- project_name = prompt.ask("What is the great name of your Rails project?") do |q|
13
+ project_name = prompt.ask("\nWhat is the great name of your Rails project?") do |q|
14
14
  q.required true
15
15
  q.modify :remove
16
16
  end
17
17
  empty_directory project_name
18
18
 
19
- ruby_version = prompt.ask("Which Ruby version would you like to use?") do |q|
19
+ ruby_version = prompt.ask("\nWhich Ruby version would you like to use?") do |q|
20
20
  q.required true
21
21
  q.modify :remove
22
22
  end
@@ -26,33 +26,33 @@ module Steroid
26
26
 
27
27
  cmd = ["rails"]
28
28
  current_rails_version = `rails --version`.gsub('Rails ', '').strip
29
- rails_version = prompt.ask("Which Rails version would you like to use? You can find Rails version from https://rubygems.org/gems/rails/versions.", default: current_rails_version)
29
+ rails_version = prompt.ask("\nWhich Rails version would you like to use? You can find Rails version from https://rubygems.org/gems/rails/versions.", default: current_rails_version)
30
30
  cmd << "_#{rails_version}_"
31
31
  cmd << "new"
32
32
  cmd << project_name
33
33
 
34
34
  database_options = %w(mysql trilogy postgresql sqlite3 oracle sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc)
35
- database_name = prompt.select("Choose your database:", database_options)
35
+ database_name = prompt.select("\nChoose your database:", database_options)
36
36
  cmd << "--database #{database_name}"
37
37
 
38
- asset_pipeline = prompt.select("Choose your asset pipeline:", %w(sprockets propshaft))
38
+ asset_pipeline = prompt.select("\nChoose your asset pipeline:", %w(sprockets propshaft))
39
39
  cmd << "--asset-pipeline #{asset_pipeline}"
40
40
 
41
- css = prompt.select("Choose CSS processor:", %w(tailwind bootstrap bulma postcss sass))
41
+ css = prompt.select("\nChoose CSS processor:", %w(tailwind bootstrap bulma postcss sass))
42
42
  cmd << "--css #{css}"
43
43
 
44
- js = prompt.select("Choose JavaScript approach:", %w(importmap bun webpack esbuild rollup))
44
+ js = prompt.select("\nChoose JavaScript approach:", %w(importmap bun webpack esbuild rollup))
45
45
  cmd << "--javascript #{js}"
46
46
 
47
47
  boolean_choices = [{name: "yes", value: true}, {name: "no", value: false}]
48
- cmd << "--api" if prompt.select("API only application?", boolean_choices)
49
- cmd << "--skip-jbuilder" if prompt.select("Skip jbuilder?", boolean_choices)
50
- cmd << "--skip-git" if prompt.select("Skip git init, .gitignore and .gitattributes?", boolean_choices)
51
- cmd << "--skip-docker" if prompt.select("Skip Dockerfile, .dockerignore and bin/docker-entrypoint?", boolean_choices)
52
- cmd << "--skip-action-cable" if prompt.select("Skip Action Cable files?", boolean_choices)
53
- cmd << "--skip-hotwire" if prompt.select("Skip Hotwire integration?", boolean_choices)
54
- cmd << "--skip-test" if prompt.select("Skip test files?", boolean_choices)
55
- cmd << "--skip-system-test" if prompt.select("Skip system test files?", boolean_choices)
48
+ cmd << "--api" if prompt.select("\nAPI only application?", boolean_choices)
49
+ cmd << "--skip-jbuilder" if prompt.select("\nSkip jbuilder?", boolean_choices)
50
+ cmd << "--skip-git" if prompt.select("\nSkip git init, .gitignore and .gitattributes?", boolean_choices)
51
+ cmd << "--skip-docker" if prompt.select("\nSkip Dockerfile, .dockerignore and bin/docker-entrypoint?", boolean_choices)
52
+ cmd << "--skip-action-cable" if prompt.select("\nSkip Action Cable files?", boolean_choices)
53
+ cmd << "--skip-hotwire" if prompt.select("\nSkip Hotwire integration?", boolean_choices)
54
+ cmd << "--skip-test" if prompt.select("\nSkip test files?", boolean_choices)
55
+ cmd << "--skip-system-test" if prompt.select("\nSkip system test files?", boolean_choices)
56
56
  cmd << "--no-rc" # To skip configurations from .railsrc
57
57
  cmd << "--skip" # To skip overriding existing files
58
58
  run cmd.join(" ")
@@ -13,7 +13,7 @@ class SteroidGenerator < Rails::Generators::NamedBase
13
13
  source_root File.expand_path("templates", __dir__)
14
14
 
15
15
  def add_#{name}
16
- say "Injecting steroid: #{name.titlecase}", :green
16
+ say "Applying steroid: #{name.titlecase}", [:bold, :magenta]
17
17
  # Add your other code here or any additional methods below this method
18
18
  end
19
19
  end
@@ -21,18 +21,19 @@ module RailsSteroids
21
21
 
22
22
  desc "list", "Print list of steroids"
23
23
  def list
24
- puts "RailsSteroids list"
25
- puts "| Functionality | Command |"
26
- puts "|---|---|"
24
+ say "RailsSteroids list", [:bold, :cyan]
27
25
  steroid_names = [
28
26
  'migration',
29
27
  'model',
30
28
  'controller',
31
29
  'new_project',
32
30
  ]
31
+ arr = [['Functionality', 'Command']]
32
+ arr << ['===============', '================================================']
33
33
  steroid_names.each do |steroid|
34
- puts "|#{steroid.titlecase}|`rails_steroids inject steroid:#{steroid}`|"
34
+ arr << [steroid.titlecase, "`rails_steroids inject steroid:#{steroid}`"]
35
35
  end
36
+ print_table(arr, {borders: true})
36
37
  # TODO: Glob all file and prepare a list of available generators
37
38
  end
38
39
 
@@ -53,4 +54,4 @@ module RailsSteroids
53
54
  "../generators/steroid/#{generator_name}/#{generator_name}_generator.rb"
54
55
  end
55
56
  end
56
- end
57
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsSteroids
4
- VERSION = "0.7.0"
4
+ VERSION = "0.7.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_steroids
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anand Bait
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-08 00:00:00.000000000 Z
11
+ date: 2024-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails