Class: Ore::Dependency

Inherits:
Object
  • Object
show all
Defined in:
lib/ore/dependency.rb

Overview

Represents a RubyGem dependency.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, *versions) ⇒ Dependency

Creates a new dependency.

Parameters:

  • name (String)

    The name of the dependency.

  • versions (Array<String>)

    The required versions.



22
23
24
25
# File 'lib/ore/dependency.rb', line 22

def initialize(name,*versions)
  @name = name
  @versions = versions
end

Instance Attribute Details

#nameObject (readonly)

The name of the dependency



8
9
10
# File 'lib/ore/dependency.rb', line 8

def name
  @name
end

#versionsObject (readonly)

The required versions



11
12
13
# File 'lib/ore/dependency.rb', line 11

def versions
  @versions
end

Class Method Details

.parse(dependency) ⇒ Dependency

Parses a dependency string.

Parameters:

  • dependency (String)

    The dependency string.

Returns:



61
62
63
64
65
# File 'lib/ore/dependency.rb', line 61

def self.parse(dependency)
  name, versions = dependency.strip.split(/\s+/,2)

  return parse_versions(name,versions)
end

.parse_versions(name, versions) ⇒ Dependency

Parses a version string.

Parameters:

  • name (String)

    The name of the dependency.

  • versions (String, Array, nil)

    The version(s).

Returns:



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/ore/dependency.rb', line 39

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