module HelloBlock::Query

Public Instance Methods

[](attribute) click to toggle source
# File lib/helloblock/resources/query.rb, line 54
def [](attribute)
  to_hash[attribute]
end
[]=(attribute, value) click to toggle source
# File lib/helloblock/resources/query.rb, line 58
def []=(attribute, value)
  to_hash[attribute] = value
end
default_query() click to toggle source
# File lib/helloblock/resources/query.rb, line 13
def default_query
  { path: ENDPOINTS[parent_class], params: {} }
end
determine_parent_resource() click to toggle source

exceptions: querying transactions with addresses actually hits /addresses/transactions endpoint

# File lib/helloblock/resources/query.rb, line 68
def determine_parent_resource
  if query[:path] == ENDPOINTS[:transaction] && query[:params][:addresses]
    query[:path] = ENDPOINTS[:addresses_transactions]
  end
end
find(id) click to toggle source
# File lib/helloblock/resources/query.rb, line 21
def find(id)
  query[:path] += id
  self
end
inspect() click to toggle source
# File lib/helloblock/resources/query.rb, line 62
def inspect
  to_hash.to_s
end
last(limit) click to toggle source
# File lib/helloblock/resources/query.rb, line 36
def last(limit)
  query[:path] = ENDPOINTS[parent_class] + ENDPOINTS[:latest]
  query[:params][:limit] = limit
  self
end
offset(number) click to toggle source
# File lib/helloblock/resources/query.rb, line 42
def offset(number)
  query[:params][:offset] = number
  self
end
parent_class() click to toggle source
# File lib/helloblock/resources/query.rb, line 17
def parent_class
  self.to_s.split('::').last.downcase.to_sym
end
query() click to toggle source
# File lib/helloblock/resources/query.rb, line 9
def query
  @query ||= default_query
end
to_hash() click to toggle source
# File lib/helloblock/resources/query.rb, line 47
def to_hash
  (query_copy = query.clone) and (@query = default_query)
  method = query_copy[:params][:post] ? :post : :get
  query_copy[:params].delete(:post)
  HelloBlock.send(method, query_copy[:path], query_copy[:params])
end
where(conditions) click to toggle source

where(transaction: […]) => converts :transaction to API's :txHashes

# File lib/helloblock/resources/query.rb, line 27
def where(conditions)
  conditions.each do |resource, ids|
    api_resource = API_PARAMETERS[resource] || resource
    query[:params][api_resource] = ids
  end
  determine_parent_resource
  self
end