rsg 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +13 -0
  3. data/.gitignore +11 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +14 -0
  6. data/Gemfile +13 -0
  7. data/Gemfile.lock +190 -0
  8. data/LICENSE +201 -0
  9. data/README.md +192 -0
  10. data/Rakefile +10 -0
  11. data/bin/console +12 -0
  12. data/bin/setup +8 -0
  13. data/exe/rsg +22 -0
  14. data/lib/rsg/generators/actions.rb +108 -0
  15. data/lib/rsg/generators/app/USAGE +14 -0
  16. data/lib/rsg/generators/app/app_builder.rb +42 -0
  17. data/lib/rsg/generators/app/app_generator.rb +80 -0
  18. data/lib/rsg/generators/app/templates/README.md.erb +22 -0
  19. data/lib/rsg/generators/base.rb +27 -0
  20. data/lib/rsg/generators/dotenv/install_generator.rb +24 -0
  21. data/lib/rsg/generators/dotenv/templates/env.development +2 -0
  22. data/lib/rsg/generators/dotenv/templates/env.test +2 -0
  23. data/lib/rsg/generators/gemfile/cleanup_generator.rb +28 -0
  24. data/lib/rsg/generators/install/install_generator.rb +13 -0
  25. data/lib/rsg/generators/logging/common_generator.rb +40 -0
  26. data/lib/rsg/generators/logging/lograge_generator.rb +31 -0
  27. data/lib/rsg/generators/logging/templates/initializer_lograge.rb +9 -0
  28. data/lib/rsg/generators/misc/misc_generator.rb +61 -0
  29. data/lib/rsg/generators/misc/templates/puma.rb +44 -0
  30. data/lib/rsg/generators/options.rb +15 -0
  31. data/lib/rsg/generators/orm/active_record_generator.rb +44 -0
  32. data/lib/rsg/generators/orm/templates/active_record/mysql.yml +59 -0
  33. data/lib/rsg/generators/orm/templates/active_record/postgresql.yml +86 -0
  34. data/lib/rsg/generators/orm/templates/active_record/sqlite3.yml +25 -0
  35. data/lib/rsg/generators/orm/templates/db.rake +7 -0
  36. data/lib/rsg/generators/orm/templates/samples.rb +10 -0
  37. data/lib/rsg/generators/orm/templates/seeds.rb +9 -0
  38. data/lib/rsg/generators/testing/rspec_generator.rb +33 -0
  39. data/lib/rsg/generators/webpacker/install_generator.rb +51 -0
  40. data/lib/rsg/generators/webpacker/templates/application.js +18 -0
  41. data/lib/rsg/generators/webpacker/templates/application.sass +19 -0
  42. data/lib/rsg/generators/webpacker/templates/landing_controller.rb.erb +6 -0
  43. data/lib/rsg/generators/webpacker/templates/landing_show.html.erb +8 -0
  44. data/lib/rsg/version.rb +4 -0
  45. data/lib/rsg.rb +36 -0
  46. data/rsg.gemspec +28 -0
  47. data/templates/README.md +4 -0
  48. data/templates/rsg-default.rb +17 -0
  49. metadata +109 -0
@@ -0,0 +1,59 @@
1
+ # MySQL. Versions 5.5.8 and up are supported.
2
+ #
3
+ # Install the MySQL driver
4
+ # gem install mysql2
5
+ #
6
+ # Ensure the MySQL gem is defined in your Gemfile
7
+ # gem 'mysql2'
8
+ #
9
+ # And be sure to use new-style password hashing:
10
+ # https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html
11
+ #
12
+ default: &default
13
+ adapter: mysql2
14
+ encoding: utf8mb4
15
+ pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
16
+ username: root
17
+ password:
18
+ <% if mysql_socket -%>
19
+ socket: <%= mysql_socket %>
20
+ <% else -%>
21
+ host: localhost
22
+ <% end -%>
23
+
24
+ development:
25
+ <<: *default
26
+ database: <%= app_name %>_development
27
+
28
+ # Warning: The database defined as "test" will be erased and
29
+ # re-generated from your development database when you run "rake".
30
+ # Do not set this db to the same as development or production.
31
+ test:
32
+ <<: *default
33
+ database: <%= app_name %>_test
34
+
35
+ # As with config/credentials.yml, you never want to store sensitive information,
36
+ # like your database password, in your source code. If your source code is
37
+ # ever seen by anyone, they now have access to your database.
38
+ #
39
+ # Instead, provide the password or a full connection URL as an environment
40
+ # variable when you boot the app. For example:
41
+ #
42
+ # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
43
+ #
44
+ # If the connection URL is provided in the special DATABASE_URL environment
45
+ # variable, Rails will automatically merge its configuration values on top of
46
+ # the values provided in this file. Alternatively, you can specify a connection
47
+ # URL environment variable explicitly:
48
+ #
49
+ # production:
50
+ # url: <%%= ENV['MY_APP_DATABASE_URL'] %>
51
+ #
52
+ # Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
53
+ # for a full overview on how database connection configuration can be specified.
54
+ #
55
+ production:
56
+ <<: *default
57
+ database: <%= app_name %>_production
58
+ username: <%= app_name %>
59
+ password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
@@ -0,0 +1,86 @@
1
+ # PostgreSQL. Versions 9.3 and up are supported.
2
+ #
3
+ # Install the pg driver:
4
+ # gem install pg
5
+ # On macOS with Homebrew:
6
+ # gem install pg -- --with-pg-config=/usr/local/bin/pg_config
7
+ # On macOS with MacPorts:
8
+ # gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
9
+ # On Windows:
10
+ # gem install pg
11
+ # Choose the win32 build.
12
+ # Install PostgreSQL and put its /bin directory on your path.
13
+ #
14
+ # Configure Using Gemfile
15
+ # gem 'pg'
16
+ #
17
+ default: &default
18
+ adapter: postgresql
19
+ encoding: unicode
20
+ # For details on connection pooling, see Rails configuration guide
21
+ # https://guides.rubyonrails.org/configuring.html#database-pooling
22
+ pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
23
+
24
+ development:
25
+ <<: *default
26
+ database: <%= app_name %>_development
27
+
28
+ # The specified database role being used to connect to postgres.
29
+ # To create additional roles in postgres see `$ createuser --help`.
30
+ # When left blank, postgres will use the default role. This is
31
+ # the same name as the operating system user running Rails.
32
+ #username: <%= app_name %>
33
+
34
+ # The password associated with the postgres role (username).
35
+ #password:
36
+
37
+ # Connect on a TCP socket. Omitted by default since the client uses a
38
+ # domain socket that doesn't need configuration. Windows does not have
39
+ # domain sockets, so uncomment these lines.
40
+ #host: localhost
41
+
42
+ # The TCP port the server listens on. Defaults to 5432.
43
+ # If your server runs on a different port number, change accordingly.
44
+ #port: 5432
45
+
46
+ # Schema search path. The server defaults to $user,public
47
+ #schema_search_path: myapp,sharedapp,public
48
+
49
+ # Minimum log levels, in increasing order:
50
+ # debug5, debug4, debug3, debug2, debug1,
51
+ # log, notice, warning, error, fatal, and panic
52
+ # Defaults to warning.
53
+ #min_messages: notice
54
+
55
+ # Warning: The database defined as "test" will be erased and
56
+ # re-generated from your development database when you run "rake".
57
+ # Do not set this db to the same as development or production.
58
+ test:
59
+ <<: *default
60
+ database: <%= app_name %>_test
61
+
62
+ # As with config/credentials.yml, you never want to store sensitive information,
63
+ # like your database password, in your source code. If your source code is
64
+ # ever seen by anyone, they now have access to your database.
65
+ #
66
+ # Instead, provide the password or a full connection URL as an environment
67
+ # variable when you boot the app. For example:
68
+ #
69
+ # DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase"
70
+ #
71
+ # If the connection URL is provided in the special DATABASE_URL environment
72
+ # variable, Rails will automatically merge its configuration values on top of
73
+ # the values provided in this file. Alternatively, you can specify a connection
74
+ # URL environment variable explicitly:
75
+ #
76
+ # production:
77
+ # url: <%%= ENV['MY_APP_DATABASE_URL'] %>
78
+ #
79
+ # Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
80
+ # for a full overview on how database connection configuration can be specified.
81
+ #
82
+ production:
83
+ <<: *default
84
+ database: <%= app_name %>_production
85
+ username: <%= app_name %>
86
+ password: <%%= ENV['<%= app_name.upcase %>_DATABASE_PASSWORD'] %>
@@ -0,0 +1,25 @@
1
+ # SQLite. Versions 3.8.0 and up are supported.
2
+ # gem install sqlite3
3
+ #
4
+ # Ensure the SQLite 3 gem is defined in your Gemfile
5
+ # gem 'sqlite3'
6
+ #
7
+ default: &default
8
+ adapter: sqlite3
9
+ pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
10
+ timeout: 5000
11
+
12
+ development:
13
+ <<: *default
14
+ database: db/development.sqlite3
15
+
16
+ # Warning: The database defined as "test" will be erased and
17
+ # re-generated from your development database when you run "rake".
18
+ # Do not set this db to the same as development or production.
19
+ test:
20
+ <<: *default
21
+ database: db/test.sqlite3
22
+
23
+ production:
24
+ <<: *default
25
+ database: db/production.sqlite3
@@ -0,0 +1,7 @@
1
+ namespace :db do
2
+ desc "Generate sample data for the application"
3
+ task sample: :environment do
4
+ raise "Can't run in production" if Rails.env.production? || ENV["FORCE_SAMPLE"]
5
+ load Rails.root.join("db/samples.rb")
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ # This file should contain all the record creation needed to populate sample data to use the application. The
2
+ # data created here differs from the data created in db/seeds.rb as we don't expect the script to be idempotent
3
+ # and assume that the script might be executed multiple times.
4
+ #
5
+ # The data can then be loaded with the bin/rails db:sample command.
6
+ #
7
+ # Examples:
8
+ #
9
+ # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
10
+ # Character.create(name: 'Luke', movie: movies.first)
@@ -0,0 +1,9 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup).
3
+ #
4
+ # NOTE: This script should be idempotent!
5
+ #
6
+ # Examples:
7
+ #
8
+ # movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
9
+ # Character.create(name: 'Luke', movie: movies.first)
@@ -0,0 +1,33 @@
1
+ require_relative "../base"
2
+
3
+ module Rsg
4
+ module Testing
5
+ class RspecGenerator < Generators::Base
6
+ def banner
7
+ say "Configuring rspec"
8
+ end
9
+
10
+ def add_rspec
11
+ append_gem "rspec-rails", within_group: [:development, :test]
12
+ end
13
+
14
+ def gitignore
15
+ append_file ".gitignore", "\n# Ignore rspec state\n/spec/examples.txt\n"
16
+ end
17
+
18
+ def install
19
+ generate("rspec:install")
20
+ end
21
+
22
+ def enable_recommendations
23
+ gsub_file "spec/spec_helper.rb", /^# The settings below[^=]+=begin\n(.+)\n=end/m, '\1'
24
+ end
25
+
26
+ def no_ci_focus
27
+ gsub_file "spec/spec_helper.rb", /^ config\.filter_run_when_matching :focus$/ do
28
+ " if ENV.key?(\"CI\")\n config.filter_run_when_matching :focus\n end"
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,51 @@
1
+ require_relative "../base"
2
+
3
+ module Rsg
4
+ module Webpacker
5
+ class InstallGenerator < Generators::Base
6
+ def self.source_root
7
+ Pathname.new(__FILE__).dirname.join("templates").expand_path
8
+ end
9
+
10
+ def sanity_check
11
+ raise "Can't configure webpacker on API apps yet" if api_mode?
12
+ end
13
+
14
+ def banner
15
+ say("Configuring webpacker")
16
+ end
17
+
18
+ def add_webpacker
19
+ append_gem("webpacker", version: "~> 5.0")
20
+ end
21
+
22
+ def install_webpacker
23
+ rake("webpacker:install")
24
+ end
25
+
26
+ def configure_js
27
+ copy_file "application.js", "app/javascript/packs/application.js", force: true
28
+
29
+ inject_into_file "app/views/layouts/application.html.erb",
30
+ " <%= javascript_pack_tag 'application' %>\n ",
31
+ before: /<\/body>/
32
+ end
33
+
34
+ def configure_sass
35
+ copy_file "application.sass", "app/javascript/stylesheets/application.sass"
36
+ gsub_file "app/views/layouts/application.html.erb",
37
+ "stylesheet_link_tag",
38
+ "stylesheet_pack_tag"
39
+ end
40
+
41
+ def configure_landing
42
+ template "landing_controller.rb.erb", "app/controllers/landing_controller.rb"
43
+ copy_file "landing_show.html.erb", "app/views/landing/show.html.erb"
44
+ inject_into_file "config/routes.rb", <<-CODE, before: "end"
45
+
46
+ root 'landing#show'
47
+ CODE
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,18 @@
1
+ /* eslint no-console:0 */
2
+ // This file is automatically compiled by Webpack, along with any other files
3
+ // present in this directory. You're encouraged to place your actual application logic in
4
+ // a relevant structure within app/javascript and only use these pack files to reference
5
+ // that code so it'll be compiled.
6
+ //
7
+ // To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate
8
+ // layout file, like app/views/layouts/application.html.erb
9
+
10
+
11
+ // Uncomment to copy all static images under ../images to the output folder and reference
12
+ // them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)
13
+ // or the `imagePath` JavaScript helper below.
14
+ //
15
+ // const images = require.context('../images', true)
16
+ // const imagePath = (name) => images(name, true)
17
+
18
+ import "../stylesheets/application.sass";
@@ -0,0 +1,19 @@
1
+ // This is a manifest file that'll be compiled into application.css.
2
+
3
+ // If want to use a CSS framework, you can add it to Webpacker by following the instructions to load the
4
+ // framework as an NPM module using yarn, typically `yarn add <framework>`.
5
+ // The framework should have instructions on importing it into a SASS / SCSS file.
6
+
7
+ // For application specific styles, you are encouraged to just write them below. As it grows, you can
8
+ // extract into logically grouped files under `app/javascript/stylesheets/*.sass` and `import` them here.
9
+ //
10
+ // Example:
11
+ // @import "reset.sass"
12
+ // @import "global.sass"
13
+ // @import "components.sass"
14
+ // ...
15
+
16
+ // This is just for the automagically generated landing page, feel free to remove once you change that page
17
+ // to something that makes sense to your application.
18
+ pre
19
+ color: #444
@@ -0,0 +1,6 @@
1
+ class LandingController < ApplicationController
2
+ def show
3
+ @rails_version = Rails::VERSION
4
+ @rsg_version = "<%= Rsg::VERSION %>"
5
+ end
6
+ end
@@ -0,0 +1,8 @@
1
+ <br>
2
+ <pre>
3
+ Hello, it's <%= Time.now.as_json %> now!
4
+
5
+ You're running Rails <%= @rails_version %> and you've generated the app using RSG <%= @rsg_version %>.
6
+
7
+ You probably want to change this file, which lives at `app/views/landing/show.html.erb`
8
+ </pre>
@@ -0,0 +1,4 @@
1
+ module Rsg
2
+ VERSION = "0.0.1"
3
+ RAILS_VERSION = "~> 6.1.4"
4
+ end
data/lib/rsg.rb ADDED
@@ -0,0 +1,36 @@
1
+ require_relative "rsg/version"
2
+
3
+ require_relative "rsg/generators/actions"
4
+ require_relative "rsg/generators/options"
5
+ require_relative "rsg/generators/base"
6
+
7
+ require_relative "rsg/generators/app/app_generator"
8
+ require_relative "rsg/generators/dotenv/install_generator"
9
+ require_relative "rsg/generators/gemfile/cleanup_generator"
10
+ require_relative "rsg/generators/install/install_generator"
11
+ require_relative "rsg/generators/logging/common_generator"
12
+ require_relative "rsg/generators/logging/lograge_generator"
13
+ require_relative "rsg/generators/misc/misc_generator"
14
+ require_relative "rsg/generators/orm/active_record_generator"
15
+ require_relative "rsg/generators/testing/rspec_generator"
16
+ require_relative "rsg/generators/webpacker/install_generator"
17
+
18
+ module Rsg
19
+ def self.app_templates_sources
20
+ @app_templates_sources ||= [
21
+ Pathname.new(__FILE__).dirname.join("../templates").expand_path
22
+ ]
23
+ end
24
+
25
+ def self.lookup_app_template(template_name)
26
+ return if template_name =~ %r{^https?\://}
27
+ return if File.exists?(template_name)
28
+
29
+ app_templates_sources.each do |src|
30
+ template = "#{src}/#{template_name}.rb"
31
+ return template if File.exists?(template)
32
+ end
33
+
34
+ return nil
35
+ end
36
+ end
data/rsg.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ require_relative "lib/rsg/version"
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "rsg"
5
+ spec.version = Rsg::VERSION
6
+ spec.authors = ["Doximity Engineering"]
7
+ spec.email = ["engineering@doximity.com"]
8
+
9
+ spec.summary = "A custom generator that scaffolds Rails apps with Doximity conventions baked in"
10
+ spec.homepage = "https://github.com/doximity/rsg"
11
+ spec.license = "Apache-2.0"
12
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
13
+
14
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
15
+ spec.metadata["homepage_uri"] = spec.homepage
16
+ spec.metadata["source_code_uri"] = spec.homepage
17
+
18
+ # Specify which files should be added to the gem when it is released.
19
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
21
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
22
+ end
23
+ spec.bindir = "exe"
24
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
25
+ spec.require_paths = ["lib"]
26
+
27
+ spec.add_dependency "rails", Rsg::RAILS_VERSION
28
+ end
@@ -0,0 +1,4 @@
1
+ # Application templates
2
+
3
+ This is a folder that contains the default template alongside other ways of
4
+ configuring apps on top of the base app generated by default by RSG.
@@ -0,0 +1,17 @@
1
+ # Default RSG template, the one that gets executed when none is specified
2
+
3
+ run "bundle check || bundle install"
4
+ git_add_commit "Rails app generated with rsg v#{Rsg::VERSION}, api_mode=#{options["api"]}"
5
+
6
+ say("Adding rsg gem to application")
7
+ rsg_install
8
+
9
+ rsg_generate "rsg:gemfile:cleanup"
10
+ rsg_generate "rsg:misc:misc"
11
+ rsg_generate "rsg:logging:common"
12
+ rsg_generate "rsg:dotenv:install"
13
+ rsg_generate "rsg:orm:active_record" if confirm?("Do you want to configure active_record?")
14
+ rsg_generate "rsg:webpacker:install" unless options[:api]
15
+
16
+ rsg_generate "rsg:logging:lograge"
17
+ rsg_generate "rsg:testing:rspec"
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rsg
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Doximity Engineering
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-11-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 6.1.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 6.1.4
27
+ description:
28
+ email:
29
+ - engineering@doximity.com
30
+ executables:
31
+ - rsg
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - ".circleci/config.yml"
36
+ - ".gitignore"
37
+ - ".rspec"
38
+ - ".rubocop.yml"
39
+ - Gemfile
40
+ - Gemfile.lock
41
+ - LICENSE
42
+ - README.md
43
+ - Rakefile
44
+ - bin/console
45
+ - bin/setup
46
+ - exe/rsg
47
+ - lib/rsg.rb
48
+ - lib/rsg/generators/actions.rb
49
+ - lib/rsg/generators/app/USAGE
50
+ - lib/rsg/generators/app/app_builder.rb
51
+ - lib/rsg/generators/app/app_generator.rb
52
+ - lib/rsg/generators/app/templates/README.md.erb
53
+ - lib/rsg/generators/base.rb
54
+ - lib/rsg/generators/dotenv/install_generator.rb
55
+ - lib/rsg/generators/dotenv/templates/env.development
56
+ - lib/rsg/generators/dotenv/templates/env.test
57
+ - lib/rsg/generators/gemfile/cleanup_generator.rb
58
+ - lib/rsg/generators/install/install_generator.rb
59
+ - lib/rsg/generators/logging/common_generator.rb
60
+ - lib/rsg/generators/logging/lograge_generator.rb
61
+ - lib/rsg/generators/logging/templates/initializer_lograge.rb
62
+ - lib/rsg/generators/misc/misc_generator.rb
63
+ - lib/rsg/generators/misc/templates/puma.rb
64
+ - lib/rsg/generators/options.rb
65
+ - lib/rsg/generators/orm/active_record_generator.rb
66
+ - lib/rsg/generators/orm/templates/active_record/mysql.yml
67
+ - lib/rsg/generators/orm/templates/active_record/postgresql.yml
68
+ - lib/rsg/generators/orm/templates/active_record/sqlite3.yml
69
+ - lib/rsg/generators/orm/templates/db.rake
70
+ - lib/rsg/generators/orm/templates/samples.rb
71
+ - lib/rsg/generators/orm/templates/seeds.rb
72
+ - lib/rsg/generators/testing/rspec_generator.rb
73
+ - lib/rsg/generators/webpacker/install_generator.rb
74
+ - lib/rsg/generators/webpacker/templates/application.js
75
+ - lib/rsg/generators/webpacker/templates/application.sass
76
+ - lib/rsg/generators/webpacker/templates/landing_controller.rb.erb
77
+ - lib/rsg/generators/webpacker/templates/landing_show.html.erb
78
+ - lib/rsg/version.rb
79
+ - rsg.gemspec
80
+ - templates/README.md
81
+ - templates/rsg-default.rb
82
+ homepage: https://github.com/doximity/rsg
83
+ licenses:
84
+ - Apache-2.0
85
+ metadata:
86
+ allowed_push_host: https://rubygems.org
87
+ homepage_uri: https://github.com/doximity/rsg
88
+ source_code_uri: https://github.com/doximity/rsg
89
+ post_install_message:
90
+ rdoc_options: []
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 2.7.0
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubygems_version: 3.2.3
105
+ signing_key:
106
+ specification_version: 4
107
+ summary: A custom generator that scaffolds Rails apps with Doximity conventions baked
108
+ in
109
+ test_files: []