Method: Packable::Packers.to_class_option_list

Defined in:
lib/packable/packers.rb

.to_class_option_list(*arg) ⇒ Object

:nodoc:



51
52
53
54
55
56
57
58
59
60
61
# File 'lib/packable/packers.rb', line 51

def self.to_class_option_list(*arg) #:nodoc:
  r = []
  until arg.empty? do
    k, options = original = arg.shift
    k, options = global_lookup(k) if k.is_a? Symbol
    raise TypeError, "Expected a class or symbol: #{k.inspect}" unless k.instance_of? Class
    options ||= arg.first.is_a?(Hash) ? arg.shift.tap{|o| original = [original, o]} : :default
    r << [k, k.packers.finalize(options), original]
  end
  r
end