Sha256: 1b14819c86e77f98775e28b683c096ef917de0e663a1c3d9934f03b71521113a

Contents?: true

Size: 1.3 KB

Versions: 9

Compression:

Stored size: 1.3 KB

Contents

module PivotalTracker
  class Task
    include HappyMapper

    class << self
      def all(story, options={})
        tasks = parse(Client.connection["/projects/#{story.project_id}/stories/#{story.id}/tasks"].get)
        tasks.each { |t| t.project_id, t.story_id = story.project_id, story.id }
        return tasks
      end
    end

    attr_accessor :project_id, :story_id

    element :id, Integer
    element :description, String
    element :position, Integer
    element :complete, Boolean
    element :created_at, DateTime

    def create
      response = Client.connection["/projects/#{project_id}/stories/#{story_id}/tasks"].post(self.to_xml, :content_type => 'application/xml')
      return Task.parse(response)
    end

    def update
      response = Client.connection["/projects/#{project_id}/stories/#{story_id}/tasks/#{id}"].put(self.to_xml, :content_type => 'application/xml')
      return Task.parse(response)
    end

    def delete
      Client.connection["/projects/#{project_id}/stories/#{story_id}/tasks/#{id}"].delete
    end

    protected

      def to_xml
        builder = Nokogiri::XML::Builder.new do |xml|
          xml.task {
            xml.description "#{description}"
            # xml.position "#{position}"
            xml.complete "#{complete}"
          }
        end
      end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
pivotal-tracker-0.2.2 lib/pivotal-tracker/task.rb
pivotal-tracker-0.2.1 lib/pivotal-tracker/task.rb
pivotal-tracker-0.2.0 lib/pivotal-tracker/task.rb
pivotal-tracker-0.1.3 lib/pivotal-tracker/task.rb
pivotal-tracker-0.1.2 lib/pivotal-tracker/task.rb
pivotal-tracker-0.1.1 lib/pivotal-tracker/task.rb
pivotal-tracker-0.1.0.1 lib/pivotal-tracker/task.rb
pivotal-tracker-0.1.0 lib/pivotal-tracker/task.rb
pivotal-tracker-0.0.9.1 lib/pivotal-tracker/task.rb