Class: Doc::Configurator::Ruby::VersionSpecifier

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/doc/configurator/ruby/version_specifier.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(o) ⇒ VersionSpecifier

Returns a new instance of VersionSpecifier.



7
8
9
10
# File 'lib/doc/configurator/ruby/version_specifier.rb', line 7

def initialize(o)
  @str = o.to_s
  @parts = str.scan(/\d+/).map(&:to_i)
end

Instance Attribute Details

#partsObject (readonly)

Returns the value of attribute parts.



5
6
7
# File 'lib/doc/configurator/ruby/version_specifier.rb', line 5

def parts
  @parts
end

#strObject (readonly) Also known as: to_s

Returns the value of attribute str.



5
6
7
# File 'lib/doc/configurator/ruby/version_specifier.rb', line 5

def str
  @str
end

Instance Method Details

#<=>(other) ⇒ Object



25
26
27
# File 'lib/doc/configurator/ruby/version_specifier.rb', line 25

def <=>(other)
  parts <=> other.parts
end

#===(other) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/doc/configurator/ruby/version_specifier.rb', line 29

def ===(other)
  if other.respond_to?(:parts)
    parts == other.parts[0, parts.length]
  else
    str === other
  end
end

#dir_nameObject



20
21
22
# File 'lib/doc/configurator/ruby/version_specifier.rb', line 20

def dir_name
  'ruby-%d.%d.%d-p%d' % parts
end

#full_version?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/doc/configurator/ruby/version_specifier.rb', line 16

def full_version?
  valid? && parts.length == 4
end

#valid?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/doc/configurator/ruby/version_specifier.rb', line 12

def valid?
  str =~ /^\d+\.\d+(?:\.\d+(?:-p\d+)?)?$/
end