class Hikki::Collection

Attributes

collection[R]

Public Class Methods

new(collection) click to toggle source
# File lib/hikki/collection.rb, line 7
def initialize(collection)
  @collection = collection.to_s
end

Public Instance Methods

all(options) click to toggle source
# File lib/hikki/collection.rb, line 23
def all(options)
  raise 'Implementation missing.'
end
deep_copy(h) click to toggle source
# File lib/hikki/collection.rb, line 43
def deep_copy(h)
  JSON.parse(h.to_json)
end
find(id) click to toggle source
# File lib/hikki/collection.rb, line 19
def find(id)
  raise 'Implementation missing.'
end
find_by(field, value, options) click to toggle source
# File lib/hikki/collection.rb, line 27
def find_by(field, value, options)
  raise 'Implementation missing.'
end
id_for(data) click to toggle source
# File lib/hikki/collection.rb, line 47
def id_for(data)
  data.fetch('id', 'undefined').to_s
end
index(field) click to toggle source
# File lib/hikki/collection.rb, line 11
def index(field)
  raise 'Implementation missing.'
end
normalize_data(data) click to toggle source
# File lib/hikki/collection.rb, line 39
def normalize_data(data)
  deep_copy(data).tap { |d| d.merge!('id' => id_for(d)) }
end
normalize_options(options) click to toggle source
# File lib/hikki/collection.rb, line 51
def normalize_options(options)
  {
    limit: options[:limit] || options['limit'] || -1,
    offset: options[:offset] || options['offset'] || 0
  }
end
page_range(options) click to toggle source
# File lib/hikki/collection.rb, line 58
def page_range(options)
  (options[:offset]..(options[:limit] == -1 ? -1 : options[:offset] + options[:limit] - 1))
end
remove(id) click to toggle source
# File lib/hikki/collection.rb, line 31
def remove(id)
  raise 'Implementation missing.'
end
remove_all() click to toggle source
# File lib/hikki/collection.rb, line 35
def remove_all
  raise 'Implementation missing.'
end
save(data) click to toggle source
# File lib/hikki/collection.rb, line 15
def save(data)
  raise 'Implementation missing.'
end