class HylaFAX::SendFax

Constants

DEFAULT_CHOPTHRESHOLD
DEFAULT_PAGECHOP
DEFAULT_PAGELENGTH
DEFAULT_PAGEWIDTH
DEFAULT_TMP_DIR
DOCUMENT_PREFIX

Attributes

dialstring[R]
document[R]
job_id[R]
pagelength[R]
pagewidth[R]
tmp_dir[R]

Public Class Methods

new(opts = {}) click to toggle source
Calls superclass method HylaFAX::Command::new
# File lib/hylafax/send_fax.rb, line 13
def initialize(opts = {})
  super
  @tmp_dir    = opts.fetch(:tmp_dir) { DEFAULT_TMP_DIR }
  @dialstring = opts.fetch(:dialstring)
  @document   = opts.fetch(:document)
  @pagewidth  = opts.fetch(:pagewidth) { DEFAULT_PAGEWIDTH }
  @pagelength  = opts.fetch(:pagelength) { DEFAULT_PAGELENGTH }
  @job_id     = nil
end

Public Instance Methods

run() click to toggle source
# File lib/hylafax/send_fax.rb, line 23
def run
  connect
  login
  upload_document
  create_new_job
  set_lasttime
  set_dialstring
  set_pagewidth
  set_pagelength
  set_pagechop
  set_chopthreshold
  set_document
  submit_job
  job_id
end

Private Instance Methods

create_new_job() click to toggle source
# File lib/hylafax/send_fax.rb, line 58
def create_new_job
  /jobid:\s+(\d+)\s+/ =~ ftp.sendcmd('JNEW')
  @job_id = $1.to_i if $1
end
document_filename() click to toggle source
# File lib/hylafax/send_fax.rb, line 49
def document_filename
  @document_filename ||= DOCUMENT_PREFIX +
    Digest::MD5.file(document).hexdigest
end
document_uploaded?() click to toggle source
# File lib/hylafax/send_fax.rb, line 54
def document_uploaded?
  ftp.list(tmp_dir).map { |l| l.split.last }.include?(document_filename)
end
remote_document() click to toggle source
# File lib/hylafax/send_fax.rb, line 45
def remote_document
  File.join(tmp_dir, document_filename)
end
set_chopthreshold() click to toggle source
# File lib/hylafax/send_fax.rb, line 83
def set_chopthreshold
  ftp.sendcmd(%Q{JPARM CHOPTHRESHOLD #{DEFAULT_CHOPTHRESHOLD}})
end
set_dialstring() click to toggle source
# File lib/hylafax/send_fax.rb, line 67
def set_dialstring
  ftp.sendcmd("JPARM DIALSTRING \"#{dialstring}\"")
end
set_document() click to toggle source
# File lib/hylafax/send_fax.rb, line 87
def set_document
  ftp.sendcmd("JPARM DOCUMENT \"#{remote_document}\"")
end
set_lasttime() click to toggle source
# File lib/hylafax/send_fax.rb, line 63
def set_lasttime
  ftp.sendcmd('JPARM LASTTIME 000259')
end
set_pagechop() click to toggle source
# File lib/hylafax/send_fax.rb, line 79
def set_pagechop
  ftp.sendcmd(%Q{JPARM PAGECHOP "#{DEFAULT_PAGECHOP}"})
end
set_pagelength() click to toggle source
# File lib/hylafax/send_fax.rb, line 75
def set_pagelength
  ftp.sendcmd(%Q{JPARM PAGELENGTH #{pagelength}})
end
set_pagewidth() click to toggle source
# File lib/hylafax/send_fax.rb, line 71
def set_pagewidth
  ftp.sendcmd(%Q{JPARM PAGEWIDTH #{pagewidth}})
end
submit_job() click to toggle source
# File lib/hylafax/send_fax.rb, line 91
def submit_job
  ftp.sendcmd('JSUBM')
end
upload_document() click to toggle source
# File lib/hylafax/send_fax.rb, line 41
def upload_document
  ftp.put(document, remote_document) unless document_uploaded?
end