Class: PackageList

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/packagelist.rb

Instance Method Summary collapse

Constructor Details

#initialize(root = '/') ⇒ PackageList

Returns a new instance of PackageList.



24
25
26
27
# File 'lib/packagelist.rb', line 24

def initialize(root = '/')
    @size = 0
    @database = PackageDataBase.new(root)
end

Instance Method Details

#[](n) ⇒ Object



42
43
44
# File 'lib/packagelist.rb', line 42

def [](n)
    instance_variable_get("@a#{n}")
end

#conflict?(variable) ⇒ Boolean

Returns:

  • (Boolean)


73
74
75
76
77
78
# File 'lib/packagelist.rb', line 73

def conflict?(variable)
    for conflict in @database.get_sync_data(variable)['conflicts']
        raise ConflictingEntry,
            "Error:      '#{conflict}' conflicts with '#{variable}'" if include?(conflict)
    end
end

#eachObject



50
51
52
# File 'lib/packagelist.rb', line 50

def each
    0.upto(@size - 1) { |n| yield self[n] }
end

#empty?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/packagelist.rb', line 54

def empty?()
    return true unless (@size > 0)
end

#include?(package) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
61
62
63
# File 'lib/packagelist.rb', line 58

def include?(package)
    for value in self
        return true if (value == package)
    end
    return false
end

#lengthObject



46
47
48
# File 'lib/packagelist.rb', line 46

def length
    @size
end

#push(package) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/packagelist.rb', line 29

def push(package)
    group = []
    repo = @database.get_group_repo(package).to_s
    group = @database.get_repodata(repo)[package].to_a
    if (group.to_a.empty?) and (@database.upgrade?(package))
        deps = @database.get_sync_data(package)['dependencies']
        deps.each { |dependency| push(dependency) }
        set(package)
    else
        group.each { |member| push(member) }
    end
end

#set(variable) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/packagelist.rb', line 65

def set(variable)
    unless (include?(variable))
        conflict?(variable)
        instance_variable_set("@a#{@size}".to_sym, variable)
        @size += 1
    end
end