Sha256: 76ab5f92fa3a0d52572d390518ba9338fbab36e9ec00dbc44da4eec8b2a3521d
Contents?: true
Size: 1.28 KB
Versions: 1
Compression:
Stored size: 1.28 KB
Contents
# frozen_string_literal: true module OptimizelyServerSide class DatafileFetcher # Responsible for fetching the optimizely sdk config from # the API source. The API can be optimizely cdn itself or # any other source. attr_reader :content, :success def initialize(content:, success:) @content = content @success = success end class << self # Fetch the Config from the specified source. def fetch begin response = call_optimizely_cdn return fallback unless response.is_a?(Net::HTTPSuccess) new(content: response.body, success: true) rescue Exception => e fallback end end alias_method :datafile, :fetch # Gets data from Optimizely cdn def call_optimizely_cdn ActiveSupport::Notifications.instrument "oss.call_optimizely_cdn",this: :data do Net::HTTP.get_response( URI(OptimizelyServerSide.configuration.config_endpoint) ) end end def fallback new( content: '{"experiments": [],"version": "1","audiences": [],"dimensions": [],"groups": [],"projectId": "5960232316","accountId": "5955320306","events": [],"revision": "30"}', success: false ) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
optimizely_server_side-0.0.5 | lib/optimizely_server_side/datafile_fetcher.rb |