Module: Roart::TicketPage

Defined in:
lib/roart/ticket_page.rb

Constant Summary collapse

IntKeys =
%w[id]

Instance Method Summary collapse

Instance Method Details

#to_hashObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/roart/ticket_page.rb', line 7

def to_hash
  hash = HashWithIndifferentAccess.new
  self.delete_if{|x| !x.include?(":")}
  return false if self.size == 0
  self.each do |ln|
    ln = ln.split(":")
    key = nil
    if ln[0] && ln[0].match(/^CF-.+/)
      key = ln.delete_at(0)
      key = "cf_" + key[3..key.length].gsub(/ /, "_")
    else
      key = ln.delete_at(0).strip.underscore
    end
    value = ln.join(":").strip
    hash[key] = value if key
  end
  hash["id"] = hash["id"].split("/").last.to_i
  hash
end

#to_history_hashObject

TODO: Don’t throw away attachments (/^ 13)



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/roart/ticket_page.rb', line 56

def to_history_hash
  hash = HashWithIndifferentAccess.new
  self.delete_if{|x| !x.include?(":") && !x.match(/^ {9}/) && !x.match(/^ {13}/)}
  self.each do |ln|
    if ln.match(/^ {9}/) && !ln.match(/^ {13}/)
      hash[:content] << "\n" + ln.strip if hash[:content]
    elsif ln.match(/^ {13}/)
      hash[:attachments] << "\n" + ln.strip if hash[:attachments]
    else
      ln = ln.split(":")
      unless ln.size == 1 || ln.first == 'Ticket' # we don't want to override the ticket method.
        key = ln.delete_at(0).strip.underscore
        value = ln.join(":").strip
        hash[key] = IntKeys.include?(key) ? value.to_i : value
      end
    end
  end
  hash
end

#to_search_arrayObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/roart/ticket_page.rb', line 37

def to_search_array
  array = Array.new
  self.delete_if{|x| !x.include?(":")}
  raise TicketNotFoundError, "No tickets matching search criteria found." if self.size == 0
  self.each do |ln|
    hash = Hash.new
    ln = ln.split(":")
    id = ln.delete_at(0).strip.underscore
    sub = ln.join(":").strip
    hash[:id] = id.to_i
    hash[:subject] = sub
    hash[:full] = false
    hash[:history] = false
    array << hash
  end
  array
end

#to_search_list_arrayObject



27
28
29
30
31
32
33
34
35
# File 'lib/roart/ticket_page.rb', line 27

def to_search_list_array
  array = Array.new
  self.each do |ticket|
    ticket.extend(Roart::TicketPage)
    ticket_hash = ticket.to_hash
    array << ticket_hash if ticket_hash
  end
  array
end