Class: Jirify::Issue

Inherits:
Base
  • Object
show all
Defined in:
lib/jirify/models/issue.rb

Defined Under Namespace

Classes: InvalidTransitionError

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

client, #initialize, #method_missing, project, #respond_to_missing?

Constructor Details

This class inherits a constructor from Jirify::Base

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Jirify::Base

Class Method Details

.find_by_id(issue_id) ⇒ Object



92
93
94
95
96
# File 'lib/jirify/models/issue.rb', line 92

def find_by_id(issue_id)
  Issue.new client.Issue.find(issue_id)
rescue StandardError
  nil
end

.find_mine(all) ⇒ Object



88
89
90
# File 'lib/jirify/models/issue.rb', line 88

def find_mine(all)
  client.Issue.jql(my_issues_jql(all)).map { |issue| Issue.new issue }
end

.list_mine(statuses = [], all = false) ⇒ Object



80
81
82
83
84
85
86
# File 'lib/jirify/models/issue.rb', line 80

def list_mine(statuses = [], all = false)
  my_issues = find_mine(all).sort_by { |issue| issue.status.name }

  my_issues.select do |issue|
    statuses.empty? || statuses.any? { |status| issue.status? status }
  end
end

Instance Method Details

#assign_to_me!Object



24
25
26
# File 'lib/jirify/models/issue.rb', line 24

def assign_to_me!
  @entity.assign_to!(Config.username.split('@')[0])
end

#mine?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/jirify/models/issue.rb', line 20

def mine?
  !assignee.nil? && assignee.emailAddress == Config.username
end


69
70
71
72
73
74
75
76
77
# File 'lib/jirify/models/issue.rb', line 69

def print(verbose)
  url = "#{Config.issue_browse_url}#{key}".blue

  if verbose
    puts "#{status.pretty_name} #{key.ljust(7)}: #{summary} (#{url})"
  else
    puts "#{key.ljust(7)}: (#{url})"
  end
end

#statusObject



32
33
34
# File 'lib/jirify/models/issue.rb', line 32

def status
  @status ||= Jirify::Status.new @entity.status
end

#status?(status_name) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
39
# File 'lib/jirify/models/issue.rb', line 36

def status?(status_name)
  status_name = status_name.to_s if status_name.is_a? Symbol
  status.name == status_name
end

#transitions(reload = false) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/jirify/models/issue.rb', line 47

def transitions(reload = false)
  if reload
    @transitions = Jirify::TransitionList.all @entity
  else
    @transitions ||= Jirify::TransitionList.all @entity
  end
end

#unassign!Object



28
29
30
# File 'lib/jirify/models/issue.rb', line 28

def unassign!
  @entity.assign_to!(nil)
end