class Jira::Command::Log::Delete
Attributes
ticket[RW]
Public Class Methods
new(ticket)
click to toggle source
# File lib/jira/commands/log/delete.rb, line 17 def initialize(ticket) self.ticket = ticket end
Public Instance Methods
run()
click to toggle source
# File lib/jira/commands/log/delete.rb, line 21 def run return unless logs? api.delete endpoint, success: on_success, failure: on_failure end
Private Instance Methods
description_for(log)
click to toggle source
# File lib/jira/commands/log/delete.rb, line 66 def description_for(log) author = log['updateAuthor']['displayName'] updated_at = Jira::Format.time(Time.parse(log['updated'])) time_spent = log['timeSpent'] "#{author} @ #{updated_at}: #{time_spent}" end
endpoint()
click to toggle source
# File lib/jira/commands/log/delete.rb, line 38 def endpoint "issue/#{ticket}/worklog/#{to_delete['id']}" end
json()
click to toggle source
# File lib/jira/commands/log/delete.rb, line 73 def json @json ||= api.get("issue/#{ticket}/worklog")['worklogs'] end
logs()
click to toggle source
# File lib/jira/commands/log/delete.rb, line 56 def logs @logs ||= ( logs = {} json.each do |log| logs[description_for(log)] = log end logs ) end
logs?()
click to toggle source
# File lib/jira/commands/log/delete.rb, line 30 def logs? if json.empty? puts "Ticket #{ticket} has no work logged." return false end true end
on_failure()
click to toggle source
# File lib/jira/commands/log/delete.rb, line 46 def on_failure ->{ puts "No logged work deleted." } end
on_success()
click to toggle source
# File lib/jira/commands/log/delete.rb, line 42 def on_success ->{ puts "Successfully deleted #{to_delete['timeSpent']}." } end
to_delete()
click to toggle source
# File lib/jira/commands/log/delete.rb, line 50 def to_delete @to_delete ||= logs[ io.select("Select a worklog to delete:", logs.keys) ] end