pig-ci-rails 1.0.1 → 1.1.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 +4 -4
- data/.github/workflows/changelog.yml +14 -10
- data/.github/workflows/gempush.yml +4 -15
- data/.github/workflows/rspec.yml +11 -24
- data/.github/workflows/standard.yml +27 -0
- data/CHANGELOG.md +36 -8
- data/Gemfile +1 -1
- data/README.md +30 -21
- data/Rakefile +2 -2
- data/config/locales/pig_ci/en.yml +1 -1
- data/lib/pig_ci.rb +20 -20
- data/lib/pig_ci/configuration.rb +2 -2
- data/lib/pig_ci/decorator.rb +1 -1
- data/lib/pig_ci/decorator/report_terminal_decorator.rb +3 -3
- data/lib/pig_ci/metric.rb +2 -2
- data/lib/pig_ci/metric/current.rb +1 -1
- data/lib/pig_ci/metric/historial/change_percentage.rb +1 -1
- data/lib/pig_ci/metric/historical.rb +5 -5
- data/lib/pig_ci/profiler.rb +7 -7
- data/lib/pig_ci/profiler/memory.rb +1 -1
- data/lib/pig_ci/profiler_engine.rb +2 -2
- data/lib/pig_ci/profiler_engine/rails.rb +11 -8
- data/lib/pig_ci/report.rb +7 -7
- data/lib/pig_ci/report/memory.rb +1 -1
- data/lib/pig_ci/summary.rb +3 -3
- data/lib/pig_ci/summary/ci.rb +7 -7
- data/lib/pig_ci/summary/html.rb +8 -8
- data/lib/pig_ci/summary/terminal.rb +3 -3
- data/lib/pig_ci/test_frameworks.rb +1 -1
- data/lib/pig_ci/test_frameworks/rspec.rb +15 -14
- data/lib/pig_ci/version.rb +1 -1
- data/lib/pig_ci/views/index.erb +4 -4
- data/pig_ci.gemspec +34 -32
- metadata +31 -32
- data/.dockerignore +0 -58
- data/.env +0 -3
- data/.github/FUNDING.yml +0 -3
- data/.github/workflows/linters.yml +0 -78
- data/.rubocop.yml +0 -17
- data/.ruby-version +0 -1
- data/.travis.yml +0 -27
- data/Aptfile +0 -0
- data/Dockerfile +0 -45
- data/docker-compose.yml +0 -20
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "colorized_string"
|
2
2
|
|
3
3
|
class PigCI::Decorator::ReportTerminalDecorator < PigCI::Decorator
|
4
4
|
%i[key max min mean number_of_requests].each do |field|
|
@@ -8,9 +8,9 @@ class PigCI::Decorator::ReportTerminalDecorator < PigCI::Decorator
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def max_change_percentage
|
11
|
-
if @object[:max_change_percentage].start_with?(
|
11
|
+
if @object[:max_change_percentage].start_with?("-")
|
12
12
|
ColorizedString[@object[:max_change_percentage]].colorize(:green)
|
13
|
-
elsif @object[:max_change_percentage].start_with?(
|
13
|
+
elsif @object[:max_change_percentage].start_with?("0.0")
|
14
14
|
@object[:max_change_percentage]
|
15
15
|
else
|
16
16
|
ColorizedString[@object[:max_change_percentage]].colorize(:red)
|
data/lib/pig_ci/metric.rb
CHANGED
@@ -11,7 +11,7 @@ class PigCI::Metric::Historical::ChangePercentage
|
|
11
11
|
previous_run_data = previous_run_data_for_key(data[:key]) || data
|
12
12
|
|
13
13
|
data[:max_change_percentage] = (((BigDecimal(data[:max]) - BigDecimal(previous_run_data[:max])) / BigDecimal(previous_run_data[:max])) * 100).round(PigCI.max_change_percentage_precision)
|
14
|
-
data[:max_change_percentage] = BigDecimal(
|
14
|
+
data[:max_change_percentage] = BigDecimal("0") if data[:max_change_percentage].to_s == "NaN" || data[:max_change_percentage] == BigDecimal("-0.0")
|
15
15
|
data[:max_change_percentage] = data[:max_change_percentage].to_f
|
16
16
|
|
17
17
|
data
|
@@ -29,15 +29,15 @@ class PigCI::Metric::Historical
|
|
29
29
|
|
30
30
|
def remove_old_historical_data!
|
31
31
|
new_historical_data = @to_h
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
.sort_by { |timestamp, _data| timestamp.to_s.to_i * -1 }[0..(PigCI.historical_data_run_limit - 1)]
|
33
|
+
.to_h
|
34
|
+
.sort_by { |timestamp, _data| timestamp.to_s.to_i * -1 }.to_h
|
35
35
|
@to_h = new_historical_data
|
36
36
|
end
|
37
37
|
|
38
38
|
def read_historical_log_file
|
39
39
|
if File.exist?(@historical_log_file)
|
40
|
-
JSON.parse(File.open(@historical_log_file,
|
40
|
+
JSON.parse(File.open(@historical_log_file, "r").read, symbolize_names: true)
|
41
41
|
else
|
42
42
|
{}
|
43
43
|
end
|
@@ -49,4 +49,4 @@ class PigCI::Metric::Historical
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
-
require
|
52
|
+
require "pig_ci/metric/historial/change_percentage"
|
data/lib/pig_ci/profiler.rb
CHANGED
@@ -2,14 +2,14 @@ class PigCI::Profiler
|
|
2
2
|
attr_accessor :log_value, :log_file, :historical_log_file, :i18n_key
|
3
3
|
|
4
4
|
def initialize(i18n_key: nil, log_file: nil, historical_log_file: nil)
|
5
|
-
@i18n_key = i18n_key || self.class.name.underscore.split(
|
5
|
+
@i18n_key = i18n_key || self.class.name.underscore.split("/").last
|
6
6
|
@log_file = log_file || PigCI.tmp_directory.join("#{@i18n_key}.txt")
|
7
7
|
@historical_log_file = historical_log_file || PigCI.tmp_directory.join("#{@i18n_key}.json")
|
8
8
|
@log_value = 0
|
9
9
|
end
|
10
10
|
|
11
11
|
def setup!
|
12
|
-
File.open(log_file,
|
12
|
+
File.open(log_file, "w") { |file| file.truncate(0) }
|
13
13
|
end
|
14
14
|
|
15
15
|
def reset!
|
@@ -17,8 +17,8 @@ class PigCI::Profiler
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def log_request!(request_key)
|
20
|
-
File.open(log_file,
|
21
|
-
f.puts([request_key, log_value].join(
|
20
|
+
File.open(log_file, "a+") do |f|
|
21
|
+
f.puts([request_key, log_value].join("|"))
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
@@ -36,6 +36,6 @@ class PigCI::Profiler
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
require
|
40
|
-
require
|
41
|
-
require
|
39
|
+
require "pig_ci/profiler/memory"
|
40
|
+
require "pig_ci/profiler/request_time"
|
41
|
+
require "pig_ci/profiler/database_request"
|
@@ -8,7 +8,7 @@ class PigCI::ProfilerEngine
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def request_key?
|
11
|
-
!@request_key.nil? && @request_key !=
|
11
|
+
!@request_key.nil? && @request_key != ""
|
12
12
|
end
|
13
13
|
|
14
14
|
def request_captured?
|
@@ -37,4 +37,4 @@ class PigCI::ProfilerEngine
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
require
|
40
|
+
require "pig_ci/profiler_engine/rails"
|
@@ -31,10 +31,13 @@ class PigCI::ProfilerEngine::Rails < ::PigCI::ProfilerEngine
|
|
31
31
|
def precompile_assets!
|
32
32
|
# From: https://github.com/rails/sprockets-rails/blob/e9ca63edb6e658cdfcf8a35670c525b369c2ccca/test/test_railtie.rb#L7-L13
|
33
33
|
::Rails.application.load_tasks
|
34
|
-
::Rake.application[
|
34
|
+
::Rake.application["assets:precompile"].execute
|
35
35
|
end
|
36
36
|
|
37
37
|
def eager_load_rails!
|
38
|
+
# None of these methods will work pre-rails 5.
|
39
|
+
return unless ::Rails.version.to_f >= 5.0
|
40
|
+
|
38
41
|
# Eager load rails to give more accurate memory levels.
|
39
42
|
::Rails.application.eager_load!
|
40
43
|
::Rails.application.routes.eager_load!
|
@@ -45,25 +48,25 @@ class PigCI::ProfilerEngine::Rails < ::PigCI::ProfilerEngine
|
|
45
48
|
def make_blank_application_request!
|
46
49
|
# Make a call to the root path to load up as much of rails as possible
|
47
50
|
# Done within a timezone block as it affects the timezone.
|
48
|
-
Time.use_zone(
|
49
|
-
::Rails.application.call(::Rack::MockRequest.env_for(
|
51
|
+
Time.use_zone("UTC") do
|
52
|
+
::Rails.application.call(::Rack::MockRequest.env_for("/"))
|
50
53
|
end
|
51
54
|
end
|
52
55
|
|
53
56
|
def attach_listeners!
|
54
|
-
::ActiveSupport::Notifications.subscribe
|
57
|
+
::ActiveSupport::Notifications.subscribe "start_processing.action_controller" do |_name, _started, _finished, _unique_id, payload|
|
55
58
|
request_key_from_payload!(payload)
|
56
59
|
|
57
60
|
profilers.each(&:reset!)
|
58
61
|
end
|
59
62
|
|
60
|
-
::ActiveSupport::Notifications.subscribe
|
61
|
-
if request_key? && PigCI.enabled? && (
|
62
|
-
profilers.select { |profiler| profiler.
|
63
|
+
::ActiveSupport::Notifications.subscribe "sql.active_record" do |_name, _started, _finished, _unique_id, payload|
|
64
|
+
if request_key? && PigCI.enabled? && (!PigCI.ignore_cached_queries? || (PigCI.ignore_cached_queries? && !payload[:cached]))
|
65
|
+
profilers.select { |profiler| profiler.instance_of?(PigCI::Profiler::DatabaseRequest) }.each(&:increment!)
|
63
66
|
end
|
64
67
|
end
|
65
68
|
|
66
|
-
::ActiveSupport::Notifications.subscribe
|
69
|
+
::ActiveSupport::Notifications.subscribe "process_action.action_controller" do |_name, _started, _finished, _unique_id, _payload|
|
67
70
|
if PigCI.enabled?
|
68
71
|
profilers.each do |profiler|
|
69
72
|
profiler.log_request!(request_key)
|
data/lib/pig_ci/report.rb
CHANGED
@@ -2,7 +2,7 @@ class PigCI::Report
|
|
2
2
|
attr_accessor :historical_log_file, :i18n_key
|
3
3
|
|
4
4
|
def initialize(historical_log_file: nil, i18n_key: nil, timestamp: nil)
|
5
|
-
@i18n_key = i18n_key || self.class.name.underscore.split(
|
5
|
+
@i18n_key = i18n_key || self.class.name.underscore.split("/").last
|
6
6
|
@historical_log_file = historical_log_file || PigCI.tmp_directory.join("#{@i18n_key}.json")
|
7
7
|
@timestamp = timestamp || PigCI.run_timestamp
|
8
8
|
end
|
@@ -12,7 +12,7 @@ class PigCI::Report
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def i18n_name
|
15
|
-
I18n.t(
|
15
|
+
I18n.t(".name", scope: i18n_scope, locale: PigCI.locale)
|
16
16
|
end
|
17
17
|
|
18
18
|
def max_for(timestamp)
|
@@ -30,9 +30,9 @@ class PigCI::Report
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def sorted_and_formatted_data_for(timestamp)
|
33
|
-
data_for(timestamp)[@i18n_key.to_sym].sort_by
|
33
|
+
data_for(timestamp)[@i18n_key.to_sym].sort_by { |data|
|
34
34
|
PigCI.report_row_sort_by(data)
|
35
|
-
|
35
|
+
}.collect do |data|
|
36
36
|
self.class.format_row(data)
|
37
37
|
end
|
38
38
|
end
|
@@ -73,6 +73,6 @@ class PigCI::Report
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
require
|
77
|
-
require
|
78
|
-
require
|
76
|
+
require "pig_ci/report/memory"
|
77
|
+
require "pig_ci/report/request_time"
|
78
|
+
require "pig_ci/report/database_request"
|
data/lib/pig_ci/report/memory.rb
CHANGED
data/lib/pig_ci/summary.rb
CHANGED
data/lib/pig_ci/summary/ci.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "colorized_string"
|
2
2
|
|
3
3
|
class PigCI::Summary::CI < PigCI::Summary
|
4
4
|
def initialize(reports:)
|
@@ -7,8 +7,8 @@ class PigCI::Summary::CI < PigCI::Summary
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def call!
|
10
|
-
puts
|
11
|
-
puts I18n.t(
|
10
|
+
puts ""
|
11
|
+
puts I18n.t("pig_ci.summary.ci_start")
|
12
12
|
|
13
13
|
over_threshold = false
|
14
14
|
@reports.each do |report|
|
@@ -17,22 +17,22 @@ class PigCI::Summary::CI < PigCI::Summary
|
|
17
17
|
end
|
18
18
|
|
19
19
|
fail_with_error! if over_threshold
|
20
|
-
puts
|
20
|
+
puts ""
|
21
21
|
end
|
22
22
|
|
23
23
|
private
|
24
24
|
|
25
25
|
def fail_with_error!
|
26
|
-
puts I18n.t(
|
26
|
+
puts I18n.t("pig_ci.summary.ci_failure")
|
27
27
|
Kernel.exit(2)
|
28
28
|
end
|
29
29
|
|
30
30
|
def print_report(report)
|
31
31
|
max_and_threshold = [
|
32
32
|
report.max_for(@timestamp).to_s,
|
33
|
-
|
33
|
+
"/",
|
34
34
|
report.threshold
|
35
|
-
].join(
|
35
|
+
].join(" ")
|
36
36
|
|
37
37
|
if report.over_threshold_for?(@timestamp)
|
38
38
|
puts "#{report.i18n_name}: #{ColorizedString[max_and_threshold].colorize(:red)}\n"
|
data/lib/pig_ci/summary/html.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# It aims to save to the project root in /pig-ci.
|
3
3
|
# It is inspired by https://github.com/colszowka/simplecov-html
|
4
4
|
|
5
|
-
require
|
5
|
+
require "erb"
|
6
6
|
|
7
7
|
class PigCI::Summary::HTML < PigCI::Summary
|
8
8
|
def initialize(reports:)
|
@@ -11,15 +11,15 @@ class PigCI::Summary::HTML < PigCI::Summary
|
|
11
11
|
|
12
12
|
def save!
|
13
13
|
copy_assets!
|
14
|
-
File.write(index_file_path, template(
|
14
|
+
File.write(index_file_path, template("index").result(binding))
|
15
15
|
|
16
|
-
puts I18n.t(
|
16
|
+
puts I18n.t("pig_ci.summary.saved_successfully", output_directory: PigCI.output_directory)
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def render_report(report)
|
22
|
-
template(
|
22
|
+
template("report").result(binding)
|
23
23
|
end
|
24
24
|
|
25
25
|
def timestamps
|
@@ -27,11 +27,11 @@ class PigCI::Summary::HTML < PigCI::Summary
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def template(name)
|
30
|
-
ERB.new(File.read(File.join(File.dirname(__FILE__),
|
30
|
+
ERB.new(File.read(File.join(File.dirname(__FILE__), "../views", "#{name}.erb")))
|
31
31
|
end
|
32
32
|
|
33
33
|
def index_file_path
|
34
|
-
PigCI.output_directory.join(
|
34
|
+
PigCI.output_directory.join("index.html")
|
35
35
|
end
|
36
36
|
|
37
37
|
def copy_assets!
|
@@ -40,10 +40,10 @@ class PigCI::Summary::HTML < PigCI::Summary
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def output_assets_directory
|
43
|
-
PigCI.output_directory.join(
|
43
|
+
PigCI.output_directory.join("assets")
|
44
44
|
end
|
45
45
|
|
46
46
|
def assets_directory
|
47
|
-
File.join(File.dirname(__FILE__),
|
47
|
+
File.join(File.dirname(__FILE__), "../../../public/assets")
|
48
48
|
end
|
49
49
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "terminal-table"
|
2
2
|
|
3
3
|
class PigCI::Summary::Terminal < PigCI::Summary
|
4
4
|
def initialize(reports:)
|
@@ -19,8 +19,8 @@ class PigCI::Summary::Terminal < PigCI::Summary
|
|
19
19
|
|
20
20
|
table = ::Terminal::Table.new headings: report.headings do |t|
|
21
21
|
report.sorted_and_formatted_data_for(@timestamp)[0..PigCI.terminal_report_row_limit]
|
22
|
-
|
23
|
-
|
22
|
+
.collect { |data| PigCI::Decorator::ReportTerminalDecorator.new(data) }
|
23
|
+
.each do |data|
|
24
24
|
t << report.column_keys.collect { |key| data.send(key) }
|
25
25
|
end
|
26
26
|
end
|
@@ -1,20 +1,21 @@
|
|
1
1
|
class PigCI::TestFrameworks::Rspec
|
2
2
|
def self.configure!
|
3
|
-
::RSpec
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
if defined?(::RSpec)
|
4
|
+
::RSpec.configure do |config|
|
5
|
+
config.around(:each, pig_ci: false) do |example|
|
6
|
+
@pig_ci_enabled = PigCI.enabled?
|
7
|
+
PigCI.enabled = false
|
8
|
+
example.run
|
9
|
+
PigCI.enabled = @pig_ci_enabled
|
10
|
+
end
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
config.around(:each, pig_ci: true) do |example|
|
13
|
+
@pig_ci_enabled = PigCI.enabled?
|
14
|
+
PigCI.enabled = true
|
15
|
+
example.run
|
16
|
+
PigCI.enabled = @pig_ci_enabled
|
17
|
+
end
|
16
18
|
end
|
17
|
-
|
18
|
-
end if defined?(::RSpec)
|
19
|
+
end
|
19
20
|
end
|
20
21
|
end
|
data/lib/pig_ci/version.rb
CHANGED
data/lib/pig_ci/views/index.erb
CHANGED
@@ -10,8 +10,8 @@
|
|
10
10
|
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
|
11
11
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
|
12
12
|
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
|
13
|
-
<link rel="shortcut icon" href="https://pigci.
|
14
|
-
<link rel="icon" type="image/ico" href="https://pigci.
|
13
|
+
<link rel="shortcut icon" href="https://pigci.mikerogers.io/images/favicon.png"/>
|
14
|
+
<link rel="icon" type="image/ico" href="https://pigci.mikerogers.io/images/favicon.ico"/>
|
15
15
|
</head>
|
16
16
|
<body>
|
17
17
|
|
@@ -19,8 +19,8 @@
|
|
19
19
|
<header class="py-3">
|
20
20
|
<div class="row">
|
21
21
|
<div class="col-6">
|
22
|
-
<a href="https://pigci.
|
23
|
-
<img src="https://pigci.
|
22
|
+
<a href="https://pigci.mikerogers.io/" target="_blank" rel="noopener">
|
23
|
+
<img src="https://pigci.mikerogers.io/images/logo_pigci.svg" class="float-left mr-4" alt="PigCI Logo" />
|
24
24
|
</a>
|
25
25
|
<h1><%= I18n.t('.pig_ci.summary.title') %></h1>
|
26
26
|
</div>
|
data/pig_ci.gemspec
CHANGED
@@ -1,46 +1,48 @@
|
|
1
|
-
lib = File.expand_path(
|
1
|
+
lib = File.expand_path("lib", __dir__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require
|
3
|
+
require "pig_ci/version"
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
|
-
spec.name
|
7
|
-
spec.version
|
8
|
-
spec.authors
|
9
|
-
spec.email
|
6
|
+
spec.name = "pig-ci-rails"
|
7
|
+
spec.version = PigCI::VERSION
|
8
|
+
spec.authors = ["Mike Rogers"]
|
9
|
+
spec.email = ["me@mikerogers.io"]
|
10
10
|
|
11
|
-
spec.summary
|
12
|
-
spec.description
|
13
|
-
spec.homepage
|
14
|
-
spec.license
|
11
|
+
spec.summary = "Monitor your Ruby Applications metrics via your test suite."
|
12
|
+
spec.description = "A gem for Ruby on Rails that will track key metrics (memory, request time & SQL Requests) for request & feature tests."
|
13
|
+
spec.homepage = "https://github.com/PigCI/pig-ci-rails"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.metadata = {
|
17
|
+
"bug_tracker_uri" => "#{spec.homepage}/issues",
|
18
|
+
"changelog_uri" => "#{spec.homepage}/blob/master/CHANGELOG.md",
|
19
|
+
"documentation_uri" => spec.homepage,
|
20
|
+
"homepage_uri" => spec.homepage,
|
21
|
+
"source_code_uri" => spec.homepage,
|
22
|
+
"funding_uri" => "https://www.buymeacoffee.com/MikeRogers0"
|
23
|
+
}
|
15
24
|
|
16
25
|
# Specify which files should be added to the gem when it is released.
|
17
26
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
18
27
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
19
28
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
20
29
|
end
|
21
|
-
spec.require_paths = [
|
22
|
-
spec.required_ruby_version =
|
23
|
-
|
24
|
-
spec.add_dependency 'activesupport', '>= 4.2'
|
25
|
-
spec.add_dependency 'colorize', '>= 0.8.1'
|
26
|
-
spec.add_dependency 'get_process_mem', '~> 0.2.3'
|
27
|
-
spec.add_dependency 'i18n', '>= 0.9', '< 2'
|
28
|
-
spec.add_dependency 'rails', '>= 4.2.0'
|
29
|
-
spec.add_dependency 'terminal-table', '~> 1.8.0'
|
30
|
+
spec.require_paths = ["lib"]
|
31
|
+
spec.required_ruby_version = ">= 2.5"
|
30
32
|
|
31
|
-
spec.
|
32
|
-
spec.
|
33
|
-
spec.
|
33
|
+
spec.add_dependency "activesupport", ">= 4.2"
|
34
|
+
spec.add_dependency "colorize", ">= 0.8.1"
|
35
|
+
spec.add_dependency "get_process_mem", "~> 0.2.3"
|
36
|
+
spec.add_dependency "i18n", ">= 0.9", "< 2"
|
37
|
+
spec.add_dependency "rails", ">= 4.2.0"
|
38
|
+
spec.add_dependency "terminal-table", ">= 1.8", "< 2.1"
|
34
39
|
|
35
|
-
spec.add_development_dependency
|
36
|
-
spec.add_development_dependency
|
37
|
-
spec.add_development_dependency
|
38
|
-
spec.add_development_dependency 'yard', '~> 0.9.24'
|
40
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
41
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
42
|
+
spec.add_development_dependency "webmock", "~> 3.11.0"
|
39
43
|
|
40
|
-
spec.
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
'See https://github.com/PigCI/pig-ci-rails#configuring-thresholds for more information :)'
|
45
|
-
].join("\n")
|
44
|
+
spec.add_development_dependency "json-schema", "~> 2.8.1"
|
45
|
+
spec.add_development_dependency "rspec", "~> 3.10.0"
|
46
|
+
spec.add_development_dependency "simplecov", "~> 0.20.0"
|
47
|
+
spec.add_development_dependency "yard", "~> 0.9.24"
|
46
48
|
end
|