class Zotero::Entities::Entry

Attributes

creators[R]
kind[R]

Public Class Methods

new(data) click to toggle source
# File lib/zotero/entities/entry.rb, line 30
def initialize(data)
  @key = data['key']  
  @kind = data['data']['itemType'].underscore
  @creators = generate_creators data['data']['creators']

  ENTRY_ATTS.each do |att|
    instance_variable_set "@#{att}", data['data'][att.camelize(:lower)]
  end
end

Public Instance Methods

authors() click to toggle source
# File lib/zotero/entities/entry.rb, line 40
def authors 
  creators.select &:author?
end
creator_sort_string() click to toggle source
# File lib/zotero/entities/entry.rb, line 52
def creator_sort_string 
  @creator_sort_string ||= generate_creator_sort_string
end
editors() click to toggle source
# File lib/zotero/entities/entry.rb, line 44
def editors 
  creators.select &:editor?
end
to_h() click to toggle source
# File lib/zotero/entities/entry.rb, line 56
def to_h
  ((ENTRY_ATTS + [:kind]).collect {|att|
    [att, send(att.to_sym)]
  } + [[:creators, creators.collect(&:to_h)]]).to_h.symbolize_keys
end
translators() click to toggle source
# File lib/zotero/entities/entry.rb, line 48
def translators
  creators.select &:translator?
end

Private Instance Methods

generate_creator_sort_string() click to toggle source
# File lib/zotero/entities/entry.rb, line 72
def generate_creator_sort_string
  creators.collect {|creator|
    "#{creator.last_name} #{creator.first_name}"
  }.join(' ')
end
generate_creators(data) click to toggle source
# File lib/zotero/entities/entry.rb, line 64
def generate_creators(data)
  return [] unless data

  data.collect do |creator_data| 
    ::Zotero::Entities::Creator.new creator_data
  end
end