class WebValve::FakeServiceConfig

Attributes

custom_service_url[R]
service_class_name[R]

Public Class Methods

new(service_class_name:, url: nil) click to toggle source
# File lib/webvalve/fake_service_config.rb, line 5
def initialize(service_class_name:, url: nil)
  @service_class_name = service_class_name
  @custom_service_url = url
end

Public Instance Methods

explicitly_disabled?() click to toggle source
# File lib/webvalve/fake_service_config.rb, line 14
def explicitly_disabled?
  value_from_env.present? && WebValve::DISABLED_VALUES.include?(value_from_env.to_s)
end
explicitly_enabled?() click to toggle source
# File lib/webvalve/fake_service_config.rb, line 10
def explicitly_enabled?
  value_from_env.present? && WebValve::ENABLED_VALUES.include?(value_from_env.to_s)
end
full_url() click to toggle source
# File lib/webvalve/fake_service_config.rb, line 18
def full_url
  @full_url ||= custom_service_url || default_service_url
end
path_prefix() click to toggle source
# File lib/webvalve/fake_service_config.rb, line 29
def path_prefix
  @path_prefix ||= URI::parse(service_url).path
end
service_url() click to toggle source
# File lib/webvalve/fake_service_config.rb, line 22
def service_url
  @service_url ||= begin
    raise missing_url_message if full_url.blank?
    strip_basic_auth full_url
  end
end

Private Instance Methods

default_service_url() click to toggle source
# File lib/webvalve/fake_service_config.rb, line 53
def default_service_url
  ENV["#{service_name.to_s.upcase}_API_URL"]
end
missing_url_message() click to toggle source
# File lib/webvalve/fake_service_config.rb, line 41
    def missing_url_message
      <<~MESSAGE
        There is no URL defined for #{service_class_name}.
        Configure one by setting the ENV variable "#{service_name.to_s.upcase}_API_URL"
        or by using WebValve.register "#{service_class_name}", url: "http://something.dev"
      MESSAGE
    end
service_name() click to toggle source
# File lib/webvalve/fake_service_config.rb, line 57
def service_name
  @service_name ||= service_class_name.demodulize.underscore.sub 'fake_', ''
end
strip_basic_auth(url) click to toggle source
# File lib/webvalve/fake_service_config.rb, line 49
def strip_basic_auth(url)
  url.to_s.sub(%r(\Ahttp(s)?://[^@/]+@), 'http\1://')
end
value_from_env() click to toggle source
# File lib/webvalve/fake_service_config.rb, line 37
def value_from_env
  ENV["#{service_name.to_s.upcase}_ENABLED"]
end