Sha256: 1d05b699072b4a092f4dd982aaeb965066e72275b85199758c5a93728279df43

Contents?: true

Size: 937 Bytes

Versions: 1

Compression:

Stored size: 937 Bytes

Contents

class Slapp::Parser
  include Slapp::Helpers

  attr_accessor :lines, :contents

  def initialize(path)
    @lines = File.readlines(path, :encoding => 'ISO-8859-1')
    @contents = @lines.join('')
  end

  def total_size_uncompressed
    line = lines.select { |line| line =~ total_size_regex('uncompressed') }
    match = total_size_regex('uncompressed').match(line.first)
    convert_to_bytes match[1]
  end

  def total_size_compressed
    line = lines.select { |line| line =~ total_size_regex('compressed') }
    match = total_size_regex('compressed').match(line.first)
    convert_to_bytes match[1]
  end

  def packages
    raw_packages.map { |pkg|
      package = Slapp::Package.new pkg.first
      package.to_hash
    }
  end

private

  def raw_packages
    contents.scan(package_regex)
  end

  def package_regex
    /(PACKAGE NAME.+?)\n\n/m
  end

  def total_size_regex(type)
    /Total size.+\(#{type}\):\s+(.+)$/
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
slapp-0.1.2 lib/slapp/parser.rb