class Protopack::Package

Attributes

authors[RW]
description[RW]
item_files[RW]
name[RW]
root[RW]
title[RW]

Public Class Methods

all() click to toggle source
# File lib/protopack/package.rb, line 47
def self.all
  Dir.glob("#{config_root}/*/package-config.yml").map { |pkg_cfg|
    cfg = YAML.load(File.read(pkg_cfg))
    root = File.dirname pkg_cfg
    cfg["item_files"] = Dir.glob("#{root}/*item*.yml")
    cfg["root"] = root
    new cfg
  }
end
config_root() click to toggle source
# File lib/protopack/package.rb, line 43
def self.config_root
  @@config_root
end
config_root=(root) click to toggle source
# File lib/protopack/package.rb, line 39
def self.config_root= root
  @@config_root = root
end
find(name) click to toggle source
# File lib/protopack/package.rb, line 57
def self.find name
  root = "#{config_root}/#{name}"
  cfg = YAML.load(File.read("#{root}/package-config.yml"))
  cfg["item_files"] = Dir.glob("#{root}/*item*.yml")
  cfg["root"] = root
  new cfg
end

Public Instance Methods

apply_all() { |i| ... } click to toggle source
# File lib/protopack/package.rb, line 26
def apply_all
  items = sorted_items
  items = items.select { |i| yield i } if block_given?
  items.each(&:apply!)
end
apply_missing() { |i| ... } click to toggle source
# File lib/protopack/package.rb, line 20
def apply_missing
  items = sorted_items.select(&:missing?)
  items = items.select { |i| yield i } if block_given?
  items.each(&:apply!)
end
item(id) click to toggle source
# File lib/protopack/package.rb, line 14
def item id
  items.each do |item|
    return item if (item.id == id)
  end
end
items() click to toggle source
# File lib/protopack/package.rb, line 10
def items
  item_files.map { |item_file| Protopack::PackageItem.load(item_file) }
end
sorted_items() click to toggle source
# File lib/protopack/package.rb, line 32
def sorted_items
  items.sort { |a, b|
    a, b = a.ordinal, b.ordinal
    a ? (b ? a <=> b : -1) : (b ? 1 : 0)
  }
end