class Muhimbi::Converter

Attributes

file[RW]
file_content[RW]
options[RW]

Public Class Methods

new(opts={}) { |client| ... } click to toggle source
# File lib/muhimbi/converter.rb, line 10
def initialize(opts={})

  unless opts[:file].blank?
    self.file_content = encode_file(opts[:file])
    self.file         = opts[:file]
  end

  self.tap do |client|
    client.options    ||= {}
    client.defaults_options(opts)
    client.options ||= opts
    yield client if block_given?
  end

end

Public Instance Methods

convert() click to toggle source
# File lib/muhimbi/converter.rb, line 26
def convert
  wsdl_res = Muhimbi::Client.client.call(:convert , message: self.options )
  wsdl_res.to_hash[:convert_response][:convert_result]
end
defaults_options(opts={}) click to toggle source
# File lib/muhimbi/converter.rb, line 35
def defaults_options(opts={})

  self.sourceFile(self.file_content)

  self.openOptions({
    "FileExtension"   => File.extname( self.file ).gsub(".", ""),
    "OriginalFileName"=> File.basename( self.file)
  })

  self.conversionSettings({
    "Format"  => "PDF",
    "Fidelity"=> "Full"
  })
end
method_missing(meth, opts = {}) click to toggle source
# File lib/muhimbi/converter.rb, line 31
def method_missing(meth, opts = {})
  merge_options meth, opts
end

Private Instance Methods

allowed_methods() click to toggle source
# File lib/muhimbi/converter.rb, line 52
def allowed_methods
  ["sourceFile", "openOptions", "conversionSettings"]
end
encode_file(file) click to toggle source
# File lib/muhimbi/converter.rb, line 66
def encode_file(file)
  Base64.strict_encode64(file.read)
end
merge_options(name, opts) click to toggle source
# File lib/muhimbi/converter.rb, line 56
def merge_options(name, opts)
  name = name.to_s.camelize(:lower)
  @options.merge! "ns:#{name}" => redo_opts(opts) if allowed_methods.include?(name)
end
redo_opts(opts) click to toggle source
# File lib/muhimbi/converter.rb, line 61
def redo_opts(opts)
  return opts unless opts.class == Hash
  Hash[opts.map {|k, v| ["ns1:#{k}", v] }]
end