Sha256: 8972e448b643c399efae0885338175909c3ad06d2fc9861e6d7d6fc7c0cff3eb

Contents?: true

Size: 1.25 KB

Versions: 2

Compression:

Stored size: 1.25 KB

Contents

require 'rubygems/dependency'

module Ore
  #
  # Represents a RubyGem dependency.
  #
  class Dependency < Gem::Dependency

    #
    # Parses a version string.
    #
    # @param [String] name
    #   The name of the dependency.
    #
    # @param [String, Array, nil] versions 
    #   The version(s).
    #
    # @return [Dependency]
    #   The parsed dependency.
    #
    def self.parse_versions(name,versions)
      versions = case versions
                 when String
                   versions.strip.split(/,\s*/)
                 when Array
                   versions.map { |v| v.to_s }
                 else
                   []
                 end

      return new(name,*versions)
    end

    #
    # Parses a dependency string.
    #
    # @param [String] dependency
    #   The dependency string.
    #
    # @return [Dependency]
    #   The parsed dependency.
    #
    def self.parse(dependency)
      name, versions = dependency.strip.split(/\s+/,2)

      return parse_versions(name,versions)
    end

    #
    # The version requirements of the dependency.
    #
    # @return [Array<String>]
    #   The version requirement Strings.
    #
    # @since 0.1.3
    #
    def versions
      requirements_list.map { |req| req.to_s }
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ore-core-0.1.4 lib/ore/dependency.rb
ore-core-0.1.3 lib/ore/dependency.rb