Class: Gem::Portage::DependencyAtom

Inherits:
Object
  • Object
show all
Defined in:
lib/g-gem/ebuild.rb

Constant Summary collapse

PREFIX_EXT_RE =
/[!~]/
PREFIX_RE =
/(>=|<=|<|>|=)/
CATEGORY_RE =
/\w+-\w+/
POSTFIX_RE =
/\*/
VERSION_RE =
/(\d+(\.\d+)*)+/
VERSION_EXT_RE =
/[a-z]?(_(alpha|beta|pre|rc|p)\d+)?/
PACKAGE_NAME_RE =
/[a-zA-Z0-9_-]+/

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#categoryObject

Returns the value of attribute category.



239
240
241
# File 'lib/g-gem/ebuild.rb', line 239

def category
  @category
end

#originObject (readonly)

Returns the value of attribute origin.



223
224
225
# File 'lib/g-gem/ebuild.rb', line 223

def origin
  @origin
end

#package_nameObject (readonly) Also known as: name

Returns the value of attribute package_name.



223
224
225
# File 'lib/g-gem/ebuild.rb', line 223

def package_name
  @package_name
end

#postfixObject (readonly)

Returns the value of attribute postfix.



223
224
225
# File 'lib/g-gem/ebuild.rb', line 223

def postfix
  @postfix
end

#prefixObject (readonly)

Returns the value of attribute prefix.



223
224
225
# File 'lib/g-gem/ebuild.rb', line 223

def prefix
  @prefix
end

#prefix_extObject (readonly)

Returns the value of attribute prefix_ext.



223
224
225
# File 'lib/g-gem/ebuild.rb', line 223

def prefix_ext
  @prefix_ext
end

#versionObject (readonly)

Returns the value of attribute version.



223
224
225
# File 'lib/g-gem/ebuild.rb', line 223

def version
  @version
end

#version_extObject (readonly)

Returns the value of attribute version_ext.



223
224
225
# File 'lib/g-gem/ebuild.rb', line 223

def version_ext
  @version_ext
end

Class Method Details

.from_gem_dependency(dep, category) ⇒ Object



285
286
287
288
289
# File 'lib/g-gem/ebuild.rb', line 285

def from_gem_dependency(dep, category)
  # fixme: 
  prefix, version = *dep.version_requirements.instance_eval { @requirements.first }
  new("#{prefix}#{category}/#{dep.name}-#{version}")
end

.from_s(str) ⇒ Object Also known as: parse



269
270
271
272
273
274
275
276
277
# File 'lib/g-gem/ebuild.rb', line 269

def from_s(str)
  if str =~ /(.*\/)?(\S+)\.gem$/ # From gem file
    atom = from_s($2)
    atom.instance_eval { @origin = str }
    atom
  else
    new(str)
  end
end

.parse_list(list) ⇒ Object



281
282
283
# File 'lib/g-gem/ebuild.rb', line 281

def parse_list(list)
  list.map { |str| parse(str) }
end

Instance Method Details

#gem_dependencyObject



259
260
261
# File 'lib/g-gem/ebuild.rb', line 259

def gem_dependency
  Gem::Dependency.new(package_name, [gem_requirement.to_s])
end

#gem_requirementObject

FIXME: support other gentoo atom prefixes



248
249
250
251
252
253
254
255
256
257
# File 'lib/g-gem/ebuild.rb', line 248

def gem_requirement
  return Gem::Version::Requirement.default unless version
  full_prefix = "#{prefix_ext}#{prefix}"
  gem_prefix = if /^(~>|>|>=|=|!=|<=|<)$/ === full_prefix
                 full_prefix
               elsif not prefix
                 "="
               end
  Gem::Version::Requirement.create(["#{gem_prefix} #{version}"])
end

#to_sObject



263
264
265
266
# File 'lib/g-gem/ebuild.rb', line 263

def to_s
  "#{prefix_ext}#{(prefix or "=") if version}#{category+"/" if category}#{package_name}"+
    "#{"-"+version+version_ext if version}#{postfix}"
end