1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
require "cairo"
begin
require "poppler"
rescue LoadError
puts "W: poppler not available, skipping poppler-related tests"
end
require "stringio"
module Helper
private
def only_cairo_version(major, minor, micro=nil)
unless Cairo.satisfied_version?(major, minor, micro)
omit("Require cairo >= #{major}.#{minor}.#{micro}")
end
end
def only_windows
omit("Only for Windows platform") unless windows?
end
def only_not_windows
omit("Only for not Windows platform") if windows?
end
def windows?
/cygwin|mingw|mswin|bccwin/ === RUBY_PLATFORM
end
def quartz?
Cairo::FontFace.quartz_supported?
end
def only_device(name)
only_cairo_version(1, 10)
unless Cairo::Device.supported?(name)
omit("Only for #{name} device available")
end
end
def only_surface(name)
unless Cairo::Surface.supported?(name)
omit("Only for #{name} device available")
end
end
def only_pattern(name)
unless Cairo::Pattern.supported?(name)
omit("Only for #{name} device available")
end
end
def fixture_path(*components)
File.join(__dir__, "fixture", *components)
end
end
|