Sha256: c44e50d7bdacd3d3917b972b5225ea235596d44a05cbdbe2996180a21e43b998
Contents?: true
Size: 957 Bytes
Versions: 2
Compression:
Stored size: 957 Bytes
Contents
require 'pt/papersize/version' require 'pt/papersize/paper_sizes' module PT class PaperSize def self.find(width, height, units = :pt) short_edge = [width, height].min long_edge = [width, height].max case units when :pt, :point, :points short_edge_mm = ((short_edge.to_f / 72.0) * 25.4).round long_edge_mm = ((long_edge.to_f / 72.0) * 25.4).round when :mm, :millimetre, :millimetres short_edge_mm = short_edge long_edge_mm = long_edge when :inch, :inches short_edge_mm = (short_edge.to_f * 25.4).round long_edge_mm = (long_edge.to_f * 25.4).round end available_sizes = PT::PaperSize::PAPER_SIZES.select do |entry| (short_edge_mm == entry[:width]) && (long_edge_mm == entry[:height]) end available_sizes.length > 0 ? available_sizes.first : { name: 'Custom', width: short_edge_mm, height: long_edge_mm, units: :mm} end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pt_papersize-0.1.2 | lib/pt/papersize.rb |
pt_papersize-0.1.1 | lib/pt/papersize.rb |