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