rails_app_generator 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4aa8af419a74d354fe232aada3953cd2059366923b8b113960627bc19fc9e53
4
- data.tar.gz: 2003b645007cd5a358c9fb96561e5d474a15b68388de6edf7fcfb2e523c8b0a4
3
+ metadata.gz: 49486bbab90ac64dfb191e4d0e04aa762c31babad052e12162708cd91bd3de34
4
+ data.tar.gz: ee8dc44c24dc165de9c3cb21a928932163c454f6ad13cf31b452c2056394511f
5
5
  SHA512:
6
- metadata.gz: 302af7074fd0b954e14674b39a7821b28af3d849282db1ab505d9219c80cc49519cf9ec389f6b408982746ddc1a35bf8fa304802f92fa29cb45549f31e73fd30
7
- data.tar.gz: 6a615425e3bf4537e6663fdbb8f1b2df4b85dbc499a85bcc60f9c4693f91de060356922ba0faf82d27dd4e6341876124ac7aca383f87d832c3df86d2c69ddc8d
6
+ metadata.gz: 1cfe343ff38458b1b0fa5aec0b01e0b3923b6cb10913588d8ed51eca35617c45a06bccd80543ea55a3a71431d8a4d42faf124fe660050fc700b8afb1b431cd74
7
+ data.tar.gz: 2b29809d356221af211a69dfb085d17bbe773374167d61bb56ddff58e1c5505ddfab5786961de46a50912aea5f9be89682d7ab26510d513549dee61935cc0f6c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [0.1.7](https://github.com/klueless-io/rails_app_generator/compare/v0.1.6...v0.1.7) (2022-07-30)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * add video documentation ([79fa9ae](https://github.com/klueless-io/rails_app_generator/commit/79fa9aeafe5d195b14cfcd1124f45dc6c30f16fc))
7
+
1
8
  ## [0.1.6](https://github.com/klueless-io/rails_app_generator/compare/v0.1.5...v0.1.6) (2022-07-30)
2
9
 
3
10
 
@@ -16,7 +16,8 @@ after_bundle do
16
16
  end
17
17
 
18
18
  def setup_db
19
- add_scaffold('title', 'body:text')
19
+ add_scaffold('post', 'title', 'body:text')
20
+
20
21
  db_migrate
21
22
  end
22
23
 
data/docs/videos.md CHANGED
@@ -39,5 +39,6 @@ A set of templates that can be used via the `--template` argument
39
39
  ![](images/tailwind_hotwire_form_search.png)
40
40
 
41
41
  - Hotwire Flash Messages
42
+
42
43
  - Tailwind, Reusing Styles
43
44
  - https://tailwindcss.com/docs/reusing-styles
data/exe/rag CHANGED
@@ -20,18 +20,7 @@ elsif %w[-v --version].include?(first)
20
20
  elsif first == 'diff'
21
21
  RailsAppGenerator::Cli::Diff.start(ARGV)
22
22
  elsif first == 'new'
23
- puts 'TODO: NEW'
24
-
25
- # # Use RAG with in the same way as the Rails generator (the following commands should be equivalent)
26
- # # rails new args
27
- # # rag new args
28
- # if ARGV.first == 'new'
29
- # # NOTE: This is not yet working
30
- # RailsAppGenerator::Cli::Standard.start ARGV[1..]
31
- # exit 0
32
- # elsif !ARGV.first.nil?
33
- # end
34
-
23
+ # RailsAppGenerator::AppGenerator.start(ARGV[1..], destination_root: '/Users/davidcruwys/dev/kgems/rails_app_generator/a/rag')
35
24
  else
36
25
  fallback_profile_path = File.expand_path("#{Pathname.new(__FILE__).dirname}/../profiles")
37
26
  args = ['profile'] + ARGV + ["--fallback-profile-path=#{fallback_profile_path}"]
@@ -7,12 +7,15 @@ module RailsAppGenerator
7
7
  include Rails::Generators::Actions
8
8
  include Rails::Generators::AppName
9
9
 
10
- attr_reader :dependencies, :context
10
+ attr_reader :context
11
+ attr_reader :gem_entries
12
+ attr_reader :dependencies
11
13
 
12
14
  def initialize(context)
13
15
  super
14
16
  @context = context
15
17
  @dependencies = self.class.dependencies || []
18
+ @gem_entries = self.class.gem_entries || []
16
19
  end
17
20
 
18
21
  def apply; end
@@ -21,7 +24,7 @@ module RailsAppGenerator
21
24
  no_commands do
22
25
  def source_paths
23
26
  [
24
- format(context.addon_template_path, addon: self.class.addon_name),
27
+ format(context.addon_template_path, addon: self.class.addon_name.to_s),
25
28
  context.rails_override_template_path,
26
29
  context.rails_template_path
27
30
  ]
@@ -63,11 +66,23 @@ module RailsAppGenerator
63
66
  @dependencies ||= []
64
67
  end
65
68
 
69
+ def gem_entries
70
+ @gem_entries ||= []
71
+ end
72
+
66
73
  protected
67
74
 
68
75
  def depends_on(*addon)
69
76
  @dependencies = addon.map(&:to_sym)
70
77
  end
78
+
79
+ def required_gem(gem_entry)
80
+ gem_entries << gem_entry
81
+ end
82
+
83
+ def gem
84
+ Rails::Generators::AppBase::GemfileEntry
85
+ end
71
86
  end
72
87
  end
73
88
  end
@@ -7,6 +7,11 @@ module RailsAppGenerator
7
7
  class Annotate < AddOn
8
8
  depends_on :active_record
9
9
 
10
+ required_gem gem.version('annotate', '3.2.0', 'Annotates Rails/ActiveRecord Models, routes, fixtures, and others based on the database schema.')
11
+ required_gem gem.version('bob', '1.2.3', 'Something Here with lots of data and other stuff to fill out the comment')
12
+ required_gem gem.new 'jbuilder', %w[1 2], 'Build JSON APIs with ease [https://github.com/rails/jbuilder]', { xxx: 'yyy', zzz: 'aaa' }, true
13
+ required_gem gem.version('rails', %w[abc xyz], %(Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"))
14
+
10
15
  def apply
11
16
  template('auto_annotate_models.rake', 'lib/tasks/auto_annotate_models.rake', force: true)
12
17
  end
@@ -23,9 +23,9 @@ module RailsAppGenerator
23
23
  # RailsAppGenerator::AddOns::RubyVersion.new(Context.new(options)).apply
24
24
  # end
25
25
 
26
- # def gemfile
27
- # template 'Gemfile.erb', 'Gemfile'
28
- # end
26
+ def gemfile
27
+ template 'Gemfile.erb', 'Gemfile'
28
+ end
29
29
 
30
30
  # def gitignore
31
31
  # template '.gitignore.erb', '.gitignore'
@@ -5,7 +5,7 @@
5
5
  module RailsAppGenerator
6
6
  # AppGenerator is a wrapper for Rails::AppGenerator
7
7
  class AppGenerator < Rails::Generators::AppGenerator
8
- class_option :test, type: :string, default: 'rspec'
8
+ class_option :test , type: :string , default: 'rspec'
9
9
 
10
10
  class_option :add_irbrc , type: :boolean, default: false
11
11
  class_option :add_foreman , type: :boolean, default: false
@@ -46,7 +46,7 @@ module RailsAppGenerator
46
46
  attr_writer :addon_template_path
47
47
 
48
48
  def addon_template_path
49
- @addon_template_path ||= gem_template_path('rails_app_generator', 'templates/addons/%<addon>')
49
+ @addon_template_path ||= gem_template_path('rails_app_generator', 'templates/addons/%<addon>s')
50
50
  end
51
51
 
52
52
  private
@@ -63,6 +63,7 @@ module RailsAppGenerator
63
63
 
64
64
  puts "gem not available for '#{gem_name}'"
65
65
 
66
+ # THIS CODE DOES NOT REALLY WORK
66
67
  return Dir.pwd if Dir.pwd.end_with?('dev/kgems/rails_app_generator') # code smell: this is for my local development environment
67
68
 
68
69
  raise "'#{gem_name}' not available"
@@ -91,7 +92,6 @@ module RailsAppGenerator
91
92
 
92
93
  # def rails_customization
93
94
  # puts 'rails customizations'
94
- # invoke :fuck
95
95
  # # invoke :customize_gemfile
96
96
  # # invoke :setup_development_environment
97
97
  # # invoke :setup_production_environment
@@ -327,6 +327,20 @@ module RailsAppGenerator
327
327
  addon = AddOn.get(addon)
328
328
  Dependencies.new(addon, context).satisfied?
329
329
  end
330
+
331
+ def gems
332
+ all_gemfile_entries = gemfile_entries + addon_gemfile_entries
333
+
334
+ all_gemfile_entries.map do |entry|
335
+ FormattedGemEntry.new(entry.name, entry.version, entry.comment, entry.options, entry.commented_out)
336
+ end
337
+ end
338
+
339
+ def addon_gemfile_entries
340
+ AddOns.constants
341
+ .select { |klass| AddOns.const_get(klass).is_a?(Class) }
342
+ .flat_map { |klass| AddOns.const_get(klass).gem_entries }
343
+ end
330
344
  end
331
345
 
332
346
  protected
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RailsAppGenerator
4
+ # Formatted Gem Entry allows some control over gem entries into the Gemfile
5
+ class FormattedGemEntry < Rails::Generators::AppBase::GemfileEntry
6
+ def to_s
7
+ return "\n#{super}" if comment
8
+
9
+ super
10
+ end
11
+ end
12
+ end
@@ -4,7 +4,6 @@ module RailsAppGenerator
4
4
  class RailsOptions < OptionsBuilder
5
5
  # NOTE: Currently you need to register new options in two places
6
6
  # here and in lib/rails_app_generator/app_generator.rb
7
-
8
7
  register_option :template , type: :string # , desc: "Path to some #{name} template (can be a filesystem path or URL)"
9
8
  future_option :database , type: :string , default: 'sqlite3' # , desc: "Preconfigure for selected database (options: #{DATABASES.join('/')})"
10
9
  register_option :skip_git , type: :boolean, default: false # , desc: "Skip .gitignore file"
@@ -28,6 +28,7 @@ module RailsAppGenerator
28
28
  # points to templates related to rails addons
29
29
  attr_reader :addon_template_path
30
30
 
31
+ attr_reader :capture_output
31
32
  attr_reader :console_output
32
33
 
33
34
  def initialize(**args)
@@ -36,6 +37,7 @@ module RailsAppGenerator
36
37
  @rails_template_path = args[:rails_template_path] || AppGenerator.rails_template_path
37
38
  @override_template_path = args[:override_template_path] || AppGenerator.override_template_path
38
39
  @addon_template_path = args[:addon_template_path] || AppGenerator.addon_template_path
40
+ @capture_output = args[:capture_output].nil? ? false : args[:capture_output]
39
41
  end
40
42
 
41
43
  def target_path
@@ -45,13 +47,13 @@ module RailsAppGenerator
45
47
  def start(options = [])
46
48
  puts "Target path: #{target_path}"
47
49
 
48
- # RailsAppGenerator::AppGenerator.source_root(rails_template_path)
49
- # # RailsAppGenerator::AppGenerator.source_paths << rails_template_path
50
- # RailsAppGenerator::AppGenerator.source_paths << addon_template_path
51
-
52
50
  opts = extract_rails_options(app_path, options)
53
51
 
54
- @console_output = capture_console do
52
+ if capture_output
53
+ @console_output = capture_console do
54
+ RailsAppGenerator::AppGenerator.start(opts, destination_root: destination_root)
55
+ end
56
+ else
55
57
  RailsAppGenerator::AppGenerator.start(opts, destination_root: destination_root)
56
58
  end
57
59
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RailsAppGenerator
4
- VERSION = '0.1.7'
4
+ VERSION = '0.1.8'
5
5
  end
@@ -27,6 +27,7 @@ require 'rails_app_generator/context'
27
27
  require 'rails_app_generator/dependencies'
28
28
  require 'rails_app_generator/add_on'
29
29
  Dir[File.join(__dir__, 'rails_app_generator', 'addons', '*.rb')].sort.each { |file| require file }
30
+ require 'rails_app_generator/formatted_gem_entry'
30
31
  require 'rails_app_generator/app_builder'
31
32
  require 'rails_app_generator/app_generator'
32
33
  require 'rails_app_generator/starter'
data/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "rails_app_generator",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "rails_app_generator",
9
- "version": "0.1.7",
9
+ "version": "0.1.8",
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.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Create new Rails Application with custom opinions",
5
5
  "scripts": {
6
6
  "release": "semantic-release"
@@ -0,0 +1,13 @@
1
+ {
2
+ "args": {
3
+ "app_path": "sample",
4
+ "destination_root": "/Users/davidcruwys/dev/kgems/rails_app_generator/a/rag"
5
+ },
6
+ "opts": {
7
+ "capture_output": false,
8
+ "skip_test": true,
9
+ "skip_bundle": true,
10
+ "XXX_template": "/Users/davidcruwys/dev/kgems/rails_app_generator/after_templates/rag_simple.rb",
11
+ "add_annotate": true
12
+ }
13
+ }
@@ -0,0 +1,65 @@
1
+ source "https://rubygems.org"
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ ruby "2.7.6"
5
+
6
+ # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
7
+ gem "rails", "~> 7.0.3", ">= 7.0.3.1"
8
+
9
+ # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
10
+ gem "sprockets-rails"
11
+
12
+ # Use sqlite3 as the database for Active Record
13
+ gem "sqlite3", "~> 1.4"
14
+
15
+ # Use the Puma web server [https://github.com/puma/puma]
16
+ gem "puma", "~> 5.0"
17
+
18
+ # Use JavaScript with ESM import maps [https://github.com/rails/importmap-rails]
19
+ gem "importmap-rails"
20
+
21
+ # Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
22
+ gem "turbo-rails"
23
+
24
+ # Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
25
+ gem "stimulus-rails"
26
+
27
+ # Build JSON APIs with ease [https://github.com/rails/jbuilder]
28
+ gem "jbuilder"
29
+
30
+ # Use Redis adapter to run Action Cable in production
31
+ # gem "redis", "~> 4.0"
32
+
33
+ # Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
34
+ # gem "kredis"
35
+
36
+ # Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
37
+ # gem "bcrypt", "~> 3.1.7"
38
+
39
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
40
+ gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ]
41
+
42
+ # Reduces boot times through caching; required in config/boot.rb
43
+ gem "bootsnap", require: false
44
+
45
+ # Use Sass to process CSS
46
+ # gem "sassc-rails"
47
+
48
+ # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
49
+ # gem "image_processing", "~> 1.2"
50
+
51
+ group :development, :test do
52
+ # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
53
+ gem "debug", platforms: %i[ mri mingw x64_mingw ]
54
+ end
55
+
56
+ group :development do
57
+ # Use console on exceptions pages [https://github.com/rails/web-console]
58
+ gem "web-console"
59
+
60
+ # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
61
+ # gem "rack-mini-profiler"
62
+
63
+ # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
64
+ # gem "spring"
65
+ end
@@ -0,0 +1,151 @@
1
+ source 'https://rubygems.org'
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ ruby <%= "'#{RUBY_VERSION}'" -%>
5
+
6
+ <% unless gemfile_entries.first&.comment -%>
7
+
8
+ <% end -%>
9
+ <% gemfile_entries.each do |gem| -%>
10
+ <% if gem.comment -%>
11
+
12
+ # <%= gem.comment %>
13
+ <% end -%>
14
+ <%= gem.commented_out ? '# ' : '' %>gem '<%= gem.name %>'<%= %(, '#{gem.version}') if gem.version -%>
15
+ <% if gem.options.any? -%>
16
+ , <%= gem.options.map { |k,v|
17
+ "#{k}: #{v.inspect.gsub('"', '\'')}" }.join(', ') %>
18
+ <% end -%>
19
+ <% end -%>
20
+
21
+ # Use Active Model has_secure_password
22
+ # gem 'bcrypt', '~> 3.1.7'
23
+ <% unless skip_active_storage? -%>
24
+
25
+ # Use Active Storage variant
26
+ # gem 'image_processing', '~> 1.2'
27
+ <% end -%>
28
+
29
+ # Rails Application Generator
30
+ gem 'rails_application_generator', '<%= Gem::Version.new(RailsAppGenerator::VERSION).approximate_recommendation %>'
31
+ <% if uses?(:jb) -%>
32
+ # Jb is a faster alternative to jbuilder"
33
+ gem 'jb', '~> 0.8'
34
+ <% end -%>
35
+ <% if uses?(:oj) -%>
36
+ # A fast JSON parser and Object marshaller
37
+ gem 'oj', '~> 3.11'
38
+ <% end -%>
39
+ <% if uses?(:lograge) -%>
40
+ # An attempt to tame noisy Rails logs
41
+ gem "lograge"
42
+ <% end -%>
43
+ <% if uses?(:pundit) -%>
44
+ # Minimal and simple authorization through OO
45
+ gem 'pundit', '~> 2.1'
46
+ <% end -%>
47
+ <% if uses?(:devise) -%>
48
+ # Flexible authentication solution for Rails with Warden
49
+ gem 'devise', '~> 4.7'
50
+ <% end -%>
51
+
52
+ <% if uses?(:high_voltage) -%>
53
+ # A Rails engine for static pages
54
+ gem 'high_voltage', '~> 3.1'
55
+ <% end -%>
56
+ <% if uses?(:stimulus) -%>
57
+ # Add javascript sprinkles to your views
58
+ gem 'stimulus-rails'
59
+ <% end -%>
60
+ <% if uses?(:tailwind) -%>
61
+ # Tailwind CSS for Rails
62
+ gem 'tailwindcss-rails'
63
+ <% end -%>
64
+ <% if uses?(:inline_svg) -%>
65
+ # Embedded SVGs for easy styling
66
+ gem 'inline_svg'
67
+ <% end -%>
68
+ <% if uses?(:sidekiq) -%>
69
+ # Simple, efficient background processing alternative to ActiveJob
70
+ gem 'sidekiq', '~> 6.1'
71
+ <% end -%>
72
+
73
+ <% if depend_on_bootsnap? -%>
74
+ # Reduces boot times through caching; required in config/boot.rb
75
+ gem 'bootsnap', '>= 1.4.4', require: false
76
+
77
+ <%- end -%>
78
+ <%- if options.api? -%>
79
+ # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
80
+ # gem 'rack-cors'
81
+
82
+ <%- end -%>
83
+ <% if RUBY_ENGINE == 'ruby' -%>
84
+ group :development, :test do
85
+ # Call 'byebug' anywhere in the code to stop execution and get a debugger console
86
+ gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
87
+ <% if uses?(:dotenv) -%>
88
+ # A convenient way to manage environment variables
89
+ gem 'dotenv-rails'
90
+ <% end -%>
91
+
92
+ <% if uses?(:factory_bot) -%>
93
+ gem "factory_bot_rails"
94
+ <% end -%>
95
+ <% if uses?(:rspec) -%>
96
+ gem "rspec-rails"
97
+ <% end -%>
98
+ <% if uses?(:rubocop) -%>
99
+ gem 'rubocop', '~> 1.10', require: false
100
+ <% end -%>
101
+ end
102
+
103
+ <% end -%>
104
+ group :development do
105
+ <%- unless options.api? || options.skip_dev_gems? -%>
106
+ # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
107
+ <%- if options.dev? || options.edge? || options.main? -%>
108
+ gem 'web-console', github: 'rails/web-console'
109
+ <%- else -%>
110
+ gem 'web-console', '>= 4.1.0'
111
+ <%- end -%>
112
+ # Display performance information such as SQL time and flame graphs for each request in your browser.
113
+ # Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md
114
+ gem 'rack-mini-profiler', '~> 2.0'
115
+ <%- end -%>
116
+ <% if depend_on_listen? -%>
117
+ gem 'listen', '~> 3.3'
118
+ <% end -%>
119
+ <% if spring_install? -%>
120
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
121
+ gem 'spring'
122
+ <% end -%>
123
+
124
+ <%if uses?(:annotate) -%>
125
+ # Add a comment summarizing the current schema to your code
126
+ gem 'annotate', '~> 3.1'
127
+ <%end -%>
128
+ <% if uses?(:capistrano) -%>
129
+ # Capistrano is used to deploy your application
130
+ gem "capistrano", "~> 3.15", require: false
131
+ gem "capistrano-rails", "~> 1.6", require: false
132
+ gem 'capistrano-passenger', '~> 0.2.0', require: false
133
+ gem 'capistrano-rbenv', '~> 2.2', '>= 2.1.4', require: false
134
+ <% end -%>
135
+ end
136
+
137
+ group :test do
138
+ <% if uses?(:shoulda) -%>
139
+ gem "shoulda-matchers"
140
+ <% end -%>
141
+ <%- if depends_on_system_test? -%>
142
+ # Adds support for Capybara system testing and selenium driver
143
+ gem 'capybara', '>= 3.26'
144
+ gem 'selenium-webdriver'
145
+ # Easy installation and use of web drivers to run system tests with browsers
146
+ gem 'webdrivers'
147
+ <%- end -%>
148
+ end
149
+
150
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
151
+ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
@@ -0,0 +1,67 @@
1
+ source "https://rubygems.org"
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ ruby <%= "'#{RUBY_VERSION}'" -%>
5
+
6
+ <% gems.each do |gem| %><%= gem %>
7
+ <% end -%>
8
+ <% unless options.minimal? -%>
9
+
10
+ # Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
11
+ # gem "kredis"
12
+
13
+ # Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
14
+ # gem "bcrypt", "~> 3.1.7"
15
+ <% end -%>
16
+
17
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
18
+ gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ]
19
+ <% if depend_on_bootsnap? -%>
20
+
21
+ # Reduces boot times through caching; required in config/boot.rb
22
+ gem "bootsnap", require: false
23
+ <% end -%>
24
+ <% unless skip_sprockets? || options.minimal? -%>
25
+
26
+ # Use Sass to process CSS
27
+ # gem "sassc-rails"
28
+ <% end -%>
29
+ <% unless skip_active_storage? -%>
30
+
31
+ # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
32
+ # gem "image_processing", "~> 1.2"
33
+ <% end -%>
34
+ <%- if options.api? -%>
35
+
36
+ # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
37
+ # gem "rack-cors"
38
+ <%- end -%>
39
+ <% if RUBY_ENGINE == "ruby" -%>
40
+
41
+ group :development, :test do
42
+ # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
43
+ gem "debug", platforms: %i[ mri mingw x64_mingw ]
44
+ end
45
+ <% end -%>
46
+
47
+ group :development do
48
+ <%- unless options.api? || options.skip_dev_gems? -%>
49
+ # Use console on exceptions pages [https://github.com/rails/web-console]
50
+ gem "web-console"
51
+
52
+ # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
53
+ # gem "rack-mini-profiler"
54
+
55
+ <%- end -%>
56
+ # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
57
+ # gem "spring"
58
+ end
59
+
60
+ <%- if depends_on_system_test? -%>
61
+ group :test do
62
+ # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
63
+ gem "capybara"
64
+ gem "selenium-webdriver"
65
+ gem "webdrivers"
66
+ end
67
+ <%- end -%>
@@ -0,0 +1,68 @@
1
+ source "https://rubygems.org"
2
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
+
4
+ ruby <%= "\"#{RUBY_VERSION}\"" -%>
5
+
6
+ <% gemfile_entries.each do |gemfile_entry| %>
7
+ <%= gemfile_entry %>
8
+ <% end -%>
9
+ <% unless options.minimal? -%>
10
+
11
+ # Use Kredis to get higher-level data types in Redis [https://github.com/rails/kredis]
12
+ # gem "kredis"
13
+
14
+ # Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
15
+ # gem "bcrypt", "~> 3.1.7"
16
+ <% end -%>
17
+
18
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
19
+ gem "tzinfo-data", platforms: %i[ mingw mswin x64_mingw jruby ]
20
+ <% if depend_on_bootsnap? -%>
21
+
22
+ # Reduces boot times through caching; required in config/boot.rb
23
+ gem "bootsnap", require: false
24
+ <% end -%>
25
+ <% unless skip_sprockets? || options.minimal? -%>
26
+
27
+ # Use Sass to process CSS
28
+ # gem "sassc-rails"
29
+ <% end -%>
30
+ <% unless skip_active_storage? -%>
31
+
32
+ # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
33
+ # gem "image_processing", "~> 1.2"
34
+ <% end -%>
35
+ <%- if options.api? -%>
36
+
37
+ # Use Rack CORS for handling Cross-Origin Resource Sharing (CORS), making cross-origin AJAX possible
38
+ # gem "rack-cors"
39
+ <%- end -%>
40
+ <% if RUBY_ENGINE == "ruby" -%>
41
+
42
+ group :development, :test do
43
+ # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
44
+ gem "debug", platforms: %i[ mri mingw x64_mingw ]
45
+ end
46
+ <% end -%>
47
+
48
+ group :development do
49
+ <%- unless options.api? || options.skip_dev_gems? -%>
50
+ # Use console on exceptions pages [https://github.com/rails/web-console]
51
+ gem "web-console"
52
+
53
+ # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
54
+ # gem "rack-mini-profiler"
55
+
56
+ <%- end -%>
57
+ # Speed up commands on slow machines / big apps [https://github.com/rails/spring]
58
+ # gem "spring"
59
+ end
60
+
61
+ <%- if depends_on_system_test? -%>
62
+ group :test do
63
+ # Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
64
+ gem "capybara"
65
+ gem "selenium-webdriver"
66
+ gem "webdrivers"
67
+ end
68
+ <%- end -%>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_app_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-30 00:00:00.000000000 Z
11
+ date: 2022-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bootsnap
@@ -283,14 +283,11 @@ files:
283
283
  - lib/rails_app_generator/diff/open_in_editor.rb
284
284
  - lib/rails_app_generator/diff/processor.rb
285
285
  - lib/rails_app_generator/diff/report.rb
286
+ - lib/rails_app_generator/formatted_gem_entry.rb
286
287
  - lib/rails_app_generator/generators/advisories_generator.rb
287
288
  - lib/rails_app_generator/generators/base.rb
288
289
  - lib/rails_app_generator/generators/foo_generator.rb
289
- - lib/rails_app_generator/notes/a1.txt
290
- - lib/rails_app_generator/notes/a2.txt
291
290
  - lib/rails_app_generator/notes/commands-list.txt
292
- - lib/rails_app_generator/notes/kw01-b.txt
293
- - lib/rails_app_generator/notes/kw01.txt
294
291
  - lib/rails_app_generator/notes/methods-class.txt
295
292
  - lib/rails_app_generator/notes/methods-instance.txt
296
293
  - lib/rails_app_generator/notes/option-rules.txt
@@ -312,6 +309,7 @@ files:
312
309
  - profiles/rag-add-some-pages.json
313
310
  - profiles/rag-bootstrap.json
314
311
  - profiles/rag-import-map.json
312
+ - profiles/rag-sample.json
315
313
  - profiles/rag-simple.json
316
314
  - profiles/rag-tailwind-daisyui.json
317
315
  - profiles/rag-tailwind-emulating-bootstrap.json
@@ -321,6 +319,10 @@ files:
321
319
  - profiles/rag-tailwind-hotwire.json
322
320
  - profiles/rag-tailwind.json
323
321
  - sig/rails_app_generator.rbs
322
+ - templates/Gemfile-original-r7
323
+ - templates/Gemfile-original-schienenzeppelin.erb
324
+ - templates/Gemfile.erb
325
+ - templates/Gemfile.tt
324
326
  - templates/README.md.erb
325
327
  - templates/addons/annotate/auto_annotate_models.rake
326
328
  - templates/addons/continuous_integration/.github/workflows/build.yml.erb
@@ -1,86 +0,0 @@
1
- create
2
- create README.md
3
- create Rakefile
4
- create .ruby-version
5
- create config.ru
6
- create Gemfile
7
- create app
8
- create app/assets/config/manifest.js
9
- create app/assets/stylesheets/application.css
10
- create app/channels/application_cable/channel.rb
11
- create app/channels/application_cable/connection.rb
12
- create app/controllers/application_controller.rb
13
- create app/helpers/application_helper.rb
14
- create app/jobs/application_job.rb
15
- create app/mailers/application_mailer.rb
16
- create app/models/application_record.rb
17
- create app/views/layouts/application.html.erb
18
- create app/views/layouts/mailer.html.erb
19
- create app/views/layouts/mailer.text.erb
20
- create app/assets/images
21
- create app/assets/images/.keep
22
- create app/controllers/concerns/.keep
23
- create app/models/concerns/.keep
24
- create bin
25
- create bin/rails
26
- create bin/rake
27
- create bin/setup
28
- create config
29
- create config/routes.rb
30
- create config/application.rb
31
- create config/environment.rb
32
- create config/cable.yml
33
- create config/puma.rb
34
- create config/storage.yml
35
- create config/environments
36
- create config/environments/development.rb
37
- create config/environments/production.rb
38
- create config/environments/test.rb
39
- create config/initializers
40
- create config/initializers/assets.rb
41
- create config/initializers/content_security_policy.rb
42
- create config/initializers/cors.rb
43
- create config/initializers/filter_parameter_logging.rb
44
- create config/initializers/inflections.rb
45
- create config/initializers/new_framework_defaults_7_0.rb
46
- create config/initializers/permissions_policy.rb
47
- create config/locales
48
- create config/locales/en.yml
49
- create config/master.key
50
- create config/boot.rb
51
- create config/database.yml
52
- create db
53
- create db/seeds.rb
54
- create lib
55
- create lib/tasks
56
- create lib/tasks/.keep
57
- create lib/assets
58
- create lib/assets/.keep
59
- create log
60
- create log/.keep
61
- create public
62
- create public/404.html
63
- create public/422.html
64
- create public/500.html
65
- create public/apple-touch-icon-precomposed.png
66
- create public/apple-touch-icon.png
67
- create public/favicon.ico
68
- create public/robots.txt
69
- create tmp
70
- create tmp/.keep
71
- create tmp/pids
72
- create tmp/pids/.keep
73
- create tmp/cache
74
- create tmp/cache/assets
75
- create vendor
76
- create vendor/.keep
77
- create test/system
78
- create test/system/.keep
79
- create test/application_system_test_case.rb
80
- create storage
81
- create storage/.keep
82
- create tmp/storage
83
- create tmp/storage/.keep
84
- remove config/initializers/cors.rb
85
- remove config/initializers/new_framework_defaults_7_0.rb
86
- finish template
@@ -1,100 +0,0 @@
1
- create
2
- create README.md
3
- create Rakefile
4
- create .ruby-version
5
- create config.ru
6
- create Gemfile
7
- create app
8
- create app/assets/config/manifest.js
9
- create app/assets/stylesheets/application.css
10
- create app/channels/application_cable/channel.rb
11
- create app/channels/application_cable/connection.rb
12
- create app/controllers/application_controller.rb
13
- create app/helpers/application_helper.rb
14
- create app/jobs/application_job.rb
15
- create app/mailers/application_mailer.rb
16
- create app/models/application_record.rb
17
- create app/views/layouts/application.html.erb
18
- create app/views/layouts/mailer.html.erb
19
- create app/views/layouts/mailer.text.erb
20
- create app/assets/images
21
- create app/assets/images/.keep
22
- create app/controllers/concerns/.keep
23
- create app/models/concerns/.keep
24
- create bin
25
- create bin/rails
26
- create bin/rake
27
- create bin/setup
28
- create config
29
- create config/routes.rb
30
- create config/application.rb
31
- create config/environment.rb
32
- create config/cable.yml
33
- create config/puma.rb
34
- create config/storage.yml
35
- create config/environments
36
- create config/environments/development.rb
37
- create config/environments/production.rb
38
- create config/environments/test.rb
39
- create config/initializers
40
- create config/initializers/assets.rb
41
- create config/initializers/content_security_policy.rb
42
- create config/initializers/cors.rb
43
- create config/initializers/filter_parameter_logging.rb
44
- create config/initializers/inflections.rb
45
- create config/initializers/new_framework_defaults_7_0.rb
46
- create config/initializers/permissions_policy.rb
47
- create config/locales
48
- create config/locales/en.yml
49
- create config/master.key
50
- create config/boot.rb
51
- create config/database.yml
52
- create db
53
- create db/seeds.rb
54
- create lib
55
- create lib/tasks
56
- create lib/tasks/.keep
57
- create lib/assets
58
- create lib/assets/.keep
59
- create log
60
- create log/.keep
61
- create public
62
- create public/404.html
63
- create public/422.html
64
- create public/500.html
65
- create public/apple-touch-icon-precomposed.png
66
- create public/apple-touch-icon.png
67
- create public/favicon.ico
68
- create public/robots.txt
69
- create tmp
70
- create tmp/.keep
71
- create tmp/pids
72
- create tmp/pids/.keep
73
- create tmp/cache
74
- create tmp/cache/assets
75
- create vendor
76
- create vendor/.keep
77
- create test/fixtures/files
78
- create test/fixtures/files/.keep
79
- create test/controllers
80
- create test/controllers/.keep
81
- create test/mailers
82
- create test/mailers/.keep
83
- create test/models
84
- create test/models/.keep
85
- create test/helpers
86
- create test/helpers/.keep
87
- create test/integration
88
- create test/integration/.keep
89
- create test/channels/application_cable/connection_test.rb
90
- create test/test_helper.rb
91
- create test/system
92
- create test/system/.keep
93
- create test/application_system_test_case.rb
94
- create storage
95
- create storage/.keep
96
- create tmp/storage
97
- create tmp/storage/.keep
98
- remove config/initializers/cors.rb
99
- remove config/initializers/new_framework_defaults_7_0.rb
100
- finish template
@@ -1,86 +0,0 @@
1
- create
2
- create README.md
3
- create Rakefile
4
- create .ruby-version
5
- create config.ru
6
- create Gemfile
7
- create app
8
- create app/assets/config/manifest.js
9
- create app/assets/stylesheets/application.css
10
- create app/channels/application_cable/channel.rb
11
- create app/channels/application_cable/connection.rb
12
- create app/controllers/application_controller.rb
13
- create app/helpers/application_helper.rb
14
- create app/jobs/application_job.rb
15
- create app/mailers/application_mailer.rb
16
- create app/models/application_record.rb
17
- create app/views/layouts/application.html.erb
18
- create app/views/layouts/mailer.html.erb
19
- create app/views/layouts/mailer.text.erb
20
- create app/assets/images
21
- create app/assets/images/.keep
22
- create app/controllers/concerns/.keep
23
- create app/models/concerns/.keep
24
- create bin
25
- create bin/rails
26
- create bin/rake
27
- create bin/setup
28
- create config
29
- create config/routes.rb
30
- create config/application.rb
31
- create config/environment.rb
32
- create config/cable.yml
33
- create config/puma.rb
34
- create config/storage.yml
35
- create config/environments
36
- create config/environments/development.rb
37
- create config/environments/production.rb
38
- create config/environments/test.rb
39
- create config/initializers
40
- create config/initializers/assets.rb
41
- create config/initializers/content_security_policy.rb
42
- create config/initializers/cors.rb
43
- create config/initializers/filter_parameter_logging.rb
44
- create config/initializers/inflections.rb
45
- create config/initializers/new_framework_defaults_7_0.rb
46
- create config/initializers/permissions_policy.rb
47
- create config/locales
48
- create config/locales/en.yml
49
- create config/master.key
50
- create config/boot.rb
51
- create config/database.yml
52
- create db
53
- create db/seeds.rb
54
- create lib
55
- create lib/tasks
56
- create lib/tasks/.keep
57
- create lib/assets
58
- create lib/assets/.keep
59
- create log
60
- create log/.keep
61
- create public
62
- create public/404.html
63
- create public/422.html
64
- create public/500.html
65
- create public/apple-touch-icon-precomposed.png
66
- create public/apple-touch-icon.png
67
- create public/favicon.ico
68
- create public/robots.txt
69
- create tmp
70
- create tmp/.keep
71
- create tmp/pids
72
- create tmp/pids/.keep
73
- create tmp/cache
74
- create tmp/cache/assets
75
- create vendor
76
- create vendor/.keep
77
- create test/system
78
- create test/system/.keep
79
- create test/application_system_test_case.rb
80
- create storage
81
- create storage/.keep
82
- create tmp/storage
83
- create tmp/storage/.keep
84
- remove config/initializers/cors.rb
85
- remove config/initializers/new_framework_defaults_7_0.rb
86
- finish template
@@ -1,91 +0,0 @@
1
- create
2
- create README.md
3
- create Rakefile
4
- create .ruby-version
5
- create config.ru
6
- create Gemfile
7
- create app
8
- create app/assets/config/manifest.js
9
- create app/assets/stylesheets/application.css
10
- create app/channels/application_cable/channel.rb
11
- create app/channels/application_cable/connection.rb
12
- create app/controllers/application_controller.rb
13
- create app/helpers/application_helper.rb
14
- create app/jobs/application_job.rb
15
- create app/mailers/application_mailer.rb
16
- create app/models/application_record.rb
17
- create app/views/layouts/application.html.erb
18
- create app/views/layouts/mailer.html.erb
19
- create app/views/layouts/mailer.text.erb
20
- create app/assets/images
21
- create app/assets/images/.keep
22
- create app/controllers/concerns/.keep
23
- create app/models/concerns/.keep
24
- create bin
25
- create bin/rails
26
- create bin/rake
27
- create bin/setup
28
- create config
29
- create config/routes.rb
30
- create config/application.rb
31
- create config/environment.rb
32
- create config/cable.yml
33
- create config/puma.rb
34
- create config/storage.yml
35
- create config/environments
36
- create config/environments/development.rb
37
- create config/environments/production.rb
38
- create config/environments/test.rb
39
- create config/initializers
40
- create config/initializers/assets.rb
41
- create config/initializers/content_security_policy.rb
42
- create config/initializers/cors.rb
43
- create config/initializers/filter_parameter_logging.rb
44
- create config/initializers/inflections.rb
45
- create config/initializers/new_framework_defaults_7_0.rb
46
- create config/initializers/permissions_policy.rb
47
- create config/locales
48
- create config/locales/en.yml
49
- create config/master.key
50
- create config/boot.rb
51
- create config/database.yml
52
- create db
53
- create db/seeds.rb
54
- create lib
55
- create lib/tasks
56
- create lib/tasks/.keep
57
- create lib/assets
58
- create lib/assets/.keep
59
- create log
60
- create log/.keep
61
- create public
62
- create public/404.html
63
- create public/422.html
64
- create public/500.html
65
- create public/apple-touch-icon-precomposed.png
66
- create public/apple-touch-icon.png
67
- create public/favicon.ico
68
- create public/robots.txt
69
- create tmp
70
- create tmp/.keep
71
- create tmp/pids
72
- create tmp/pids/.keep
73
- create tmp/cache
74
- create tmp/cache/assets
75
- create vendor
76
- create vendor/.keep
77
- create test/system
78
- create test/system/.keep
79
- create test/application_system_test_case.rb
80
- create storage
81
- create storage/.keep
82
- create tmp/storage
83
- create tmp/storage/.keep
84
- remove config/initializers/cors.rb
85
- remove config/initializers/new_framework_defaults_7_0.rb
86
- finish template
87
- run bundle install
88
- run bundle binstubs bundler
89
- rails javascript:install:esbuild
90
- rails turbo:install stimulus:install
91
- rails css:install:bootstrap