Sha256: ec910ec6c686ecb62fe2da1ff055040080aa6dc62aec29427095df2bdb130938
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true # Core SVG data for merit marks. # # This class should never need to be called directly. # @private class USPSFlags::Grades::MeritMarks class << self def get(number) return if number < 1 svg = +'' new_lines = 0 top_row = number % 20 svg << generate_top_row(top_row) number -= top_row number, new_lines, svg = add_row(number, new_lines, svg) while number > 0 new_lines.times { svg << '</g>' } svg end private def add_row(number, new_lines, svg) number -= 20 new_lines += 1 svg << <<~SVG <g transform="translate(0,90)"> #{generate_full_row} SVG [number, new_lines, svg] end def bar(offset = 0) <<~SVG <rect x="#{offset}" y="0" width="35" height="80" fill="#{USPSFlags::Config::GOLD}" /> SVG end def generate_top_row(number) svg = +'' number.times do |i| svg << bar(45 * i) end svg end def generate_full_row svg = +'' 20.times do |i| svg << bar(45 * i) end svg end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
usps_flags-grades-0.1.1 | lib/usps_flags/grades/merit_marks.rb |
usps_flags-grades-0.1.0 | lib/usps_flags/grades/merit_marks.rb |