Class: TaskMapper::Provider::Github::Project

Inherits:
Base::Project
  • Object
show all
Defined in:
lib/provider/project.rb

Overview

Project class for taskmapper-github

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*object) ⇒ Project

declare needed overloaded methods here



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/provider/project.rb', line 9

def initialize(*object) 
  if object.first
    object = object.first
    @system_data = {:client => object} 
    unless object.is_a? Hash
      hash = {:description => object.description,
        :created_at => object.created_at,
        :updated_at => object.created_at,
        :name => object.name,
        :id => object.name,
        :owner => object.owner}
    else 
      hash = object
    end 
    super hash
  end
end

Class Method Details

.find_allObject



68
69
70
71
72
# File 'lib/provider/project.rb', line 68

def find_all
  repos = user_repos
  repos += org_repos if TaskMapper::Provider::Github.api.authenticated?
  repos
end

.find_by_attributes(attributes = {}) ⇒ Object



59
60
61
# File 'lib/provider/project.rb', line 59

def find_by_attributes(attributes = {})
  search_by_attribute(self.find_all, attributes)
end

.find_by_id(id) ⇒ Object



63
64
65
66
# File 'lib/provider/project.rb', line 63

def find_by_id(id)
  project_id = "#{TaskMapper::Provider::Github.}/#{id}" unless id.include?("/")
  self.new TaskMapper::Provider::Github.api.repository(project_id)
end

Instance Method Details

#copy(project) ⇒ Object

copy from this.copy(that) copies that into this



48
49
50
51
52
53
54
55
56
# File 'lib/provider/project.rb', line 48

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

#created_atObject



27
28
29
30
31
32
33
# File 'lib/provider/project.rb', line 27

def created_at
  begin 
    Time.parse(self[:created_at]) 
  rescue
    self[:created_at]
  end
end

#idObject



43
44
45
# File 'lib/provider/project.rb', line 43

def id
  "#{self.owner.}/#{self[:name]}"
end

#ticket(*options) ⇒ Object



96
97
98
99
100
101
102
# File 'lib/provider/project.rb', line 96

def ticket(*options)
  unless options.empty?
    TaskMapper::Provider::Github::Ticket.find_by_id(self.id, options.first)
  else
    TaskMapper::Provider::Github::Ticket
  end
end

#ticket!(*options) ⇒ Object



104
105
106
# File 'lib/provider/project.rb', line 104

def ticket!(*options)
  TaskMapper::Provider::Github::Ticket.open(self.id, options.first)
end

#updated_atObject



35
36
37
38
39
40
41
# File 'lib/provider/project.rb', line 35

def updated_at
  begin
    Time.parse(self[:created_at]) 
  rescue
    self[:created_at]
  end
end