Sha256: 1dd42a9d68df5f065cae0b17808d2f1784baae02571a9be0585a9fbd944db472

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

module PNGSuite
  PNG_SUITE_URL = "http://www.schaik.com/pngsuite/PngSuite-2011apr25.tgz"

  class << self
    attr_accessor :dir

    def init dir
      @dir = dir
      if Dir.exist?(dir)
        if Dir[File.join(dir, "*.png")].size > 100
          # already fetched and unpacked
          return
        end
      else
        Dir.mkdir(dir)
      end
      require 'open-uri'
      puts "[.] fetching PNG test-suite from #{PNG_SUITE_URL} .. "
      data = open(PNG_SUITE_URL).read

      fname = File.join(dir, "png_suite.tgz")
      File.open(fname, "wb"){ |f| f<<data }
      puts "[.] unpacking .. "
      system "tar", "xzf", fname, "-C", dir
    end

    def each *prefixes
      Dir[File.join(dir,"*.png")].each do |fname|
        if prefixes.empty?
          yield fname
        elsif prefixes.any?{ |p| p[/[*?\[]/] ? File.fnmatch(p, File.basename(fname)) : File.basename(fname).start_with?(p) }
          yield fname
        end
      end
    end

    def each_good
      Dir[File.join(dir,"[^x]*.png")].each do |fname|
        yield fname
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
sugar_png-0.4.1 spec/support/png_suite.rb
zpng-0.2.4 spec/support/png_suite.rb
zpng-0.2.3 spec/support/png_suite.rb
zpng-0.2.2 spec/support/png_suite.rb
sugar_png-0.4.0 spec/support/png_suite.rb
zpng-0.2.1 spec/support/png_suite.rb