Sha256: d5c63f32ae53e2f698a13d705c99e4f0dbf8cdb2883aaac08895804a0baea082
Contents?: true
Size: 1.21 KB
Versions: 1
Compression:
Stored size: 1.21 KB
Contents
module Wicoris module Postman class FaxMachine DIALOUT_PREFIX = '0' VALID_PHONE_NUMBER = %r{ ^0 # starts with a zero [1-9]{1} # but not with a second zero \d{8,}$ # followed by at least 8 digits }x def initialize(job, opts = {}) @job = job @opts = opts @logger = opts[:logger] end # Actually fax the letter. def run system(command) unless @opts[:noop] end # @returns [String] Validated phone number. def validated_phone raise ArgumentError, 'Missing phone number' unless @job.phone phone = @job.phone.gsub(/(\s|-)+/, '') if phone =~ VALID_PHONE_NUMBER DIALOUT_PREFIX + phone else raise ArgumentError, "Invalid phone number: #{phone}" end end private # Return the command-line for sending the fax, i.e.: # # lp -d Fax -o phone=042 "/tmp/foo.pdf" # # @returns [String] command-line def command cmd = %w(lp -d Fax) # TODO: Replace hard-coded fax printer-name 'Fax'! cmd << "-o phone=#{validated_phone}" cmd << "'#{@job.letter}'" cmd.join(' ') end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wicoris-postman-0.11.0 | lib/wicoris/postman/fax_machine.rb |