Sha256: 31ecf192a303700c5f25b209278759398d73813bdc0a08b69fb01c926ccd86e6

Contents?: true

Size: 1006 Bytes

Versions: 4

Compression:

Stored size: 1006 Bytes

Contents

class Slapp::Parser
  include Slapp::Helpers

  attr_accessor :lines, :contents, :slackware_version

  def initialize(path, slackware_version)
    @lines = File.readlines(path, :encoding => 'ISO-8859-1')
    @contents = @lines.join('')
    @slackware_version = slackware_version
  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|
      Slapp::Package.new pkg.first, slackware_version
    }
  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

4 entries across 4 versions & 1 rubygems

Version Path
slapp-0.2.3 lib/slapp/parser.rb
slapp-0.2.2 lib/slapp/parser.rb
slapp-0.2.1 lib/slapp/parser.rb
slapp-0.2.0 lib/slapp/parser.rb