Parent

Files

POM::Package

Access to PACKAGE (or VERSION) file. The PACKAGE file is a YAML formatted file providing essential information for packaging and library management. A typical example will look like:

---
name: pom
vers: 1.0.0
date: 2010-06-15
code: POM

Constants

STYLES

Attributes

code[RW]

Code name for this package. Only needed if not the default of the name capitalized. For example, activerecord has a code name of ActiveRecord, not Activerecord.

date[R]

Date this version was released.

file[R]

Version file.

name[RW]

Name of package.

nick[RW]

Colorful nick name for the particular version, e.g. “Lucid Lynx”.

path[R]

Internal load paths.

root[R]

Project root.

version[R]

Version number.

Public Class Methods

default_filename() click to toggle source

Default file name.

# File lib/pom/package.rb, line 30
def self.default_filename
  'PACKAGE.yml'
end
filename() click to toggle source

Possible project file names.

# File lib/pom/package.rb, line 35
def self.filename
  ['PACKAGE', '.package', 'VERSION', '.version']
end
new(root, opts={}) click to toggle source
# File lib/pom/package.rb, line 40
def initialize(root, opts={})
  super(root, opts)
end

Public Instance Methods

build() click to toggle source
# File lib/pom/package.rb, line 130
def build
  version.build[SimpleStyle, JewelerStyle, POMStyle]
end
date=(val) click to toggle source
# File lib/pom/package.rb, line 82
def date=(val)
  case val
  when Date, Time, DateTime
    self['date'] = val
  else
    self['date'] = Time.parse(val) if val
  end
end
major() click to toggle source
# File lib/pom/package.rb, line 115
def major
  version.major
end
minor() click to toggle source
# File lib/pom/package.rb, line 120
def minor
  version.minor
end
now!() click to toggle source

Set the date to now.

# File lib/pom/package.rb, line 142
def now!
  self['date'] = Time.now
end
patch() click to toggle source
# File lib/pom/package.rb, line 125
def patch
  version.patch
end
path=(path) click to toggle source
# File lib/pom/package.rb, line 97
def path=(path)
  case path
  when NilClass
    self['path'] = ['lib']
  when String
    self['path'] = path.split(/[,:;\ ]/)
  else
    self['path'] = path.to_a
  end
end
read!() click to toggle source
# File lib/pom/package.rb, line 147
def read!
  if file
    data  = YAML.load(File.new(file))
    style = STYLES.find{ |s| s.match?(data) }
    extend(style)
    parse(data)
  else
    extend POMStyle
  end

  self.name = fallback_name unless self['name']
end
save!(file=nil) click to toggle source

This method is not using to_yaml in order to ensure the file is saved neatly. This may require tweaking.

# File lib/pom/package.rb, line 162
def save!(file=nil)
  file = file || @file || self.class.default_filename
  file = @root + file if String === file

  now!  # update date

  out = render

  File.open(file, 'w'){ |f| f << out }
end
status() click to toggle source

Current status (beta, alpha, pre, rc, etc.)

# File lib/pom/package.rb, line 135
def status
  if md = /(\w+)/.match(build.to_s)
    md[1].to_sym
  end
end
to_s() click to toggle source
# File lib/pom/package.rb, line 174
def to_s
  s = "#{name} #{version}"
  s << " " + date.strftime('%Y-%m-%d') if date
  s << ' "' + nick.to_s + '"'          if nick
  s
end
version=(raw) click to toggle source
# File lib/pom/package.rb, line 54
def version=(raw)
  self['version'] = VersionNumber.new(raw)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.