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
# File 'lib/roart/ticket_page.rb', line 7

def to_hash
  hash = Hash.new
  self.delete_if{|x| !x.include?(":")}
  self.each do |ln|
    ln = ln.split(":")
    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
      value = ln.join(":").strip
      hash[key.to_sym] = value
    end
  end
  hash[:id] = hash[:id].split("/").last.to_i
  hash
end

#to_history_hashObject

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



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/roart/ticket_page.rb', line 43

def to_history_hash
  hash = Hash.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.to_sym] = IntKeys.include?(key) ? value.to_i : value
      end
    end
  end
  hash
end

#to_search_arrayObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/roart/ticket_page.rb', line 25

def to_search_array
  array = Array.new
  self.delete_if{|x| !x.include?(":")}
  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