Class: Jira::Auto::Tool::Ticket
Constant Summary
collapse
- IMPLEMENTATION_TEAM_VALUE_ATTRIBUTES =
%w[value name].freeze
Instance Attribute Summary collapse
Instance Method Summary
collapse
#corresponding_environment_variable_defined?, #define_environment_variable_name_constant, #define_holds_a_secret_predicate, #define_overridable_environment_based_value, #define_predicate, #define_reader, #define_reader_accepting_default_value, #define_writer, #fetch_corresponding_environment_variable, #instance_variable_name
Constructor Details
#initialize(tool, jira_ticket, implementation_team = nil, expected_start_date = nil) ⇒ Ticket
Returns a new instance of Ticket.
14
15
16
17
18
19
|
# File 'lib/jira/auto/tool/ticket.rb', line 14
def initialize(tool, jira_ticket, implementation_team = nil, expected_start_date = nil)
@tool = tool
@jira_ticket = jira_ticket
@implementation_team = implementation_team
@expected_start_date = expected_start_date
end
|
Instance Attribute Details
#jira_ticket ⇒ Object
Returns the value of attribute jira_ticket.
12
13
14
|
# File 'lib/jira/auto/tool/ticket.rb', line 12
def jira_ticket
@jira_ticket
end
|
Returns the value of attribute tool.
12
13
14
|
# File 'lib/jira/auto/tool/ticket.rb', line 12
def tool
@tool
end
|
Instance Method Details
#expected_start_date ⇒ Object
72
73
74
|
# File 'lib/jira/auto/tool/ticket.rb', line 72
def expected_start_date
@expected_start_date || jira_field_value(expected_start_date_field.id)
end
|
#expected_start_date_field ⇒ Object
103
104
105
|
# File 'lib/jira/auto/tool/ticket.rb', line 103
def expected_start_date_field
tool.expected_start_date_field
end
|
#implementation_team_attributes ⇒ Object
95
96
97
|
# File 'lib/jira/auto/tool/ticket.rb', line 95
def implementation_team_attributes
jira_field_value(implementation_team_field.id)
end
|
#implementation_team_field ⇒ Object
99
100
101
|
# File 'lib/jira/auto/tool/ticket.rb', line 99
def implementation_team_field
tool.implementation_team_field
end
|
#jira_client ⇒ Object
64
65
66
|
# File 'lib/jira/auto/tool/ticket.rb', line 64
def jira_client
tool.jira_client
end
|
#jira_field_value(field_id = caller_locations(1, 1).first.base_label) ⇒ Object
111
112
113
114
115
116
117
118
119
120
121
|
# File 'lib/jira/auto/tool/ticket.rb', line 111
def jira_field_value(field_id = caller_locations(1, 1).first.base_label)
log.debug { "jira_field_value(#{field_id})" }
field = ticket_fields.fetch(field_id) do |id|
raise "#{id}: value not found in #{ticket_fields}"
end
log.debug { "jira_field_value(#{field_id}), field: #{field}" }
field
end
|
#jira_sprint_field ⇒ Object
68
69
70
|
# File 'lib/jira/auto/tool/ticket.rb', line 68
def jira_sprint_field
tool.jira_sprint_field
end
|
21
22
23
|
# File 'lib/jira/auto/tool/ticket.rb', line 21
def key
jira_ticket.key
end
|
60
61
62
|
# File 'lib/jira/auto/tool/ticket.rb', line 60
def sprint
ticket_fields.fetch(tool.jira_sprint_field.id)
end
|
#sprint=(sprint) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/jira/auto/tool/ticket.rb', line 25
def sprint=(sprint)
@sprint = sprint
jira_ticket.save!({ "fields" => { tool.jira_sprint_field.id => sprint.id } })
rescue StandardError => e
message = "Failed to set sprint for ticket #{key} to #{sprint.id}! #{self}"
log.error { message }
raise e.class, message
end
|
107
108
109
|
# File 'lib/jira/auto/tool/ticket.rb', line 107
def summary
jira_ticket.summary
end
|
#ticket_fields ⇒ Object
Compatibility helper to access Issue fields across Jira API versions
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/jira/auto/tool/ticket.rb', line 48
def ticket_fields
if jira_ticket.respond_to?(:fields)
jira_ticket.fields
else
raise "attrs not found in #{jira_ticket}!" unless jira_ticket.respond_to?(:attrs)
attrs = jira_ticket.attrs
attrs["fields"] || attrs[:fields] ||
raise("fields not found in #{attrs} from #{jira_ticket}!")
end
end
|
37
38
39
|
# File 'lib/jira/auto/tool/ticket.rb', line 37
def to_s
"Ticket(#{to_s_fields.collect { |field| "#{field}: #{send(field)}" }.join(", ")})"
end
|
#to_s_fields ⇒ Object
41
42
43
|
# File 'lib/jira/auto/tool/ticket.rb', line 41
def to_s_fields
%i[key summary sprint implementation_team expected_start_date]
end
|