class PocketAPI::Item

Constants

ALL_ATTRIBUTES
BOOLEAN_ATTRIBUTES
INTEGER_ATTRIBUTES
STRING_ATTRIBUTES
TIME_ATTRIBUTES

Public Class Methods

new(hash) click to toggle source
# File lib/pocket_api/item.rb, line 9
def initialize(hash)
  ALL_ATTRIBUTES.each do |attr_name|
    self.class.send(:define_method, "#{attr_name}=".to_sym) do |val|
      instance_variable_set("@" + attr_name.to_s, val)
    end

    self.class.send(:define_method, attr_name.to_sym) do
      instance_variable_get("@" + attr_name.to_s)
    end

    self.send("#{attr_name}=".to_sym, normalize(attr_name, hash[attr_name]))
  end
end

Public Instance Methods

id() click to toggle source
# File lib/pocket_api/item.rb, line 23
def id
  item_id
end

Private Instance Methods

normalize(name, value) click to toggle source
# File lib/pocket_api/item.rb, line 29
def normalize(name, value)
  case
  when value == nil
    nil
  when INTEGER_ATTRIBUTES.include?(name)
    value.to_i
  when BOOLEAN_ATTRIBUTES.include?(name)
    value.to_i == 1
  when TIME_ATTRIBUTES.include?(name)
    value.to_i == 0 ? nil : Time.at(value.to_i)
  else
    value
  end
end