Sha256: 0e63e1073a1ef3a6096e90272cf18a3f4740d5aebc8dfc35c7a2c079c35f9931

Contents?: true

Size: 706 Bytes

Versions: 5

Compression:

Stored size: 706 Bytes

Contents

require 'mspec/utils/version'
require 'mspec/guards/guard'

class VersionGuard < SpecGuard
  def initialize(version)
    case version
    when String
      @version = SpecVersion.new version
    when Range
      a = SpecVersion.new version.first
      b = SpecVersion.new version.last
      @version = version.exclude_end? ? a...b : a..b
    end
  end

  def ruby_version
    @ruby_version ||= SpecVersion.new self.class.ruby_version(:full)
  end

  def match?
    if Range === @version
      @version.include? ruby_version
    else
      ruby_version >= @version
    end
  end
end

class Object
  def ruby_version_is(*args)
    g = VersionGuard.new(*args)
    yield if g.yield?
    g.unregister
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mspec-1.5.5 lib/mspec/guards/version.rb
mspec-1.5.6 lib/mspec/guards/version.rb
mspec-1.5.7 lib/mspec/guards/version.rb
mspec-1.5.8 lib/mspec/guards/version.rb
mspec-1.5.9 lib/mspec/guards/version.rb