Sha256: 4ed3a0b5210355a21270a6598d04def0c4168f4e2be11d1c980e44143cb07f8b

Contents?: true

Size: 1.49 KB

Versions: 28

Compression:

Stored size: 1.49 KB

Contents

module PivotalTracker
  class Note
    include HappyMapper

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

    attr_accessor :project_id, :story_id

    element :id, Integer
    element :text, String
    element :author, String
    element :noted_at, DateTime
    has_one :story, Story

    def initialize(attributes={})
      if attributes[:owner]
        self.story = attributes.delete(:owner) 
        self.project_id = self.story.project_id
        self.story_id = self.story.id
      end

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

    # Pivotal Tracker API doesn't seem to support updating or deleting notes at this time.

    protected

      def to_xml
        builder = Nokogiri::XML::Builder.new do |xml|
          xml.note {
            #xml.author "#{author}"
            xml.text_ "#{text}"
            xml.noted_at "#{noted_at}"
          }
        end
        return builder.to_xml
      end

      def update_attributes(attrs)
        attrs.each do |key, value|
          self.send("#{key}=", value.is_a?(Array) ? value.join(',') : value )
        end
      end
      
  end
end

Version data entries

28 entries across 28 versions & 5 rubygems

Version Path
lrd-pivotal-tracker-0.5.14 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.13 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.12 lib/pivotal-tracker/note.rb
pivotal-tracker-fox-0.5.13 lib/pivotal-tracker/note.rb
pivotal-tracker-fox-0.5.12 lib/pivotal-tracker/note.rb
pivotal-tracker-fox-0.5.11 lib/pivotal-tracker/note.rb
pivotal-tracker-fox-0.5.10 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.10 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.9 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.8 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.7 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.6 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.5 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.4 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.3 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.1 lib/pivotal-tracker/note.rb
pivotal-tracker-0.5.0 lib/pivotal-tracker/note.rb
pivotal-tracker-0.4.1 lib/pivotal-tracker/note.rb
pivotal-tracker-0.4.0 lib/pivotal-tracker/note.rb
tsenart-pivotal-tracker-0.5.0 lib/pivotal-tracker/note.rb