Class: Saxlsx::FileSystem
- Inherits:
-
Object
- Object
- Saxlsx::FileSystem
- Defined in:
- lib/saxlsx/file_system.rb
Constant Summary collapse
- IO_METHODS =
[:tell, :seek, :read, :close]
Class Method Summary collapse
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(filename) ⇒ FileSystem
constructor
A new instance of FileSystem.
- #shared_strings ⇒ Object
- #sheet(i) ⇒ Object
- #styles ⇒ Object
- #workbook ⇒ Object
Constructor Details
#initialize(filename) ⇒ FileSystem
Returns a new instance of FileSystem.
15 16 17 18 19 20 21 22 |
# File 'lib/saxlsx/file_system.rb', line 15 def initialize(filename) if IO_METHODS.map { |method| filename.respond_to?(method) }.all? @zip = Zip::File.open_buffer filename @io = true else @zip = Zip::File.open filename end end |
Class Method Details
.open(filename) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/saxlsx/file_system.rb', line 6 def self.open(filename) begin file_system = self.new(filename) yield file_system ensure file_system.close end end |
Instance Method Details
#close ⇒ Object
24 25 26 |
# File 'lib/saxlsx/file_system.rb', line 24 def close @zip.close unless @io end |
#shared_strings ⇒ Object
32 33 34 35 |
# File 'lib/saxlsx/file_system.rb', line 32 def shared_strings file = @zip.glob('xl/shared[Ss]trings.xml').first @zip.get_input_stream(file) if file end |
#sheet(i) ⇒ Object
41 42 43 |
# File 'lib/saxlsx/file_system.rb', line 41 def sheet(i) @zip.get_input_stream("xl/worksheets/sheet#{i+1}.xml") end |
#styles ⇒ Object
37 38 39 |
# File 'lib/saxlsx/file_system.rb', line 37 def styles @zip.get_input_stream('xl/styles.xml') end |
#workbook ⇒ Object
28 29 30 |
# File 'lib/saxlsx/file_system.rb', line 28 def workbook @zip.get_input_stream('xl/workbook.xml') end |