class Wovn::ReverseProxy::Wovnrb

Fixed Wovnrb for reverse proxy.

Public Class Methods

new(app, opts = {}) click to toggle source
Calls superclass method
# File lib/wovn/reverse_proxy/wovnrb.rb, line 7
def initialize(app, opts = {})
  super
  @setting_keys = @store.instance_eval { @settings.keys }
end

Public Instance Methods

call(env) click to toggle source
Calls superclass method
# File lib/wovn/reverse_proxy/wovnrb.rb, line 12
def call(env)
  opts = get_wovn_settings(env)
  @store.reset
  @store.settings(opts)
  super
end

Private Instance Methods

get_appropriate_value(key, value) click to toggle source
# File lib/wovn/reverse_proxy/wovnrb.rb, line 30
def get_appropriate_value(key, value)
  if key == 'query' || key == 'supported_langs'
    value = value.split(/,/)
  elsif key == 'test_mode' || key == 'use_proxy'
    value = true? value
  end
  value
end
get_wovn_settings(env) click to toggle source
# File lib/wovn/reverse_proxy/wovnrb.rb, line 21
def get_wovn_settings(env)
  @setting_keys.each_with_object({}) do |key, params|
    env_key = "HTTP_X_WOVN_#{key.upcase}"
    value = env[env_key]
    next unless value
    params[key] = get_appropriate_value(key, value)
  end
end
true?(value) click to toggle source
# File lib/wovn/reverse_proxy/wovnrb.rb, line 39
def true?(value)
  return true if value.to_s.casecmp('true').zero?
  return true if value.to_s.casecmp('on').zero?
  return true if value.to_s == '1'
  false
end