class Determinator::Retrieve::Dynaconf
A class which loads features from Dynaconf
server
Public Class Methods
new(base_url:, service_name:, client: default_client)
click to toggle source
@param :base [String] The protocol, host and port for local Dynaconf
server @param :service [String] The name of the service to be included in the User-Agent @param :client [String] Faraday client instance, defaults to a new instance
# File lib/determinator/retrieve/dynaconf.rb, line 10 def initialize(base_url:, service_name:, client: default_client) raise ArgumentError, "client must be a Faraday::Connection" unless client.is_a?(Faraday::Connection) @base_url = base_url @service_name = service_name @client = client end
Public Instance Methods
retrieve(feature_id)
click to toggle source
# File lib/determinator/retrieve/dynaconf.rb, line 18 def retrieve(feature_id) response = get(feature_id) return Determinator::Serializers::JSON.load(response.body) if response.status == 200 return MissingResponse.new if response.status == 404 rescue => e Determinator.notice_error(e) ErrorResponse.new end
Private Instance Methods
default_client()
click to toggle source
# File lib/determinator/retrieve/dynaconf.rb, line 42 def default_client Faraday.new end
get(feature_id)
click to toggle source
# File lib/determinator/retrieve/dynaconf.rb, line 29 def get(feature_id) url = "#{@base_url}/scopes/florence-#{feature_id}/feature" @client.get do |request| request.url(url) request['User-Agent'] = user_agent end end
user_agent()
click to toggle source
# File lib/determinator/retrieve/dynaconf.rb, line 38 def user_agent @user_agent ||= "Determinator/Ruby v#{Determinator::VERSION} - #{@service_name}".freeze end