Sha256: 4df9b6026303991506271439415e3d8ee15a262ee8e1a4a394d24f7a912154ac

Contents?: true

Size: 874 Bytes

Versions: 3

Compression:

Stored size: 874 Bytes

Contents

class Todoly
  class Task
    def self.list(rest_if)
      rest_if.items.map do |item|
        self.new(rest_if, item)
      end
    end

    def self.create(rest_if, name, obj={})
      obj["Content"] = name
      Task.new(rest_if, obj).save
    end

    def initialize(rest_if, obj)
      @rest_if = rest_if
      set_obj(obj)
    end

    def set_obj(obj)
      @raw = obj
      @id = obj["Id"]
      @name = obj["Content"]
    end

    attr_reader :raw, :id, :name

    def [](key)
      @raw[key]
    end

    def to_s
      @name
    end

    def name=(new_name)
      @name = @raw["Content"] = new_name
      save
      new_name
    end

    def check
      @raw["Checked"] = true
      save
    end

    def save
      if @id
        @rest_if.update_item_by_id(@id, @raw)
      else
        set_obj @rest_if.create_item(@raw)
      end
      self
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
todoly-0.0.4 lib/todoly/task.rb
todoly-0.0.3 lib/todoly/task.rb
todoly-0.0.2 lib/todoly/task.rb