Class: Roo::Spreadsheet
- Inherits:
-
Object
- Object
- Roo::Spreadsheet
- Defined in:
- lib/roo/spreadsheet.rb
Class Method Summary collapse
Class Method Details
.extension_for(path, options) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/roo/spreadsheet.rb', line 18 def extension_for(path, ) case (extension = .delete(:extension)) when ::Symbol [:file_warning] = :ignore extension when ::String [:file_warning] = :ignore extension.tr('.', '').downcase.to_sym else parsed_path = if path =~ /\A#{::URI::DEFAULT_PARSER.make_regexp}\z/ # path is 7th match Regexp.last_match[7] else path end ::File.extname(parsed_path).tr('.', '').downcase.to_sym end end |
.open(path, options = {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/roo/spreadsheet.rb', line 6 def open(path, = {}) path = path.respond_to?(:path) ? path.path : path extension = extension_for(path, ) begin Roo::CLASS_FOR_EXTENSION.fetch(extension).new(path, ) rescue KeyError raise ArgumentError, "Can't detect the type of #{path} - please use the :extension option to declare its type." end end |