Sha256: 0670078fcdfda1ab244e637771d4882891296c2a881b6203514f51715dfa7386

Contents?: true

Size: 906 Bytes

Versions: 1

Compression:

Stored size: 906 Bytes

Contents

class ExampleLineParser < CommaPile::LineParser
  INDEX_FOR_IP_ADDRESS = 0
  HEADER_VALUE_FOR_IP_ADDRESS = 'c_ip'
  INDEX_FOR_FILENAME = 65
  INDEX_FOR_CLIENT_SIDE_REFERRER = 14
  INDEX_FOR_VIEWER_EVENT = 54
  INDEX_FOR_FILESIZE = 69
  def self.with(line)
    super if line[INDEX_FOR_IP_ADDRESS] != HEADER_VALUE_FOR_IP_ADDRESS
  end

  def filesize
    line[69].to_i
  end

  def viewer_geolocation
    line[INDEX_FOR_IP_ADDRESS].strip =~ /^129\.74\./ ? "on-campus" : "off-campus"
  end

  def viewer_event
    line[INDEX_FOR_VIEWER_EVENT]
  end

  def project
    line[INDEX_FOR_FILENAME].match(/[\\|\/]?undame[\\|\/]([^\\|\/]*)/i)[1] rescue nil
  end

  def system_name
    File.basename(line[65].gsub(/\\/,'/')) if line[65]
  end

  def referrer
    line[INDEX_FOR_CLIENT_SIDE_REFERRER]
  end
  
  def [](value)
    if value.is_a?(Integer)
      line[value]
    else
      send(value)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jeremyf-comma_pile-0.1.0 test/example_line_parser.rb