module Todoist::Resource

Attributes

temp_id[RW]

Public Class Methods

new(attributes={}) click to toggle source
# File lib/todoist/resource.rb, line 18
def initialize(attributes={})
  self.attributes = attributes || {}
end

Public Instance Methods

attributes() click to toggle source
# File lib/todoist/resource.rb, line 22
def attributes
  self.class.attributes.inject({}) do |attributes, attribute|
    value = send(attribute)
    if !value.nil?
      attributes[attribute] = value
    end; attributes
  end
end
attributes=(attributes) click to toggle source
# File lib/todoist/resource.rb, line 31
def attributes=(attributes)
  attributes.each do |attribute, value|
    if respond_to?(writer = attribute.to_s + '=')
      send(writer, value)
    else
      logger.warn "#{self.class} does not have an `#{attribute}' attribute"
    end
  end
end
command_class() click to toggle source
# File lib/todoist/resource.rb, line 53
def command_class
  @command_class ||= Command
end
create_command(name, arguments, tmp_id = nil) click to toggle source
# File lib/todoist/resource.rb, line 49
def create_command(name, arguments, tmp_id = nil)
  command_class.new(name, arguments, tmp_id)
end
logger() click to toggle source
# File lib/todoist/resource.rb, line 45
def logger
  @logger ||=  Logger.new
end
persisted?() click to toggle source
# File lib/todoist/resource.rb, line 69
def persisted?
  !id.nil?
end
resource_type() click to toggle source
# File lib/todoist/resource.rb, line 65
def resource_type
  self.class.name.split('::').last.downcase
end
to_hash() click to toggle source
# File lib/todoist/resource.rb, line 41
def to_hash
  attributes
end
to_submittable_hash() click to toggle source
# File lib/todoist/resource.rb, line 57
def to_submittable_hash
  if self.class.read_only_attributes
    attributes.delete_if { |key, value| self.class.read_only_attributes.include?(key)}
  else
    attributes
  end
end