class Solecist::Client

Public Class Methods

new(host) click to toggle source
# File client.rb, line 10
def initialize host
  @host = host
end

Public Instance Methods

all() click to toggle source
# File client.rb, line 33
def all
  r = self.class.get(URI.join(host, '/'))
  raise "failed req: #{r.code}" if r.code == 500
  r.parsed_response.map do |url|
    self.class.get(url).parsed_response
  end
end
get(key, metadata=nil) click to toggle source
# File client.rb, line 25
def get key, metadata=nil
  query = metadata.nil? ? nil : { metadata: metadata.to_json }
  r = self.class.get(url_for(key), query: query)
  raise "failed req: #{r.code}" if r.code == 500
  return nil if r.code == 404
  r.parsed_response
end
keys() click to toggle source
# File client.rb, line 41
def keys
  r = self.class.get(URI.join(host, '/'))
  raise "failed req: #{r.code}" if r.code == 500
  r.parsed_response.map{|l|l.split('/').last}
end
set(key, data, view, metadata={}) click to toggle source
# File client.rb, line 14
def set key, data, view, metadata={}
  post_data = {
    data: data,
    view_schema: view,
    metadata: metadata
  }
  r = self.class.post(url_for(key), { body: post_data.to_json })
  raise "failed req: #{r.code}" if r.code == 500
  r.parsed_response
end

Private Instance Methods

host() click to toggle source
# File client.rb, line 51
def host
  @host || ENV['SOLECIST_URL']
end
url_for(key) click to toggle source
# File client.rb, line 48
def url_for key
  URI.join(host,"/#{key}")
end