Sha256: c5e3aca3c06fe6a929a761409c4d3b0eb09d34730ba0141166013f82a3da0144

Contents?: true

Size: 1.73 KB

Versions: 5

Compression:

Stored size: 1.73 KB

Contents

module Roart
  
  module TicketPage
    
    IntKeys = %w[id]

    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
    
    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

# TODO: Don't throw away attachments (/^ {13})
    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
    
  end
  
end

Version data entries

5 entries across 5 versions & 3 rubygems

Version Path
pjdavis-roart-0.1.3 lib/roart/ticket_page.rb
pjdavis-roart-0.1.4 lib/roart/ticket_page.rb
roart-0.1.5 lib/roart/ticket_page.rb
threetee-roart-0.1.4 lib/roart/ticket_page.rb
roart-0.1.4 lib/roart/ticket_page.rb