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