class Factory

Attributes

gem_name[R]
type[R]
version[R]
versions[R]

Public Class Methods

new(options) click to toggle source
# File lib/gem_velocity/velocitators/factory.rb, line 7
def initialize(options)

  # one ver passed
  if options[:gem_name] && options[:version]
    @gem_name = options[:gem_name]
    @version = options[:version]
    @type = type_from_version(@version)
    @versions = self.velocitator.versions
  elsif options[:full_name]
    @gem_name = name_from_full_name(options[:full_name])
    @version = version_from_full_name(options[:full_name])
    @type = type_from_version(@version)
    @versions = self.velocitator.versions
  end
end

Public Instance Methods

velocitator() click to toggle source
# File lib/gem_velocity/velocitators/factory.rb, line 23
def velocitator
  if @type == :aggregated
    @velocitator ||= AggregatedVelocitator.new(@gem_name, @version)
  elsif @type == :single
    @velocitator ||= SingleVelocitator.new(@gem_name, @version)
  else
    raise 'no velocitor found to generate!'
  end
end

Private Instance Methods

name_from_full_name(str) click to toggle source
# File lib/gem_velocity/velocitators/factory.rb, line 35
def name_from_full_name(str)
  str.split("-")[0..-2].join("-")
end
type_from_version(str) click to toggle source
# File lib/gem_velocity/velocitators/factory.rb, line 43
def type_from_version(str)
  if str.last.downcase == "x"
    :aggregated
  else
    :single
  end
end
version_from_full_name(str) click to toggle source
# File lib/gem_velocity/velocitators/factory.rb, line 39
def version_from_full_name(str)
  str.split("-").last
end