class Rack::TrafficSignal::Config
Attributes
default_body[RW]
default_content_type[RW]
default_status[RW]
internal_ips[RW]
maintenance_group[R]
secret_word[RW]
skip_paths[RW]
skip_proc[RW]
skip_with_warning_proc[RW]
Public Class Methods
new()
click to toggle source
# File lib/rack/traffic_signal/config.rb, line 17 def initialize @internal_ips = [] @maintenance_group = { } @default_status = 503 @default_content_type = 'application/json' @default_body = '' @secret_word = '' @skip_paths = [/^\/assets/] @maintenance_status_proc = ->{ [] } @skip_proc = ->(env){ false } @skip_with_warning_proc = ->(env){ false } end
Public Instance Methods
maintenance_group=(mg)
click to toggle source
# File lib/rack/traffic_signal/config.rb, line 30 def maintenance_group=(mg) raise Rack::TrafficSignal::Exceptions::InvalidMaintenanceGroup unless valid_maintenance_group?(mg) @maintenance_group = mg end
maintenance_status()
click to toggle source
# File lib/rack/traffic_signal/config.rb, line 39 def maintenance_status @maintenance_status_proc.call.tap do |status| raise Rack::TrafficSignal::Exceptions::InvalidMaintenanceStatus unless status.is_a? Array raise Rack::TrafficSignal::Exceptions::InvalidMaintenanceStatus unless status.all? do |state| state.is_a?(Symbol) && (state == :all || state.to_s =~ /\A[A-Za-z0-9]+_[A-Za-z0-9]+\z/) end end end
maintenance_status_by(&block)
click to toggle source
# File lib/rack/traffic_signal/config.rb, line 35 def maintenance_status_by(&block) @maintenance_status_proc = block end
skip_by(&block)
click to toggle source
# File lib/rack/traffic_signal/config.rb, line 48 def skip_by(&block) @skip_proc = block end
skip_with_warning_by(&block)
click to toggle source
# File lib/rack/traffic_signal/config.rb, line 52 def skip_with_warning_by(&block) @skip_with_warning_proc = block end
Private Instance Methods
valid_maintenance_group?(mg)
click to toggle source
# File lib/rack/traffic_signal/config.rb, line 57 def valid_maintenance_group?(mg) return false unless mg.is_a? Hash mg.values.each do |group| return false unless group.is_a? Hash group.values.each do |igroup| return false unless igroup.is_a? Array igroup.each do |setting| return false unless setting.key?(:methods) return false unless setting.key? :path end end end true rescue false end