Sha256: 6fca57a146f6f1302c73055b581dd30bd152f3e9e161f71c06b0c194324d37c3

Contents?: true

Size: 951 Bytes

Versions: 1

Compression:

Stored size: 951 Bytes

Contents

# frozen_string_literal: true

module SmartTodo
  module Events
    # An event that checks the currently installed ruby version.
    # @example
    #   RubyVersion.new(['>= 2.3', '< 3'])
    class RubyVersion
      def initialize(requirements)
        @requirements = Gem::Requirement.new(requirements)
      end

      # @param requirements [Array<String>] a list of version specifiers
      # @return [String, false]
      def met?
        if @requirements.satisfied_by?(Gem::Version.new(installed_ruby_version))
          message(installed_ruby_version)
        else
          false
        end
      end

      # @param installed_ruby_version [String], requirements [String]
      # @return [String]
      def message(installed_ruby_version)
        "The currently installed version of Ruby #{installed_ruby_version} is #{@requirements}."
      end

      private

      def installed_ruby_version
        RUBY_VERSION
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
smart_todo-1.6.0 lib/smart_todo/events/ruby_version.rb