Sha256: 394dcb7e4a6d6f8a9d7bace07175347c803aceaddcf28db70d7d7b4f4c64e837
Contents?: true
Size: 1.5 KB
Versions: 3
Compression:
Stored size: 1.5 KB
Contents
module Wisepdf class Parser include Singleton ESCAPED_OPTIONS = [ :pdf, :layout, :template, :action, :partial, :object, :collection, :as, :spacer_template, :disposition, :locals, :status, :file, :text, :xml, :json, :callback, :inline, :location, :save_to_file ] class << self def parse(options) options = self.escape(options) options = self.flatten(options) parsed_options = {} options.each do |key, value| unless( value == false || value.nil? ) normalized_key = "--#{self.normalize_arg(key)}" parsed_options[normalized_key] = self.normalize_value(value) end end parsed_options end protected def escape(options) options.delete_if{ |k,v| ESCAPED_OPTIONS.include?(k.to_sym) } end def flatten(options, prefix = nil) hash = {} options.each do |k,v| key = prefix.nil? ? k : "#{prefix.to_s}-#{k}" if v.is_a?(Hash) hash.delete(k) hash.merge!(self.flatten(v, key)) else hash[key.to_s] = v end end return hash end def normalize_arg(arg) arg.to_s.downcase.gsub(/[^a-z0-9]/,'-') end def normalize_value(value) case value when TrueClass nil else value.to_s end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wisepdf-1.2.6 | lib/wisepdf/parser.rb |
wisepdf-1.2.5 | lib/wisepdf/parser.rb |
wisepdf-1.2.4 | lib/wisepdf/parser.rb |