Try to fix circular dependency

pull/16098/head
Alberto Miedes Garcés 4 years ago
parent 5c413f2f50
commit d9dd6b6039

@ -0,0 +1,25 @@
module Carto
class RateLimitValue
attr_accessor :max_burst, :count_per_period, :period
def initialize(values)
@values = values
self.max_burst, self.count_per_period, self.period = values.map(&:to_i) if valid?
end
def valid?
values_per_rate_limit = Carto::RateLimitValues::VALUES_PER_RATE_LIMIT
if !@values || @values.length < values_per_rate_limit && @values.length % values_per_rate_limit != 0
raise 'Error: Number of rate limits needs to be multiple of three'
end
true
end
def to_array
[max_burst, count_per_period, period]
end
end
end

@ -1,5 +1,6 @@
module Carto
class RateLimitValues
extend Forwardable
delegate [:<<,
:[],
@ -23,7 +24,7 @@ module Carto
values = convert_from_db_array(values)
values.each_slice(VALUES_PER_RATE_LIMIT) do |slice|
push(RateLimitValue.new(slice))
push(Carto::RateLimitValue.new(slice))
end
end
@ -36,7 +37,7 @@ module Carto
end
def to_redis_array
RateLimitValues.dump(self)
self.class.dump(self)
end
def self.dump(rate_limit_values)
@ -46,36 +47,17 @@ module Carto
end
def self.load(values)
RateLimitValues.new(values)
new(values)
end
private
def convert_from_db_array(values)
return [] if values.nil? || values.empty?
return [] if values.blank?
return values.delete('{}').split(',') if values.is_a? String
values
end
end
class RateLimitValue
attr_accessor :max_burst, :count_per_period, :period
def initialize(values)
@values = values
self.max_burst, self.count_per_period, self.period = values.map(&:to_i) if valid?
end
def valid?
values_per_rate_limit = Carto::RateLimitValues::VALUES_PER_RATE_LIMIT
if !@values || @values.length < values_per_rate_limit && @values.length % values_per_rate_limit != 0
raise 'Error: Number of rate limits needs to be multiple of three'
end
true
values
end
def to_array
[max_burst, count_per_period, period]
end
end
end

Loading…
Cancel
Save