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