class FPM::Package::Docker::Node
@api private
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fpm/package/docker.rb, line 105 def initialize super(Hash.new{|hsh,key| hsh[key] = Node.new },nil) end
read(enum)
click to toggle source
# File lib/fpm/package/docker.rb, line 200 def self.read(enum) fs = Node.new enum.each do |ch| n = fs ch['Path'].split('/').each do |part| n = n[part] end n.kind = ch['Kind'] end return fs end
Public Instance Methods
[](name)
click to toggle source
# File lib/fpm/package/docker.rb, line 109 def [](name) children[name] end
contains_leaves?()
click to toggle source
# File lib/fpm/package/docker.rb, line 129 def contains_leaves? children.any?{|_,c| c.leaf? } end
delete(path)
click to toggle source
# File lib/fpm/package/docker.rb, line 191 def delete(path) _, key, rest = path.split('/',3) if rest.nil? children.delete(key) else children[key].delete("/#{rest}") end end
leaf?()
click to toggle source
# File lib/fpm/package/docker.rb, line 113 def leaf? children.none? end
leaves(prefix = '/') { |prefix, false| ... }
click to toggle source
# File lib/fpm/package/docker.rb, line 117 def leaves(prefix = '/', &block) return to_enum(:leaves, prefix) unless block if leaf? yield prefix, false else children.each do |name, cld| cld.leaves( File.join(prefix,name), &block ) end end return self end
modified_leaves(prefix = '/') { |kind, prefix| ... }
click to toggle source
# File lib/fpm/package/docker.rb, line 133 def modified_leaves(prefix = '/', &block) return to_enum(:modified_leaves, prefix) unless block if leaf? if kind != CREATED yield kind, prefix end else children.each do |name, cld| cld.modified_leaves( File.join(prefix,name), &block) end end end
reject!(prefix = '/') { |p| ... }
click to toggle source
# File lib/fpm/package/docker.rb, line 179 def reject!(prefix = '/', &block) children.reject! do |name, cld| p = File.join(prefix,name) if yield p true else cld.reject!(p,&block) false end end end
remove_modified_leaves!(changes_to_remove, prefix = '/') { |kind, join| ... }
click to toggle source
# File lib/fpm/package/docker.rb, line 146 def remove_modified_leaves!(changes_to_remove, prefix = '/', &block) to_remove = {} children.each do |name, cld| removed_children = cld.remove_modified_leaves!(changes_to_remove, File.join(prefix,name), &block) if cld.leaf? && changes_to_remove.include?(cld.kind) to_remove[name] = [cld.kind, removed_children] end end if to_remove.any? to_remove.each do |name, (kind, removed_children)| children.delete(name) if !removed_children yield kind, File.join(prefix,name) end end return true end return false end
smallest_superset(prefix = '/') { |prefix| ... }
click to toggle source
# File lib/fpm/package/docker.rb, line 166 def smallest_superset(prefix = '/', &block) return to_enum(:smallest_superset, prefix) unless block if leaf? return elsif contains_leaves? yield prefix else children.each do |name, cld| cld.smallest_superset( File.join(prefix,name), &block) end end end