# File lib/map/options.rb, line 5 def for(arg) options = case arg when Hash arg when Array parse(arg) when String, Symbol {arg => true} else raise(ArgumentError, arg.inspect) unless arg.respond_to?(:to_hash) arg.to_hash end unless options.is_a?(Options) options = Map.for(options) options.extend(Options) end raise unless options.is_a?(Map) options end