Skip to content

Commit 16b42a0

Browse files
author
Bulat Shakirzyanov
committed
[RUBY-119] eagerly require compressors
1 parent f12ef8f commit 16b42a0

File tree

4 files changed

+19
-14
lines changed

4 files changed

+19
-14
lines changed

lib/cassandra.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,10 +324,8 @@ def self.cluster_async(options = {})
324324

325325
case compression
326326
when :snappy
327-
require 'cassandra/compression/compressors/snappy'
328327
options[:compressor] = Compression::Compressors::Snappy.new
329328
when :lz4
330-
require 'cassandra/compression/compressors/lz4'
331329
options[:compressor] = Compression::Compressors::Lz4.new
332330
else
333331
raise ::ArgumentError, ":compression must be either :snappy or :lz4, #{compression.inspect} given"

lib/cassandra/compression.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,6 @@ class Compressor
6464
end
6565
end
6666
end
67+
68+
require 'cassandra/compression/compressors/snappy'
69+
require 'cassandra/compression/compressors/lz4'

lib/cassandra/compression/compressors/lz4.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,6 @@
1616
# limitations under the License.
1717
#++
1818

19-
begin
20-
require 'lz4-ruby'
21-
rescue LoadError => e
22-
raise LoadError, %[LZ4 support requires the "lz4-ruby" gem: #{e.message}], e.backtrace
23-
end
24-
2519
module Cassandra
2620
module Compression
2721
module Compressors
@@ -40,6 +34,14 @@ class Lz4 < Compressor
4034
# @param [Integer] min_size (64) Don't compress frames smaller than
4135
# this size (see {#compress?}).
4236
def initialize(min_size=64)
37+
unless defined?(::LZ4::Raw)
38+
begin
39+
require 'lz4-ruby'
40+
rescue LoadError => e
41+
raise LoadError, %[LZ4 support requires the "lz4-ruby" gem: #{e.message}], e.backtrace
42+
end
43+
end
44+
4345
@algorithm = 'lz4'.freeze
4446
@min_size = min_size
4547
end

lib/cassandra/compression/compressors/snappy.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,6 @@
1616
# limitations under the License.
1717
#++
1818

19-
begin
20-
require 'snappy'
21-
rescue LoadError => e
22-
raise LoadError, %[Snappy support requires the "snappy" gem: #{e.message}], e.backtrace
23-
end
24-
2519
module Cassandra
2620
module Compression
2721
module Compressors
@@ -40,6 +34,14 @@ class Snappy < Compressor
4034
# @param [Integer] min_size (64) Don't compress frames smaller than
4135
# this size (see {#compress?}).
4236
def initialize(min_size=64)
37+
unless defined?(::Snappy)
38+
begin
39+
require 'snappy'
40+
rescue LoadError => e
41+
raise LoadError, %[Snappy support requires the "snappy" gem: #{e.message}], e.backtrace
42+
end
43+
end
44+
4345
@algorithm = 'snappy'.freeze
4446
@min_size = min_size
4547
end

0 commit comments

Comments
 (0)