judoscale-ruby 1.0.0.rc2 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -1
- data/Gemfile.lock +17 -5
- data/Rakefile +1 -1
- data/lib/{judoscale-ruby.rb → rails-autoscale-core.rb} +8 -6
- data/lib/{judoscale → rails_autoscale}/adapter_api.rb +12 -2
- data/lib/{judoscale → rails_autoscale}/config.rb +9 -6
- data/lib/{judoscale → rails_autoscale}/job_metrics_collector/active_record_helper.rb +2 -2
- data/lib/{judoscale → rails_autoscale}/job_metrics_collector.rb +4 -4
- data/lib/{judoscale → rails_autoscale}/logger.rb +10 -9
- data/lib/{judoscale → rails_autoscale}/metric.rb +1 -1
- data/lib/{judoscale → rails_autoscale}/metrics_collector.rb +1 -1
- data/lib/{judoscale → rails_autoscale}/metrics_store.rb +3 -3
- data/lib/{judoscale → rails_autoscale}/report.rb +1 -1
- data/lib/{judoscale → rails_autoscale}/reporter.rb +9 -9
- data/lib/{judoscale → rails_autoscale}/request_metrics.rb +2 -2
- data/lib/{judoscale → rails_autoscale}/request_middleware.rb +7 -7
- data/lib/rails_autoscale/version.rb +5 -0
- data/lib/{judoscale → rails_autoscale}/web_metrics_collector.rb +3 -3
- data/rails-autoscale-core.gemspec +27 -0
- metadata +24 -26
- data/judoscale-ruby.gemspec +0 -32
- data/lib/judoscale/version.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06d6051251ff5f628677d931e240a35ce4f93ec8409d3e9ba8e539ec300a96d6
|
4
|
+
data.tar.gz: ce94920cc35eff9f6cf328df39c84e2f0a25bd681422ab8111434311ba33cbc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21110c610a6619f3750901aade4e3a2bef813d16cfb78956225972d7b57f5769769419dcd0bf2a5d1933bf8e0760601ae35cc81d0b84078bd4232f4fadacca1d
|
7
|
+
data.tar.gz: f5f7f33785b2f0554907abce78bc0e6e10dd1e2ebf773e2b5ae9fb366fa30a024de89477ee542b43c2ac09e7fcae49db944bfe879529ae0beb2dbc652f4051c5
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,21 +1,31 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
judoscale-ruby (1.
|
4
|
+
judoscale-ruby (1.1.1)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
addressable (2.8.
|
10
|
-
public_suffix (>= 2.0.2, <
|
9
|
+
addressable (2.8.1)
|
10
|
+
public_suffix (>= 2.0.2, < 6.0)
|
11
11
|
crack (0.4.5)
|
12
12
|
rexml
|
13
|
+
debug (1.4.0)
|
14
|
+
irb (>= 1.3.6)
|
15
|
+
reline (>= 0.2.7)
|
13
16
|
hashdiff (1.0.1)
|
17
|
+
io-console (0.5.11)
|
18
|
+
irb (1.4.1)
|
19
|
+
reline (>= 0.3.0)
|
14
20
|
minitest (5.15.0)
|
15
|
-
public_suffix (
|
21
|
+
public_suffix (5.0.0)
|
16
22
|
rake (13.0.6)
|
23
|
+
rake-release (1.3.0)
|
24
|
+
bundler (>= 1.11, < 3)
|
25
|
+
reline (0.3.1)
|
26
|
+
io-console (~> 0.5)
|
17
27
|
rexml (3.2.5)
|
18
|
-
webmock (3.
|
28
|
+
webmock (3.18.1)
|
19
29
|
addressable (>= 2.8.0)
|
20
30
|
crack (>= 0.3.2)
|
21
31
|
hashdiff (>= 0.4.0, < 2.0.0)
|
@@ -27,9 +37,11 @@ PLATFORMS
|
|
27
37
|
x86_64-linux
|
28
38
|
|
29
39
|
DEPENDENCIES
|
40
|
+
debug
|
30
41
|
judoscale-ruby!
|
31
42
|
minitest
|
32
43
|
rake (>= 12.3.3)
|
44
|
+
rake-release
|
33
45
|
webmock
|
34
46
|
|
35
47
|
BUNDLED WITH
|
data/Rakefile
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "
|
4
|
-
require "
|
3
|
+
require "rails_autoscale/config"
|
4
|
+
require "rails_autoscale/version"
|
5
5
|
|
6
|
-
module
|
7
|
-
# Allows configuring
|
6
|
+
module RailsAutoscale
|
7
|
+
# Allows configuring Rails Autoscale through a block, usually defined during application initialization.
|
8
8
|
#
|
9
9
|
# Example:
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# RailsAutoscale.configure do |config|
|
12
12
|
# config.logger = MyLogger.new
|
13
13
|
# end
|
14
14
|
def self.configure
|
@@ -31,8 +31,10 @@ module Judoscale
|
|
31
31
|
@adapters << Adapter.new(identifier, adapter_info, metrics_collector)
|
32
32
|
end
|
33
33
|
|
34
|
-
add_adapter :"
|
34
|
+
add_adapter :"rails-autoscale-core", {
|
35
35
|
adapter_version: VERSION,
|
36
36
|
language_version: RUBY_VERSION
|
37
37
|
}
|
38
38
|
end
|
39
|
+
|
40
|
+
Judoscale = RailsAutoscale
|
@@ -3,9 +3,9 @@
|
|
3
3
|
require "net/http"
|
4
4
|
require "uri"
|
5
5
|
require "json"
|
6
|
-
require "
|
6
|
+
require "rails_autoscale/logger"
|
7
7
|
|
8
|
-
module
|
8
|
+
module RailsAutoscale
|
9
9
|
class AdapterApi
|
10
10
|
include Logger
|
11
11
|
|
@@ -27,6 +27,7 @@ module Judoscale
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def post_raw(options)
|
30
|
+
attempts ||= 1
|
30
31
|
uri = URI.parse("#{@config.api_base_url}#{options.fetch(:path)}")
|
31
32
|
ssl = uri.scheme == "https"
|
32
33
|
|
@@ -42,6 +43,15 @@ module Judoscale
|
|
42
43
|
when 200...300 then SuccessResponse.new(response.body)
|
43
44
|
else FailureResponse.new([response.code, response.message].join(" - "))
|
44
45
|
end
|
46
|
+
rescue Net::OpenTimeout
|
47
|
+
if attempts < 3
|
48
|
+
# TCP timeouts happen sometimes, but they can usually be successfully retried in a moment
|
49
|
+
sleep 0.01
|
50
|
+
attempts += 1
|
51
|
+
retry
|
52
|
+
else
|
53
|
+
FailureResponse.new("Timeout while obtaining TCP connection to #{uri.host}")
|
54
|
+
end
|
45
55
|
end
|
46
56
|
|
47
57
|
class SuccessResponse < Struct.new(:body)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
require "singleton"
|
4
4
|
require "logger"
|
5
5
|
|
6
|
-
module
|
6
|
+
module RailsAutoscale
|
7
7
|
class Config
|
8
8
|
class Dyno
|
9
9
|
attr_reader :name, :num
|
@@ -31,10 +31,12 @@ module Judoscale
|
|
31
31
|
|
32
32
|
def reset
|
33
33
|
@enabled = true
|
34
|
-
@max_queues = 20
|
35
34
|
@queues = []
|
36
35
|
@queue_filter = DEFAULT_QUEUE_FILTER
|
37
|
-
|
36
|
+
|
37
|
+
# Support for deprecated legacy env var configs.
|
38
|
+
@max_queues = (ENV["RAILS_AUTOSCALE_MAX_QUEUES"] || 20).to_i
|
39
|
+
@track_busy_jobs = ENV["RAILS_AUTOSCALE_LONG_JOBS"] == "true"
|
38
40
|
end
|
39
41
|
|
40
42
|
def as_json
|
@@ -64,7 +66,7 @@ module Judoscale
|
|
64
66
|
end
|
65
67
|
end
|
66
68
|
|
67
|
-
attr_accessor :api_base_url, :report_interval_seconds, :max_request_size_bytes, :logger
|
69
|
+
attr_accessor :api_base_url, :report_interval_seconds, :max_request_size_bytes, :logger, :log_tag
|
68
70
|
attr_reader :dyno, :log_level
|
69
71
|
|
70
72
|
def initialize
|
@@ -73,11 +75,12 @@ module Judoscale
|
|
73
75
|
|
74
76
|
def reset
|
75
77
|
# Allow the API URL to be configured - needed for testing.
|
76
|
-
@api_base_url = ENV["JUDOSCALE_URL"]
|
78
|
+
@api_base_url = ENV["RAILS_AUTOSCALE_URL"] || ENV["JUDOSCALE_URL"]
|
79
|
+
@log_tag = ENV["JUDOSCALE_URL"] ? "Judoscale" : "RailsAutoscale"
|
77
80
|
self.dyno = ENV["DYNO"]
|
78
81
|
@max_request_size_bytes = 100_000 # ignore request payloads over 100k since they skew the queue times
|
79
82
|
@report_interval_seconds = 10
|
80
|
-
self.log_level = ENV["JUDOSCALE_LOG_LEVEL"]
|
83
|
+
self.log_level = ENV["RAILS_AUTOSCALE_LOG_LEVEL"] || ENV["JUDOSCALE_LOG_LEVEL"]
|
81
84
|
@logger = ::Logger.new($stdout)
|
82
85
|
|
83
86
|
self.class.adapter_configs.each(&:reset)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsAutoscale
|
4
4
|
class JobMetricsCollector
|
5
5
|
module ActiveRecordHelper
|
6
6
|
# Cleanup any whitespace characters (including new lines) from the SQL for simpler logging.
|
@@ -24,7 +24,7 @@ module Judoscale
|
|
24
24
|
|
25
25
|
def select_rows_tagged(sql)
|
26
26
|
if ActiveRecord::Base.logger.respond_to?(:tagged)
|
27
|
-
ActiveRecord::Base.logger.tagged(
|
27
|
+
ActiveRecord::Base.logger.tagged(Config.instance.log_tag) { select_rows(sql) }
|
28
28
|
else
|
29
29
|
select_rows(sql)
|
30
30
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "set"
|
4
|
-
require "
|
5
|
-
require "
|
4
|
+
require "rails_autoscale/metrics_collector"
|
5
|
+
require "rails_autoscale/logger"
|
6
6
|
|
7
|
-
module
|
7
|
+
module RailsAutoscale
|
8
8
|
class JobMetricsCollector < MetricsCollector
|
9
|
-
include
|
9
|
+
include RailsAutoscale::Logger
|
10
10
|
|
11
11
|
# It's redundant to report these metrics from every dyno, so only report from the first one.
|
12
12
|
def self.collect?(config)
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "
|
3
|
+
require "rails_autoscale/config"
|
4
4
|
require "logger"
|
5
5
|
|
6
|
-
module
|
6
|
+
module RailsAutoscale
|
7
7
|
module Logger
|
8
8
|
def logger
|
9
9
|
@logger ||= LoggerProxy.new(Config.instance.logger, Config.instance.log_level)
|
@@ -11,19 +11,20 @@ module Judoscale
|
|
11
11
|
end
|
12
12
|
|
13
13
|
class LoggerProxy < Struct.new(:logger, :log_level)
|
14
|
-
|
15
|
-
|
16
|
-
%w[ERROR WARN INFO DEBUG].each do |severity_name|
|
14
|
+
%w[ERROR WARN INFO DEBUG FATAL].each do |severity_name|
|
17
15
|
severity_level = ::Logger::Severity.const_get(severity_name)
|
18
16
|
|
19
17
|
define_method(severity_name.downcase) do |*messages|
|
20
18
|
if log_level.nil?
|
21
|
-
logger.
|
19
|
+
logger.public_send(severity_name.downcase) { tag(messages) }
|
22
20
|
elsif severity_level >= log_level
|
23
21
|
if severity_level >= logger.level
|
24
|
-
logger.
|
22
|
+
logger.public_send(severity_name.downcase) { tag(messages) }
|
25
23
|
else
|
26
|
-
logger
|
24
|
+
# Our logger proxy is configured with a lower severity level than the underlying logger,
|
25
|
+
# so send this message using the underlying logger severity instead of the actual severity.
|
26
|
+
logger_severity_name = ::Logger::SEV_LABEL[logger.level].downcase
|
27
|
+
logger.public_send(logger_severity_name) { tag(messages, tag_level: severity_name) }
|
27
28
|
end
|
28
29
|
end
|
29
30
|
end
|
@@ -32,7 +33,7 @@ module Judoscale
|
|
32
33
|
private
|
33
34
|
|
34
35
|
def tag(msgs, tag_level: nil)
|
35
|
-
tag = +"[#{
|
36
|
+
tag = +"[#{Config.instance.log_tag}]"
|
36
37
|
tag << " [#{tag_level}]" if tag_level
|
37
38
|
msgs.map { |msg| "#{tag} #{msg}" }.join("\n")
|
38
39
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "singleton"
|
4
|
-
require "
|
5
|
-
require "
|
4
|
+
require "rails_autoscale/metric"
|
5
|
+
require "rails_autoscale/report"
|
6
6
|
|
7
|
-
module
|
7
|
+
module RailsAutoscale
|
8
8
|
class MetricsStore
|
9
9
|
include Singleton
|
10
10
|
|
@@ -1,18 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "singleton"
|
4
|
-
require "
|
5
|
-
require "
|
6
|
-
require "
|
7
|
-
require "
|
8
|
-
require "
|
4
|
+
require "rails_autoscale/config"
|
5
|
+
require "rails_autoscale/logger"
|
6
|
+
require "rails_autoscale/adapter_api"
|
7
|
+
require "rails_autoscale/job_metrics_collector"
|
8
|
+
require "rails_autoscale/web_metrics_collector"
|
9
9
|
|
10
|
-
module
|
10
|
+
module RailsAutoscale
|
11
11
|
class Reporter
|
12
12
|
include Singleton
|
13
13
|
include Logger
|
14
14
|
|
15
|
-
def self.start(config = Config.instance, adapters =
|
15
|
+
def self.start(config = Config.instance, adapters = RailsAutoscale.adapters)
|
16
16
|
instance.start!(config, adapters) unless instance.started?
|
17
17
|
end
|
18
18
|
|
@@ -20,7 +20,7 @@ module Judoscale
|
|
20
20
|
@pid = Process.pid
|
21
21
|
|
22
22
|
if !config.api_base_url
|
23
|
-
logger.info "Reporter not started:
|
23
|
+
logger.info "Reporter not started: RAILS_AUTOSCALE_URL is not set"
|
24
24
|
return
|
25
25
|
end
|
26
26
|
|
@@ -76,7 +76,7 @@ module Judoscale
|
|
76
76
|
private
|
77
77
|
|
78
78
|
def report(config, metrics)
|
79
|
-
report = Report.new(
|
79
|
+
report = Report.new(RailsAutoscale.adapters, config, metrics)
|
80
80
|
logger.info "Reporting #{report.metrics.size} metrics"
|
81
81
|
result = AdapterApi.new(config).report_metrics(report.as_json)
|
82
82
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsAutoscale
|
4
4
|
class RequestMetrics
|
5
5
|
attr_reader :request_id, :size, :network_time
|
6
6
|
|
@@ -36,7 +36,7 @@ module Judoscale
|
|
36
36
|
queue_time -= network_time
|
37
37
|
|
38
38
|
# Safeguard against negative queue times (should not happen in practice)
|
39
|
-
queue_time > 0 ? queue_time : 0
|
39
|
+
(queue_time > 0) ? queue_time : 0
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "
|
4
|
-
require "
|
5
|
-
require "
|
6
|
-
require "
|
3
|
+
require "rails_autoscale/metrics_store"
|
4
|
+
require "rails_autoscale/reporter"
|
5
|
+
require "rails_autoscale/logger"
|
6
|
+
require "rails_autoscale/request_metrics"
|
7
7
|
|
8
|
-
module
|
8
|
+
module RailsAutoscale
|
9
9
|
class RequestMiddleware
|
10
10
|
include Logger
|
11
11
|
|
@@ -27,11 +27,11 @@ module Judoscale
|
|
27
27
|
store = MetricsStore.instance
|
28
28
|
|
29
29
|
# NOTE: Expose queue time to the app
|
30
|
-
env["
|
30
|
+
env["rails_autoscale.queue_time"] = queue_time
|
31
31
|
store.push :qt, queue_time
|
32
32
|
|
33
33
|
unless network_time.zero?
|
34
|
-
env["
|
34
|
+
env["rails_autoscale.network_time"] = network_time
|
35
35
|
store.push :nt, network_time
|
36
36
|
end
|
37
37
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "
|
4
|
-
require "
|
3
|
+
require "rails_autoscale/metrics_collector"
|
4
|
+
require "rails_autoscale/metrics_store"
|
5
5
|
|
6
|
-
module
|
6
|
+
module RailsAutoscale
|
7
7
|
class WebMetricsCollector < MetricsCollector
|
8
8
|
def self.collect?(config)
|
9
9
|
config.dyno.name == "web"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
lib = File.expand_path("../lib", __FILE__)
|
2
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
+
require "rails_autoscale/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "rails-autoscale-core"
|
7
|
+
spec.version = RailsAutoscale::VERSION
|
8
|
+
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva"]
|
9
|
+
spec.email = ["adam@adamlogic.com"]
|
10
|
+
|
11
|
+
spec.summary = "This gem works with the Rails Autoscale Heroku add-on to automatically scale your web and worker dynos."
|
12
|
+
spec.homepage = "https://railsautoscale.com"
|
13
|
+
spec.license = "MIT"
|
14
|
+
|
15
|
+
spec.metadata = {
|
16
|
+
"homepage_uri" => "https://railsautoscale.com",
|
17
|
+
"bug_tracker_uri" => "https://github.com/rails-autoscale/rails-autoscale-gems/issues",
|
18
|
+
"documentation_uri" => "https://railsautoscale.com/docs",
|
19
|
+
"changelog_uri" => "https://github.com/rails-autoscale/rails-autoscale-gems/blob/main/CHANGELOG.md",
|
20
|
+
"source_code_uri" => "https://github.com/rails-autoscale/rails-autoscale-gems"
|
21
|
+
}
|
22
|
+
|
23
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
|
+
spec.require_paths = ["lib"]
|
25
|
+
|
26
|
+
spec.required_ruby_version = ">= 2.6.0"
|
27
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: judoscale-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam McCrea
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-11-23 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email:
|
@@ -21,34 +21,32 @@ files:
|
|
21
21
|
- Gemfile
|
22
22
|
- Gemfile.lock
|
23
23
|
- Rakefile
|
24
|
-
-
|
25
|
-
- lib/
|
26
|
-
- lib/
|
27
|
-
- lib/
|
28
|
-
- lib/
|
29
|
-
- lib/
|
30
|
-
- lib/
|
31
|
-
- lib/
|
32
|
-
- lib/
|
33
|
-
- lib/
|
34
|
-
- lib/
|
35
|
-
- lib/
|
36
|
-
- lib/
|
37
|
-
- lib/
|
38
|
-
- lib/
|
39
|
-
-
|
24
|
+
- lib/rails-autoscale-core.rb
|
25
|
+
- lib/rails_autoscale/adapter_api.rb
|
26
|
+
- lib/rails_autoscale/config.rb
|
27
|
+
- lib/rails_autoscale/job_metrics_collector.rb
|
28
|
+
- lib/rails_autoscale/job_metrics_collector/active_record_helper.rb
|
29
|
+
- lib/rails_autoscale/logger.rb
|
30
|
+
- lib/rails_autoscale/metric.rb
|
31
|
+
- lib/rails_autoscale/metrics_collector.rb
|
32
|
+
- lib/rails_autoscale/metrics_store.rb
|
33
|
+
- lib/rails_autoscale/report.rb
|
34
|
+
- lib/rails_autoscale/reporter.rb
|
35
|
+
- lib/rails_autoscale/request_metrics.rb
|
36
|
+
- lib/rails_autoscale/request_middleware.rb
|
37
|
+
- lib/rails_autoscale/version.rb
|
38
|
+
- lib/rails_autoscale/web_metrics_collector.rb
|
39
|
+
- rails-autoscale-core.gemspec
|
40
40
|
homepage: https://judoscale.com
|
41
41
|
licenses:
|
42
42
|
- MIT
|
43
43
|
metadata:
|
44
44
|
homepage_uri: https://judoscale.com
|
45
45
|
bug_tracker_uri: https://github.com/judoscale/judoscale-ruby/issues
|
46
|
-
documentation_uri: https://
|
46
|
+
documentation_uri: https://railsautoscale.com/docs
|
47
47
|
changelog_uri: https://github.com/judoscale/judoscale-ruby/blob/main/CHANGELOG.md
|
48
48
|
source_code_uri: https://github.com/judoscale/judoscale-ruby
|
49
|
-
post_install_message:
|
50
|
-
`judoscale-ruby` is deprecated! Please migrate to `rails-autoscale-core`.
|
51
|
-
See https://github.com/rails-autoscale/rails-autoscale-gems for the installation guide.
|
49
|
+
post_install_message:
|
52
50
|
rdoc_options: []
|
53
51
|
require_paths:
|
54
52
|
- lib
|
@@ -59,13 +57,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
59
57
|
version: 2.6.0
|
60
58
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
59
|
requirements:
|
62
|
-
- - "
|
60
|
+
- - ">="
|
63
61
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
62
|
+
version: '0'
|
65
63
|
requirements: []
|
66
64
|
rubygems_version: 3.2.32
|
67
65
|
signing_key:
|
68
66
|
specification_version: 4
|
69
|
-
summary: This gem
|
70
|
-
|
67
|
+
summary: This gem works with the Judoscale Heroku add-on to automatically scale your
|
68
|
+
web and worker dynos.
|
71
69
|
test_files: []
|
data/judoscale-ruby.gemspec
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
lib = File.expand_path("../lib", __FILE__)
|
2
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require "judoscale/version"
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name = "judoscale-ruby"
|
7
|
-
spec.version = Judoscale::VERSION
|
8
|
-
spec.authors = ["Adam McCrea", "Carlos Antonio da Silva"]
|
9
|
-
spec.email = ["adam@adamlogic.com"]
|
10
|
-
|
11
|
-
spec.summary = "This gem is deprecated. See https://github.com/rails-autoscale/rails-autoscale-gems to integrate your Ruby app with the Judoscale Heroku add-on."
|
12
|
-
spec.homepage = "https://judoscale.com"
|
13
|
-
spec.license = "MIT"
|
14
|
-
|
15
|
-
spec.metadata = {
|
16
|
-
"homepage_uri" => "https://judoscale.com",
|
17
|
-
"bug_tracker_uri" => "https://github.com/judoscale/judoscale-ruby/issues",
|
18
|
-
"documentation_uri" => "https://judoscale.com/docs",
|
19
|
-
"changelog_uri" => "https://github.com/judoscale/judoscale-ruby/blob/main/CHANGELOG.md",
|
20
|
-
"source_code_uri" => "https://github.com/judoscale/judoscale-ruby"
|
21
|
-
}
|
22
|
-
|
23
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
24
|
-
spec.require_paths = ["lib"]
|
25
|
-
|
26
|
-
spec.required_ruby_version = ">= 2.6.0"
|
27
|
-
|
28
|
-
spec.post_install_message = <<~EOS
|
29
|
-
`judoscale-ruby` is deprecated! Please migrate to `rails-autoscale-core`.
|
30
|
-
See https://github.com/rails-autoscale/rails-autoscale-gems for the installation guide.
|
31
|
-
EOS
|
32
|
-
end
|