rails_app_generator 0.1.7 → 0.1.8

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: 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