Sha256: d64643ee2a8cd327d767f2bc4ad6a7e0954eaf15cbafa7274e280f1554b18a72

Contents?: true

Size: 1.28 KB

Versions: 10

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

require 'active_record'

module SpecCondition
  class << self
    def postgresql?
      ENV['POSTGRESQL'] == '1'
    end

    def mysql57?
      ENV['MYSQL57'] == '1'
    end

    def mysql_awesome_enabled?
      ENV['ENABLE_MYSQL_AWESOME'] == '1'
    end

    def activerecord_5?
      (ActiveRecord::VERSION::MAJOR >= 5) && (ActiveRecord::VERSION::MAJOR < 6)
    end

    def debug?
      ENV['DEBUG'] == '1'
    end
  end

  def check_version_or_cond(version_or_cond)
    case version_or_cond
    when Regexp
      ActiveRecord::VERSION::STRING =~ version_or_cond
    when Float
      ActiveRecord::VERSION::STRING.start_with?(version_or_cond.to_s)
    when /\s+/
      ar_version = Gem::Version.new(ActiveRecord::VERSION::STRING)

      version_or_cond.split(',').all? do |ope_version|
        ope, version = ope_version.strip.split(/\s+/, 2)
        ar_version.send(ope, Gem::Version.new(version))
      end
    when String
      ActiveRecord::VERSION::STRING.start_with?(version_or_cond)
    else
      SpecCondition.send("#{version_or_cond}?")
    end
  end

  def condition(*conds)
    conds.any? do |c|
      if c.is_a? Array
        c.all? { |i| check_version_or_cond(i) }
      else
        check_version_or_cond(c)
      end
    end
  end
end
include SpecCondition

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
ridgepole-0.8.7 spec/spec_condition.rb
ridgepole-0.8.6 spec/spec_condition.rb
ridgepole-0.8.5 spec/spec_condition.rb
ridgepole-0.8.4 spec/spec_condition.rb
ridgepole-0.8.3 spec/spec_condition.rb
ridgepole-0.8.2 spec/spec_condition.rb
ridgepole-0.8.1 spec/spec_condition.rb
ridgepole-0.8.0 spec/spec_condition.rb
ridgepole-0.8.0.rc2 spec/spec_condition.rb
ridgepole-0.7.8 spec/spec_condition.rb