Sha256: d0a9353064cde6056929c4e1b6886a4697403b31fc5603d10eb70082a3d684c0

Contents?: true

Size: 957 Bytes

Versions: 12

Compression:

Stored size: 957 Bytes

Contents

module RubyXL
  class GenericStorage < Hash
    attr_reader :local_dir_path

    def initialize(local_dir_path)
      @local_dir_path = local_dir_path
      @mode = 'r'
      super
    end

    def binary
      @mode = 'rb'
      self
    end

    def load_dir(root_dir)
      dirpath = File.join(root_dir, @local_dir_path)
      if File.directory?(dirpath) then
        (Dir.new(dirpath).entries - ['.', '..', '.DS_Store', '_rels']).each { |filename|
          self[filename] = File.open(File.join(dirpath, filename), @mode).read
        }
      end

      self
    end

    def load_file(root_dir, filename)
      filepath = File.join(root_dir, @local_dir_path, filename)
      self[filename] = File.open(filepath, @mode).read if File.readable?(filepath)
      self
    end

    def add_to_zip(zipfile)
      each_pair { |filename, data|
        zipfile.get_output_stream(File.join(@local_dir_path, filename)) { |f| f << data }
      }
    end

  end
end

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
rubyXL-git-ref-6002046-2.0.0 lib/rubyXL/generic_storage.rb
rubyXL-2.4.3 lib/rubyXL/generic_storage.rb
rubyXL-2.4.2 lib/rubyXL/generic_storage.rb
rubyXL-2.4.1 lib/rubyXL/generic_storage.rb
rubyXL-2.4.0 lib/rubyXL/generic_storage.rb
rubyXL-2.3.4 lib/rubyXL/generic_storage.rb
rubyXL-2.3.3 lib/rubyXL/generic_storage.rb
rubyXL-2.3.2 lib/rubyXL/generic_storage.rb
rubyXL-2.3.1 lib/rubyXL/generic_storage.rb
rubyXL-2.3.0 lib/rubyXL/generic_storage.rb
rubyXL-2.2.0 lib/rubyXL/generic_storage.rb
rubyXL-2.1.1 lib/rubyXL/generic_storage.rb