rails_stats 1.0.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/test.yml +42 -0
- data/.gitignore +2 -0
- data/CHANGELOG.md +21 -0
- data/CODE_OF_CONDUCT.md +76 -0
- data/Gemfile +12 -2
- data/README.md +48 -5
- data/Rakefile +12 -0
- data/codecov.yml +2 -0
- data/lib/rails_stats/all.rb +4 -0
- data/lib/rails_stats/app_statistics.rb +9 -8
- data/lib/rails_stats/code_statistics.rb +9 -148
- data/lib/rails_stats/code_statistics_calculator.rb +5 -1
- data/lib/rails_stats/console_formatter.rb +59 -0
- data/lib/rails_stats/json_formatter.rb +46 -0
- data/lib/rails_stats/spec_statistics.rb +1 -1
- data/lib/rails_stats/stats_calculator.rb +137 -0
- data/lib/rails_stats/stats_formatter.rb +13 -0
- data/lib/rails_stats/tasks.rb +4 -3
- data/lib/rails_stats/test_statistics.rb +1 -1
- data/lib/rails_stats/util.rb +3 -3
- data/lib/rails_stats/version.rb +3 -1
- data/pull_request_template.md +9 -0
- data/rails_stats.gemspec +2 -2
- data/test/dummy/Gemfile +43 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/config/manifest.js +2 -0
- data/test/dummy/app/assets/images/.keep +0 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/channels/application_cable/channel.rb +4 -0
- data/test/dummy/app/channels/application_cable/connection.rb +4 -0
- data/test/dummy/app/controllers/application_controller.rb +7 -0
- data/test/dummy/app/controllers/concerns/.keep +0 -0
- data/test/dummy/app/helpers/application_helper.rb +3 -0
- data/test/dummy/app/javascript/channels/consumer.js +6 -0
- data/test/dummy/app/javascript/channels/index.js +5 -0
- data/test/dummy/app/javascript/packs/application.js +16 -0
- data/test/dummy/app/jobs/application_job.rb +7 -0
- data/test/dummy/app/mailers/application_mailer.rb +4 -0
- data/test/dummy/app/models/application_record.rb +3 -0
- data/test/dummy/app/models/concerns/.keep +0 -0
- data/test/dummy/app/views/layouts/application.html.erb +15 -0
- data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +36 -0
- data/test/dummy/bin/yarn +11 -0
- data/test/dummy/config/application.rb +35 -0
- data/test/dummy/config/boot.rb +4 -0
- data/test/dummy/config/cable.yml +10 -0
- data/test/dummy/config/credentials.yml.enc +1 -0
- data/test/dummy/config/database.yml +85 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +62 -0
- data/test/dummy/config/environments/production.rb +112 -0
- data/test/dummy/config/environments/test.rb +49 -0
- data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/test/dummy/config/initializers/assets.rb +14 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/content_security_policy.rb +30 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/pagy.rb +1 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +33 -0
- data/test/dummy/config/master.key +1 -0
- data/test/dummy/config/puma.rb +38 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config/spring.rb +6 -0
- data/test/dummy/config/storage.yml +34 -0
- data/test/dummy/config.ru +5 -0
- data/test/dummy/lib/monkeypatches.rb +1 -0
- data/test/dummy/package.json +10 -0
- data/test/dummy/spec/models/user_spec.rb +3 -0
- data/test/dummy/spec/support/support_file.rb +1 -0
- data/test/dummy/test/models/user_test.rb +2 -0
- data/test/dummy/test/support/test_helper.rb +1 -0
- data/test/fixtures/console-output.txt +40 -0
- data/test/lib/rails_stats/code_statistics_test.rb +20 -0
- data/test/lib/rails_stats/json_formatter_test.rb +144 -0
- data/test/test_helper.rb +27 -0
- metadata +143 -15
@@ -0,0 +1,137 @@
|
|
1
|
+
module RailsStats
|
2
|
+
class StatsCalculator
|
3
|
+
RAILS_APP_FOLDERS = ['models',
|
4
|
+
'controllers',
|
5
|
+
'helpers',
|
6
|
+
'mailers',
|
7
|
+
'views',
|
8
|
+
'assets']
|
9
|
+
|
10
|
+
def initialize(root_directory)
|
11
|
+
@root_directory = root_directory
|
12
|
+
@key_concepts = calculate_key_concepts
|
13
|
+
@projects = calculate_projects
|
14
|
+
@statistics = calculate_statistics
|
15
|
+
@code_loc = calculate_code
|
16
|
+
@test_loc = calculate_tests
|
17
|
+
@files_total, @code_total, @tests_total, @grand_total = calculate_totals
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_reader :code_loc, :code_total, :files_total, :grand_total, :statistics, :test_loc, :tests_total
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def calculate_key_concepts
|
25
|
+
# returns names of main things like models, controllers, services, etc
|
26
|
+
concepts = {}
|
27
|
+
app_projects.each do |project|
|
28
|
+
project.key_concepts.each do |key|
|
29
|
+
concepts[key] = true
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# TODO: maybe gem names?
|
34
|
+
|
35
|
+
concepts.keys
|
36
|
+
end
|
37
|
+
|
38
|
+
def calculate_projects
|
39
|
+
out = []
|
40
|
+
out += app_projects
|
41
|
+
out += calculate_root_projects
|
42
|
+
out += calculate_gem_projects
|
43
|
+
out += calculate_spec_projects
|
44
|
+
out += calculate_test_projects
|
45
|
+
out += calculate_cucumber_projects
|
46
|
+
out
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
def app_projects
|
51
|
+
@app_projects ||= calculate_app_projects
|
52
|
+
end
|
53
|
+
|
54
|
+
def calculate_app_projects
|
55
|
+
apps = Util.calculate_projects(@root_directory, "**", "app", RAILS_APP_FOLDERS)
|
56
|
+
apps.collect do |root_path|
|
57
|
+
AppStatistics.new(root_path)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def calculate_gem_projects
|
62
|
+
gems = Util.calculate_projects(@root_directory, "*", "**", "*.gemspec")
|
63
|
+
gems.collect do |root_path|
|
64
|
+
GemStatistics.new(root_path)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def calculate_spec_projects
|
69
|
+
specs = Util.calculate_shared_projects("spec", @root_directory, "**", "spec", "**", "*_spec.rb")
|
70
|
+
specs.collect do |root_path|
|
71
|
+
SpecStatistics.new(root_path, @key_concepts)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def calculate_test_projects
|
76
|
+
tests = Util.calculate_shared_projects("test", @root_directory, "**", "test", "**", "*_test.rb")
|
77
|
+
tests.collect do |root_path|
|
78
|
+
TestStatistics.new(root_path, @key_concepts)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
def calculate_root_projects
|
84
|
+
[RootStatistics.new(@root_directory)]
|
85
|
+
end
|
86
|
+
|
87
|
+
def calculate_cucumber_projects
|
88
|
+
cukes = Util.calculate_projects(@root_directory, "**", "*.feature")
|
89
|
+
cukes.collect do |root_path|
|
90
|
+
CucumberStatistics.new(root_path)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def calculate_statistics
|
95
|
+
out = {}
|
96
|
+
@projects.each do |project|
|
97
|
+
project.statistics.each do |key, stats|
|
98
|
+
out[key] ||= CodeStatisticsCalculator.new(project.test)
|
99
|
+
out[key].add(stats)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
out
|
103
|
+
end
|
104
|
+
|
105
|
+
def calculate_totals
|
106
|
+
files_total = @statistics.sum do |k,value|
|
107
|
+
value.files_total
|
108
|
+
end
|
109
|
+
|
110
|
+
code_total = @statistics.each_with_object(CodeStatisticsCalculator.new) do |pair, code_total|
|
111
|
+
code_total.add(pair.last) unless pair.last.test
|
112
|
+
end
|
113
|
+
|
114
|
+
tests_total = @statistics.each_with_object(CodeStatisticsCalculator.new) do |pair, tests_total|
|
115
|
+
tests_total.add(pair.last) if pair.last.test
|
116
|
+
end
|
117
|
+
|
118
|
+
grand_total = @statistics.each_with_object(CodeStatisticsCalculator.new) do |pair, total|
|
119
|
+
total.add(pair.last)
|
120
|
+
end
|
121
|
+
|
122
|
+
[files_total, code_total, tests_total, grand_total]
|
123
|
+
end
|
124
|
+
|
125
|
+
def calculate_code
|
126
|
+
@code_loc = 0
|
127
|
+
@statistics.each { |k, v| @code_loc += v.code_lines unless v.test }
|
128
|
+
@code_loc
|
129
|
+
end
|
130
|
+
|
131
|
+
def calculate_tests
|
132
|
+
@test_loc = 0
|
133
|
+
@statistics.each { |k, v| @test_loc += v.code_lines if v.test }
|
134
|
+
@test_loc
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module RailsStats
|
2
|
+
class StatsFormatter
|
3
|
+
def initialize(calculator, opts = {})
|
4
|
+
@calculator = calculator
|
5
|
+
@statistics = calculator.statistics
|
6
|
+
@code_total = calculator.code_total
|
7
|
+
@tests_total = calculator.tests_total
|
8
|
+
@grand_total = calculator.grand_total
|
9
|
+
end
|
10
|
+
|
11
|
+
attr_reader :calculator
|
12
|
+
end
|
13
|
+
end
|
data/lib/rails_stats/tasks.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
desc "Report code statistics (KLOCs, etc) from the current (or given) application"
|
2
|
-
task :stats, [:path] do |t, args|
|
2
|
+
task :stats, [:path, :format] do |t, args|
|
3
3
|
Rake::Task["stats"].clear # clear out normal one if there
|
4
4
|
require 'rails_stats/all'
|
5
5
|
|
6
6
|
path = args[:path]
|
7
7
|
path = Rails.root.to_s if defined?(Rails)
|
8
|
+
fmt = args[:format] || ""
|
8
9
|
raise "no path given for stats" unless path
|
9
10
|
|
10
11
|
root_directory = File.absolute_path(path)
|
11
12
|
puts "\nDirectory: #{root_directory}\n\n" if args[:path]
|
12
|
-
RailsStats::CodeStatistics.new(root_directory).to_s
|
13
|
-
end
|
13
|
+
RailsStats::CodeStatistics.new(root_directory, format: fmt).to_s
|
14
|
+
end
|
data/lib/rails_stats/util.rb
CHANGED
@@ -29,7 +29,7 @@ module RailsStats
|
|
29
29
|
projects[$1] = true
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
out = projects.keys
|
34
34
|
|
35
35
|
# TODO: make sure none are children of other ones in there
|
@@ -56,14 +56,14 @@ module RailsStats
|
|
56
56
|
|
57
57
|
directories.each do |dir_path|
|
58
58
|
next unless File.directory?(dir_path)
|
59
|
-
|
59
|
+
|
60
60
|
key = nil
|
61
61
|
if block_given?
|
62
62
|
key = yield(dir_path)
|
63
63
|
end
|
64
64
|
|
65
65
|
key = path_to_name(dir_path, is_test) if !key || key.length == 0
|
66
|
-
|
66
|
+
|
67
67
|
out[key] ||= CodeStatisticsCalculator.new(is_test)
|
68
68
|
out[key].add(calculate_directory_statistics(dir_path))
|
69
69
|
end
|
data/lib/rails_stats/version.rb
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
**IMPORTANT**: Please read the README before submitting pull requests for this project. Additionally, if your PR closes any open GitHub issues, make sure you include _Closes #XXXX_ in your comment or use the option on the PR's sidebar to add related issues to auto-close the issue that your PR fixes.
|
2
|
+
|
3
|
+
- [ ] Add an entry to `CHANGELOG.md` that links to this PR under the "main (unreleased)" heading.
|
4
|
+
|
5
|
+
**Description:**
|
6
|
+
|
7
|
+
Please include a summary of the change and which issue is fixed or which feature is introduced. If changes to the behavior are made, clearly describe what changes.
|
8
|
+
|
9
|
+
I will abide by the [code of conduct](CODE_OF_CONDUCT.md).
|
data/rails_stats.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["brian@bleonard.com"]
|
11
11
|
spec.summary = %q{Analyze a Rails project}
|
12
12
|
spec.description = %q{Point it to a directory and see stuff about the app}
|
13
|
-
spec.homepage = "https://github.com/
|
13
|
+
spec.homepage = "https://github.com/fastruby/rails_stats"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -19,5 +19,5 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "rake"
|
22
|
-
spec.
|
22
|
+
spec.add_dependency "bundler-stats", ">= 2.1"
|
23
23
|
end
|
data/test/dummy/Gemfile
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
3
|
+
|
4
|
+
ruby '2.6.8'
|
5
|
+
|
6
|
+
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
7
|
+
gem 'rails', '~> 6.0.3', '>= 6.0.3.3'
|
8
|
+
# Use Puma as the app server
|
9
|
+
gem 'puma', '~> 4.1'
|
10
|
+
# Use SCSS for stylesheets
|
11
|
+
gem "sass-rails"
|
12
|
+
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
|
13
|
+
gem 'webpacker', '~> 4.0'
|
14
|
+
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
15
|
+
gem 'jbuilder', '~> 2.7'
|
16
|
+
# Use Redis adapter to run Action Cable in production
|
17
|
+
# gem 'redis', '~> 4.0'
|
18
|
+
# Use Active Model has_secure_password
|
19
|
+
# gem 'bcrypt', '~> 3.1.7'
|
20
|
+
|
21
|
+
# Use Active Storage variant
|
22
|
+
# gem 'image_processing', '~> 1.2'
|
23
|
+
gem 'rails_stats', path: '../../../rails_stats'
|
24
|
+
|
25
|
+
# Reduces boot times through caching; required in config/boot.rb
|
26
|
+
gem 'bootsnap', '>= 1.4.2', require: false
|
27
|
+
|
28
|
+
group :development, :test do
|
29
|
+
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
30
|
+
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
|
31
|
+
end
|
32
|
+
|
33
|
+
group :development do
|
34
|
+
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
|
35
|
+
gem 'web-console', '>= 3.3.0'
|
36
|
+
gem 'listen', '~> 3.2'
|
37
|
+
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
38
|
+
gem 'spring'
|
39
|
+
gem 'spring-watcher-listen', '~> 2.0.0'
|
40
|
+
end
|
41
|
+
|
42
|
+
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
43
|
+
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
data/test/dummy/Rakefile
ADDED
File without changes
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
|
6
|
+
* vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
|
10
|
+
* files in this directory. Styles in this file should be added after the last require_* statement.
|
11
|
+
* It is generally better to create a new file per style scope.
|
12
|
+
*
|
13
|
+
*= require_tree .
|
14
|
+
*= require_self
|
15
|
+
*/
|
File without changes
|
@@ -0,0 +1,6 @@
|
|
1
|
+
// Action Cable provides the framework to deal with WebSockets in Rails.
|
2
|
+
// You can generate new channels where WebSocket features live using the `rails generate channel` command.
|
3
|
+
|
4
|
+
import { createConsumer } from "@rails/actioncable"
|
5
|
+
|
6
|
+
export default createConsumer()
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// This file is automatically compiled by Webpack, along with any other files
|
2
|
+
// present in this directory. You're encouraged to place your actual application logic in
|
3
|
+
// a relevant structure within app/javascript and only use these pack files to reference
|
4
|
+
// that code so it'll be compiled.
|
5
|
+
|
6
|
+
require("@rails/ujs").start()
|
7
|
+
require("@rails/activestorage").start()
|
8
|
+
require("channels")
|
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)
|
@@ -0,0 +1,7 @@
|
|
1
|
+
class ApplicationJob < ActiveJob::Base
|
2
|
+
# Automatically retry jobs that encountered a deadlock
|
3
|
+
# retry_on ActiveRecord::Deadlocked
|
4
|
+
|
5
|
+
# Most jobs are safe to ignore if the underlying records are no longer available
|
6
|
+
# discard_on ActiveJob::DeserializationError
|
7
|
+
end
|
File without changes
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dummy</title>
|
5
|
+
<%= csrf_meta_tags %>
|
6
|
+
<%= csp_meta_tag %>
|
7
|
+
|
8
|
+
<%= stylesheet_link_tag 'application', media: 'all' %>
|
9
|
+
<%= javascript_pack_tag 'application' %>
|
10
|
+
</head>
|
11
|
+
|
12
|
+
<body>
|
13
|
+
<%= yield %>
|
14
|
+
</body>
|
15
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= yield %>
|
data/test/dummy/bin/rake
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
# path to your application root.
|
5
|
+
APP_ROOT = File.expand_path('..', __dir__)
|
6
|
+
|
7
|
+
def system!(*args)
|
8
|
+
system(*args) || abort("\n== Command #{args} failed ==")
|
9
|
+
end
|
10
|
+
|
11
|
+
FileUtils.chdir APP_ROOT do
|
12
|
+
# This script is a way to setup or update your development environment automatically.
|
13
|
+
# This script is idempotent, so that you can run it at anytime and get an expectable outcome.
|
14
|
+
# Add necessary setup steps to this file.
|
15
|
+
|
16
|
+
puts '== Installing dependencies =='
|
17
|
+
system! 'gem install bundler --conservative'
|
18
|
+
system('bundle check') || system!('bundle install')
|
19
|
+
|
20
|
+
# Install JavaScript dependencies
|
21
|
+
# system('bin/yarn')
|
22
|
+
|
23
|
+
# puts "\n== Copying sample files =="
|
24
|
+
# unless File.exist?('config/database.yml')
|
25
|
+
# FileUtils.cp 'config/database.yml.sample', 'config/database.yml'
|
26
|
+
# end
|
27
|
+
|
28
|
+
puts "\n== Preparing database =="
|
29
|
+
system! 'bin/rails db:prepare'
|
30
|
+
|
31
|
+
puts "\n== Removing old logs and tempfiles =="
|
32
|
+
system! 'bin/rails log:clear tmp:clear'
|
33
|
+
|
34
|
+
puts "\n== Restarting application server =="
|
35
|
+
system! 'bin/rails restart'
|
36
|
+
end
|
data/test/dummy/bin/yarn
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
APP_ROOT = File.expand_path('..', __dir__)
|
3
|
+
Dir.chdir(APP_ROOT) do
|
4
|
+
begin
|
5
|
+
exec "yarnpkg", *ARGV
|
6
|
+
rescue Errno::ENOENT
|
7
|
+
$stderr.puts "Yarn executable was not detected in the system."
|
8
|
+
$stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
|
9
|
+
exit 1
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative 'boot'
|
2
|
+
|
3
|
+
require "rails"
|
4
|
+
# Pick the frameworks you want:
|
5
|
+
require "active_model/railtie"
|
6
|
+
require "active_job/railtie"
|
7
|
+
require "active_record/railtie"
|
8
|
+
require "active_storage/engine"
|
9
|
+
require "action_controller/railtie"
|
10
|
+
require "action_mailer/railtie"
|
11
|
+
require "action_mailbox/engine"
|
12
|
+
require "action_text/engine"
|
13
|
+
require "action_view/railtie"
|
14
|
+
require "action_cable/engine"
|
15
|
+
require "sprockets/railtie"
|
16
|
+
# require "rails/test_unit/railtie"
|
17
|
+
|
18
|
+
# Require the gems listed in Gemfile, including any gems
|
19
|
+
# you've limited to :test, :development, or :production.
|
20
|
+
Bundler.require(*Rails.groups)
|
21
|
+
|
22
|
+
module Dummy
|
23
|
+
class Application < Rails::Application
|
24
|
+
# Initialize configuration defaults for originally generated Rails version.
|
25
|
+
config.load_defaults 6.0
|
26
|
+
|
27
|
+
# Settings in config/environments/* take precedence over those specified here.
|
28
|
+
# Application configuration can go into files in config/initializers
|
29
|
+
# -- all .rb files in that directory are automatically loaded after loading
|
30
|
+
# the framework and any gems in your application.
|
31
|
+
|
32
|
+
# Don't generate system test files.
|
33
|
+
config.generators.system_tests = nil
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
kVQyiT2sFnPIwIVdzuBHvP1JZmyvV+vtZJ0KzfELfTDZln4s6lDaBbczomzzpgspU6/H3T0eGQk7vret3yy9Aghr9zD/moDfSvbUcniOKX/orcGlUo8cr04C5+POsIjETLI3IpE0uSvuZRiWs6bGH92AYAH+kQJar7pGyoMJLStb0WZgqFhXUGhv4d5C7ko7oXu5JojXtFpybvTUSu5SUxUsRgwobgHxVwItFzkLdxuBHgS5crUszCLnLJtjzzQw+svFUAYyRpSGgKO4v6ikHgf1coBZXCnSVmAy/7KiXD+pYj/cQG7mprblx6eryuTRN7M41lFe+54sCKLqVsosnON+cMAWY4OgXnsK4cQ9YZtSP2P6kLGWgK89dttkzPyzkICBBAihtUTDNtzE4dFoSLKtBL/0+XfW/Kja--IZq8NitCVQ3OGILn--phUrzOOviX2c97WDp14Htg==
|
@@ -0,0 +1,85 @@
|
|
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: dummy_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 that initialized the database.
|
32
|
+
#username: dummy
|
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: dummy_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 as a unix environment variable when you boot
|
67
|
+
# the app. Read https://guides.rubyonrails.org/configuring.html#configuring-a-database
|
68
|
+
# for a full rundown on how to provide these environment variables in a
|
69
|
+
# production deployment.
|
70
|
+
#
|
71
|
+
# On Heroku and other platform providers, you may have a full connection URL
|
72
|
+
# available as an environment variable. For example:
|
73
|
+
#
|
74
|
+
# DATABASE_URL="postgres://myuser:mypass@localhost/somedatabase"
|
75
|
+
#
|
76
|
+
# You can use this database configuration with:
|
77
|
+
#
|
78
|
+
# production:
|
79
|
+
# url: <%= ENV['DATABASE_URL'] %>
|
80
|
+
#
|
81
|
+
production:
|
82
|
+
<<: *default
|
83
|
+
database: dummy_production
|
84
|
+
username: dummy
|
85
|
+
password: <%= ENV['DUMMY_DATABASE_PASSWORD'] %>
|