class Standupguy::Item

Basic Item class. Each line in your standup is an Item.

Constants

TicketUrl

Attributes

data[RW]

Public Instance Methods

add_to_today(item) click to toggle source
# File lib/Standupguy.rb, line 214
def add_to_today(item)
  @data ||= { description: "", date: "", ticket_id: false }
  ticket = TicketUrl.new(item)
  if ticket.valid?
    zendesk_ticket = client(ticket.subdomain).tickets.find(id: ticket.id)
    self.ticket_id = item
    self.description = "#{item} => (#{zendesk_ticket.subject})"
  else
    self.description = item
  end

  self.name = `whoami`.chop
  self.date = key
end
client(subdomain) click to toggle source
# File lib/Standupguy.rb, line 229
def client(subdomain)
  @client ||= ZendeskAPI::Client.new do |config|
    config.url = "https://#{subdomain}.zendesk.com/api/v2"
    config.username = ENV["zendesk_user"]
    config.token = ENV["zendesk_token"]
  end
end
continue?() click to toggle source
# File lib/Standupguy.rb, line 185
    def continue?
      puts <<-EOS
This ticket has already been added. Do you want to continue adding it? (y/N)
      EOS
      STDIN.gets.downcase.chomp[0] == "y"
    end
method_missing(method, *args) click to toggle source
# File lib/Standupguy.rb, line 178
def method_missing(method, *args)
  method_list = [:description=, :name=, :date=, :ticket_id=]
  return unless method_list.include?(method)
  method = method.to_s.chop.to_sym
  @data[method] = args.first
end
save() click to toggle source
# File lib/Standupguy.rb, line 192
def save
  current_standup = load_data
  current_standup ||= { date_key => [] }
  data_exists = current_standup.keys.include?(date_key)
  begin
    if data_exists && !!@data[:ticket_id]
      ticket_list = current_standup[date_key]
      ticket_list = ticket_list.map{ |item| item["ticket_id"] }
      unless ticket_list.empty?
        already_added = ticket_list.include?(@data[:ticket_id])
        raise "Already added" if already_added
      end
    end
  rescue RuntimeError
    return unless continue?
  end

  current_standup[date_key] ||= []
  current_standup[date_key] << @data
  write_data(current_standup)
end