Class: USPSFlags::Generate
- Inherits:
-
Object
- Object
- USPSFlags::Generate
- Defined in:
- lib/usps_flags/generate.rb
Overview
Controller class for generating files.
Class Method Summary collapse
-
.all(svg: true, png: true, zips: true, reset: true) ⇒ Object
Generate all static SVG and PNG files, and automaticall generates zip archives for download.
-
.images(svg: true, png: true) ⇒ Object
Generate static image files.
-
.png(svg, outfile: nil, trim: false, background: 'none') ⇒ Object
Convert SVG data into a PNG file.
-
.spec(outfile: nil, fly: USPSFlags::Config::BASE_FLY, unit: nil, scale: nil, scaled_border: false) ⇒ String
Generate trident spec sheet as an SVG image.
-
.svg(flag, outfile: nil, scale: nil, field: true) ⇒ String
The primary controller method.
-
.zips(svg: true, png: true) ⇒ Object
Generate zip archives of current static image files.
Class Method Details
.all(svg: true, png: true, zips: true, reset: true) ⇒ Object
Generate all static SVG and PNG files, and automaticall generates zip archives for download.
61 62 63 64 65 66 67 68 69 |
# File 'lib/usps_flags/generate.rb', line 61 def all(svg: true, png: true, zips: true, reset: true) raise USPSFlags::Errors::StaticFilesGenerationError, 'At least one argument switch must be true out of [svg, png, zips, reset].' unless svg || png || zips || reset overall_start_time = Time.now remove_static_files if reset images(svg: svg, png: png) if svg || png zips(svg: svg, png: png) if zips USPSFlags::Helpers.log "\nTotal run time: #{Time.now - overall_start_time} s\n\n" end |
.images(svg: true, png: true) ⇒ Object
Generate static image files.
86 87 88 89 90 91 |
# File 'lib/usps_flags/generate.rb', line 86 def images(svg: true, png: true) static_generation_header USPSFlags::Helpers.valid_flags(:all).each do |flag| generate_static_images_for(flag, svg: svg, png: png) end end |
.png(svg, outfile: nil, trim: false, background: 'none') ⇒ Object
Convert SVG data into a PNG file.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/usps_flags/generate.rb', line 37 def png(svg, outfile: nil, trim: false, background: 'none') raise USPSFlags::Errors::PNGGenerationError.new(svg: svg) if outfile.nil? || outfile.empty? set_temp_svg(svg) USPSFlags::Helpers.ensure_dir_for_file(outfile) MiniMagick::Tool::Convert.new do |convert| convert << '-background' << background convert << '-format' << 'png' convert << '-trim' if trim convert << @temp_svg_path convert << outfile end ensure ::File.delete(@temp_svg_path) if delete_temp_svg? end |
.spec(outfile: nil, fly: USPSFlags::Config::BASE_FLY, unit: nil, scale: nil, scaled_border: false) ⇒ String
Generate trident spec sheet as an SVG image.
100 101 102 103 104 105 106 107 |
# File 'lib/usps_flags/generate.rb', line 100 def spec(outfile: nil, fly: USPSFlags::Config::BASE_FLY, unit: nil, scale: nil, scaled_border: false) svg = '' svg << USPSFlags::Core.headers(scale: scale, title: 'USPS Trident Specifications') svg << USPSFlags::Core.trident_spec(fly: fly, unit: unit, scaled_border: scaled_border) svg << USPSFlags::Core. USPSFlags::Helpers.output(svg, outfile: outfile) end |
.svg(flag, outfile: nil, scale: nil, field: true) ⇒ String
The primary controller method. Generates an SVG file or SVG data.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/usps_flags/generate.rb', line 13 def svg(flag, outfile: nil, scale: nil, field: true) flag = flag.upcase.delete('/', '_', 'PENNANT') USPSFlags::Helpers.ensure_dir_for_file(outfile) if ['CRUISE', 'OIC'].include?(flag) USPSFlags::Generate::Flag.pennant(type: flag, outfile: outfile, scale: scale) elsif flag == 'ENSIGN' USPSFlags::Generate::Flag.ensign(outfile: outfile, scale: scale) elsif flag == 'US' USPSFlags::Generate::Flag.us(outfile: outfile, scale: scale) elsif flag == 'WHEEL' USPSFlags::Generate::Flag.wheel(outfile: outfile, scale: scale) else USPSFlags::Generate::Flag.officer(rank: flag, outfile: outfile, scale: scale, field: field) end end |
.zips(svg: true, png: true) ⇒ Object
Generate zip archives of current static image files.
75 76 77 78 79 80 |
# File 'lib/usps_flags/generate.rb', line 75 def zips(svg: true, png: true) raise USPSFlags::Errors::ZipGenerationError, 'At least one argument switch must be true out of [svg, png].' unless svg || png generate_zip('svg') if svg generate_zip('png') if png end |