Class: Rack::TrafficSignal::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/rack/traffic_signal/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



17
18
19
20
21
22
23
24
25
26
27
28
# 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

Instance Attribute Details

#default_bodyObject

Returns the value of attribute default_body.



8
9
10
# File 'lib/rack/traffic_signal/config.rb', line 8

def default_body
  @default_body
end

#default_content_typeObject

Returns the value of attribute default_content_type.



8
9
10
# File 'lib/rack/traffic_signal/config.rb', line 8

def default_content_type
  @default_content_type
end

#default_statusObject

Returns the value of attribute default_status.



8
9
10
# File 'lib/rack/traffic_signal/config.rb', line 8

def default_status
  @default_status
end

#internal_ipsObject

Returns the value of attribute internal_ips.



8
9
10
# File 'lib/rack/traffic_signal/config.rb', line 8

def internal_ips
  @internal_ips
end

#maintenance_groupObject

Returns the value of attribute maintenance_group.



7
8
9
# File 'lib/rack/traffic_signal/config.rb', line 7

def maintenance_group
  @maintenance_group
end

#secret_wordObject

Returns the value of attribute secret_word.



8
9
10
# File 'lib/rack/traffic_signal/config.rb', line 8

def secret_word
  @secret_word
end

#skip_pathsObject

Returns the value of attribute skip_paths.



8
9
10
# File 'lib/rack/traffic_signal/config.rb', line 8

def skip_paths
  @skip_paths
end

#skip_procObject

Returns the value of attribute skip_proc.



8
9
10
# File 'lib/rack/traffic_signal/config.rb', line 8

def skip_proc
  @skip_proc
end

#skip_with_warning_procObject

Returns the value of attribute skip_with_warning_proc.



8
9
10
# File 'lib/rack/traffic_signal/config.rb', line 8

def skip_with_warning_proc
  @skip_with_warning_proc
end

Instance Method Details

#maintenance_statusObject



39
40
41
42
43
44
45
46
# 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) ⇒ Object



35
36
37
# File 'lib/rack/traffic_signal/config.rb', line 35

def maintenance_status_by(&block)
  @maintenance_status_proc = block
end

#skip_by(&block) ⇒ Object



48
49
50
# File 'lib/rack/traffic_signal/config.rb', line 48

def skip_by(&block)
  @skip_proc = block
end

#skip_with_warning_by(&block) ⇒ Object



52
53
54
# File 'lib/rack/traffic_signal/config.rb', line 52

def skip_with_warning_by(&block)
  @skip_with_warning_proc = block
end