Sha256: f1a03f1e137a061538d828a843bb98b9a64f8d942fdc9acd992dffc351d85a2b

Contents?: true

Size: 1.88 KB

Versions: 3

Compression:

Stored size: 1.88 KB

Contents

module TaskMapper::Provider
  module Trac 
    # Project class for taskmapper-yoursystem
    # 
    # 
    class Project < TaskMapper::Provider::Base::Project
      # declare needed overloaded methods here
      
      attr_reader :created_at, :updated_at
      def initialize(*object)
        if object.first
          object = object.first
          @system_data = {:client => object}
          unless object.is_a? Hash
            hash = {:repository => object.url,
                    :owner => object.username,
                    :name => object.name,
                    :id => object.name}
          else
            hash = object
          end
          super hash
        end
      end
      
      # copy from this.copy(that) copies that into this
      def copy(project)
        project.tickets.each do |ticket|
          copy_ticket = self.ticket!(:title => ticket.title, :description => ticket.description)
          ticket.comments.each do |comment|
            copy_ticket.comment!(:body => comment.body)
            sleep 1
          end
        end
      end

      def self.find(*options)
        mode = options.first
        trac = TaskMapper::Provider::Trac.api
        if mode.is_a? String
          self.new({:url => trac[:url], :username => trac[:username], :name=> "#{trac[:username]}-project"})
        end
      end

      def id
        1
      end

      def ticket(*options)
        unless options.empty?
          options = options.first
          trac = TaskMapper::Provider::Trac.api
          if options.is_a? Hash
            Ticket.find_by_id(trac[:trac].tickets.query(options).first, self[:name])
          end
        else
          TaskMapper::Provider::Trac::Ticket
        end
      end

      def ticket!(*options)
        options = options.first
        Ticket.create options
      end

      def tickets(*options)
        Ticket.find(self.name, options)
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
taskmapper-trac-0.7.0 lib/provider/project.rb
taskmapper-trac-0.6.1 lib/provider/project.rb
taskmapper-trac-0.6.0 lib/provider/project.rb