30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/toolshed/commands/ticket_information.rb', line 30
def execute(args, options = {})
begin
ticket_tracker_class = Object.const_get("Toolshed::TicketTracking::#{Toolshed::Client.instance.ticket_tracking_tool.camel_case}")
use_project_id = Object.const_get("#{ticket_tracker_class}::USE_PROJECT_ID") rescue false
if use_project_id
ticket_tracker_project_id = read_user_input_project("Project ID (Default: #{Toolshed::Client.instance.default_pivotal_tracker_project_id}):", options.merge!({ default: Toolshed::Client.instance.default_pivotal_tracker_project_id }))
options.merge!({ project_id: ticket_tracker_project_id })
end
use_project_name = Object.const_get("#{ticket_tracker_class}::USE_PROJECT_NAME") rescue false
if use_project_name
ticket_tracker_project_name = read_user_input_project("Project Name (Default: #{Toolshed::Client.instance.default_ticket_tracker_project}):", options.merge!({ default: Toolshed::Client.instance.default_ticket_tracker_project }))
options.merge!({ project: ticket_tracker_project_name })
end
default_ticket_id = Toolshed::TicketTracking::story_id_from_branch_name(branch.name)
ticket_id = read_user_input_ticket_id("Story ID (Default: #{default_ticket_id}):", options.merge!({ default: default_ticket_id }))
options.merge!({ ticket_id: ticket_id })
ticket_tracker = ticket_tracker_class.create_instance(options)
if use_project_id
puts "Using Project: #{ticket_tracker_project_id}"
end
puts "Using Ticket: #{ticket_id}"
result = ticket_tracker.ticket
if (options[:field])
field_value = result.send(options[:field])
if (options[:clipboard])
Clipboard.copy field_value
end
puts field_value
elsif(options[:formatted_string])
formatted_string = options[:formatted_string].gsub(/\{(.*?)\}/) { |m| result.send(m.gsub("{", "").gsub("}", "")) }
if (options[:clipboard])
Clipboard.copy formatted_string
end
puts formatted_string
else
result.instance_variables.each do |name, value|
puts "#{name}: #{result.instance_variable_get(name).inspect}"
end
end
return
rescue => e
puts e.message
exit
end
end
|