diff --git a/lib/kredis.rb b/lib/kredis.rb index 28f0baf..caf0071 100644 --- a/lib/kredis.rb +++ b/lib/kredis.rb @@ -13,11 +13,12 @@ require "kredis/default_values" require "kredis/types" require "kredis/attributes" +require "kredis/info" require "kredis/railtie" if defined?(Rails::Railtie) module Kredis - include Connections, Namespace, TypeCasting, Types + include Connections, Namespace, TypeCasting, Types, Info extend self autoload :Migration, "kredis/migration" diff --git a/lib/kredis/info.rb b/lib/kredis/info.rb new file mode 100644 index 0000000..ae556ea --- /dev/null +++ b/lib/kredis/info.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module Kredis::Info + def redis_version + redis_versions.first + end + + def redis_versions + Array.wrap(Kredis.redis.info("server")).tap do |versions| + versions.map! { |v| v["redis_version"] } + versions.map! { |v| Gem::Version.new(v) } + end + end +end diff --git a/test/kredis/info_test.rb b/test/kredis/info_test.rb new file mode 100644 index 0000000..4544dbe --- /dev/null +++ b/test/kredis/info_test.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +require "test_helper" +require "yaml" + +class InfoTest < ActiveSupport::TestCase + test "version" do + assert Kredis.redis_version >= Gem::Version.new("4.0.0") + end +end