module Rafini::Requires

Public Instance Methods

requires(*list) click to toggle source
# File lib/rafini/requires.rb, line 13
def requires(*list)
  loaded = []
  list.each do |gems|
    gems.lines.each do |gemname_reqs|
      gemname, *reqs = gemname_reqs.split
      next unless gemname
      unless reqs.empty?
        case gemname
        when 'rafini'
          unless VERSION.satisfies?(*reqs)
            raise "helpema #{VERSION} not #{reqs.join(', ')}"
          end
          next
        when 'ruby'
          unless RUBY_VERSION.satisfies?(*reqs)
            raise "ruby #{RUBY_VERSION} not #{reqs.join(', ')}"
          end
          next
        else
          gem gemname, *reqs
        end
      end
      require gemname and loaded.push gemname
    end
  end
  loaded
end
satisfies?(*reqs) click to toggle source

satisfies?: “1.2.3”.satisfies?(‘~>1.1’) #=> true “1.2.3”.satisfies?(‘~>2.3’) #=> false

# File lib/rafini/requires.rb, line 7
def satisfies?(*reqs)
  Gem::Requirement.new(*reqs).satisfied_by? Gem::Version.new(self)
end