Sha256: 6389b77fa7528cd7496d1179176e3ddf08b9a50ff2d45034a126ca965dd972a9
Contents?: true
Size: 978 Bytes
Versions: 11
Compression:
Stored size: 978 Bytes
Contents
require 'uri' module Roo class Spreadsheet class << self def open(path, options = {}) path = path.respond_to?(:path) ? path.path : path extension = extension_for(path, options) begin Roo::CLASS_FOR_EXTENSION.fetch(extension).new(path, options) rescue KeyError raise ArgumentError, "Can't detect the type of #{path} - please use the :extension option to declare its type." end end def extension_for(path, options) case (extension = options.delete(:extension)) when ::Symbol options[:file_warning] = :ignore extension when ::String options[:file_warning] = :ignore extension.tr('.', '').downcase.to_sym else res = ::File.extname((path =~ /\A#{::URI.regexp}\z/) ? ::URI.parse(::URI.encode(path)).path : path) res.tr('.', '').downcase.to_sym end end end end end
Version data entries
11 entries across 11 versions & 1 rubygems