class Zotero::Entities::Collection
Attributes
name[R]
Public Class Methods
new(api, data)
click to toggle source
# File lib/zotero/entities/collection.rb, line 4 def initialize(api, data) @api = api @key = data['key'] @no_entries = 0 == data['meta']['numItems'] @no_collections = 0 == data['meta']['numCollections'] @name = data['data']['name'] end
Public Instance Methods
collections()
click to toggle source
# File lib/zotero/entities/collection.rb, line 13 def collections @collections ||= get_collections end
entries()
click to toggle source
# File lib/zotero/entities/collection.rb, line 17 def entries @entries ||= get_entries end
preload()
click to toggle source
Eager-load all entries and child collections
# File lib/zotero/entities/collection.rb, line 30 def preload entries collections.each &:preload nil end
to_h()
click to toggle source
# File lib/zotero/entities/collection.rb, line 21 def to_h { name: name, collections: collections.collect(&:to_h), entries: entries.collect(&:to_h) }.symbolize_keys end
Private Instance Methods
get_collections()
click to toggle source
# File lib/zotero/entities/collection.rb, line 38 def get_collections return [] if @no_collections @api.get("collections/#{@key}/collections").collect {|data| ::Zotero::Entities::Collection.new @api, data }.sort {|a, b| a.name <=> b.name } end
get_entries()
click to toggle source
# File lib/zotero/entities/collection.rb, line 48 def get_entries return [] if @no_entries @api.get("collections/#{@key}/items").select {|data| 'attachment' != data['data']['itemType'] }.collect { |data| ::Zotero::Entities::Entry.new data }.sort {|a, b| a.creator_sort_string <=> b.creator_sort_string } end