lib/provider/ticket.rb in taskmapper-github-0.10.4 vs lib/provider/ticket.rb in taskmapper-github-0.11.0

- old
+ new

@@ -1,24 +1,22 @@ module TaskMapper::Provider module Github # Ticket class for taskmapper-github - + class Ticket < TaskMapper::Provider::Base::Ticket - - @@allowed_states = %w{open close} - attr_accessor :prefix_options + # declare needed overloaded methods here - + def initialize(*object) if object.first object = object.first unless object.is_a? Hash hash = {:id => object.number, - :status => object.state, - :description => object.body, - :user => object.user, - :project_id => object.project_id} + :status => object.state, + :description => object.body, + :user => object.user, + :project_id => object.project_id} else hash = object end super hash end @@ -33,25 +31,25 @@ end def description self.body end - + def description=(val) self.body = val end - + def author - self.user.respond_to?('login') ? self.user.login : self.user + github_user end def requestor - self.user.respond_to?('login') ? self.user.login : self.user + github_user end def assignee - self.user.respond_to?('login') ? self.user.login : self.user + github_user end def self.find_by_id(project_id, number) issue = TaskMapper::Provider::Github.api.issue(project_id, number) issue.merge!(:project_id => project_id) @@ -62,13 +60,14 @@ issues = self.find_all(project_id) search_by_attribute(issues, attributes) end def self.find_all(project_id) + current_time = Time.now.httpdate issues = [] - issues += TaskMapper::Provider::Github.api.issues(project_id) - issues += TaskMapper::Provider::Github.api.issues(project_id, {:state => "closed"}) + issues = Array(TaskMapper::Provider::Github.api.issues(project_id, :since => current_time)) + issues += TaskMapper::Provider::Github.api.issues(project_id, {:state => "closed"}) unless issues.empty? issues.collect do |issue| issue.merge!(:project_id => project_id) Ticket.new issue end end @@ -111,9 +110,14 @@ Ticket.new(project_id, TaskMapper::Provider::Github.api.close_issue(project_id, number)) end def comment!(attributes) Comment.create(project_id, number, attributes) + end + + private + def github_user + self.user.login || self.user end end end end