Sha256: 05fa7a75b8fe4253009bcebd35409686d9c16bc4607204f50a89a574462d782b
Contents?: true
Size: 2 KB
Versions: 2
Compression:
Stored size: 2 KB
Contents
require 'securerandom' require 'uri' module OpenStax module Exchange class FakeClient include ClientInstance def self.configure yield configuration end def self.configuration @configuration ||= Configuration.new end def initialize(exchange_configuration) @client_config_platform_id = exchange_configuration.client_platform_id @client_config_platform_secret = exchange_configuration.client_platform_secret @client_config_server_url = exchange_configuration.client_server_url @client_config_api_version = exchange_configuration.client_api_version @server_registered_platforms = self.class.configuration.registered_platforms @server_server_url = self.class.configuration.server_url raise "invalid server url" \ unless @client_config_server_url == @server_server_url raise "invalid platform credentials" \ unless @server_registered_platforms.fetch(@client_config_platform_id) == @client_config_platform_secret @token = SecureRandom.hex(64) @multiple_choice_responses = {} end def is_real_client? false end def token @token end def create_identifier SecureRandom.hex(64) end def record_multiple_choice_answer(identifier, resource, trial, answer) @multiple_choice_responses[identifier] ||= {} @multiple_choice_responses[identifier][resource] ||= {} raise "invalid resource" \ unless URI(resource).host == "exercises.openstax.org" raise "duplicate response for (identifier,resource,trial) triplet" \ if @multiple_choice_responses[identifier][resource][trial] @multiple_choice_responses[identifier][resource][trial] = answer return { 'identifier' => identifier, 'resource' => resource, 'trial' => trial, 'answer' => answer } end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
openstax_exchange-0.0.2 | lib/openstax/exchange/fake_client/fake_client.rb |
openstax_exchange-0.0.1 | lib/openstax/exchange/fake_client/fake_client.rb |