Class: Compression::Engine
- Inherits:
-
Object
- Object
- Compression::Engine
- Defined in:
- lib/compression/engine.rb
Constant Summary collapse
- UnsupportedFileExtension =
Class.new(StandardError)
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(strategy) ⇒ Engine
constructor
A new instance of Engine.
Constructor Details
#initialize(strategy) ⇒ Engine
Returns a new instance of Engine.
22 23 24 |
# File 'lib/compression/engine.rb', line 22 def initialize(strategy) @strategy = strategy end |
Class Method Details
.default_strategies ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/compression/engine.rb', line 7 def self.default_strategies [ Compression::Zip.new, Compression::Pipeline.new([Compression::Tar.new, Compression::Gzip.new]), Compression::Gzip.new, Compression::Tar.new, ] end |
.engine_for(filename, strategies: default_strategies) ⇒ Object
16 17 18 19 20 |
# File 'lib/compression/engine.rb', line 16 def self.engine_for(filename, strategies: default_strategies) strategy = strategies.detect(-> { raise UnsupportedFileExtension }) { |e| e.can_handle?(filename) } new(strategy) end |