class SimpleMapReduce::DataStores::RemoteDataStore

Constants

HTTP_JSON_HEADER

Public Class Methods

new(options) click to toggle source
# File lib/simple_map_reduce/data_stores/remote_data_store.rb, line 6
def initialize(options)
  @resource_name = options[:resource_name]
  @resource_id = options[:resource_id]
  @server_url = options[:server_url]
end

Public Instance Methods

save_state(event) click to toggle source
# File lib/simple_map_reduce/data_stores/remote_data_store.rb, line 12
def save_state(event)
  http_client.put do |request|
    request.url("/#{@resource_name}/#{@resource_id}")
    request.body = { event: event }.to_json
  end
end

Private Instance Methods

http_client() click to toggle source
# File lib/simple_map_reduce/data_stores/remote_data_store.rb, line 26
def http_client
  @http_client ||= ::Faraday.new(
    url: @server_url,
    headers: HTTP_JSON_HEADER,
    request: {
      open_timeout: 10,
      timeout: 15
    }
  ) do |faraday|
    faraday.response :logger
    faraday.response :raise_error
    faraday.adapter  Faraday.default_adapter
  end
end