rails_stats 1.0.1 → 2.0.0
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 +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'] %>
|