39 lines
761 B
Crystal
39 lines
761 B
Crystal
|
|
class Package::Package
|
|
getter recipe : Recipe
|
|
|
|
def initialize(@recipe)
|
|
end
|
|
|
|
macro inherit(attribute)
|
|
@{{attribute.var.id}} : {{attribute.type.id}}?
|
|
|
|
def {{attribute.var.id}} : {{attribute.type.id}}
|
|
@{{attribute.var.id}} || @recipe.{{attribute.var.id}}
|
|
end
|
|
|
|
def {{attribute.var.id}}=(new_value : {{attribute.type.id}})
|
|
@{{attribute.var.id}} = new_value
|
|
end
|
|
end
|
|
|
|
inherit name : String
|
|
inherit version : String
|
|
inherit release : Int32
|
|
|
|
inherit url : String?
|
|
inherit description : String
|
|
|
|
inherit dependencies : Array(String)
|
|
inherit conflicts : Array(String)
|
|
inherit provides : Array(String)
|
|
|
|
# Internals
|
|
inherit fake_root_directory : String
|
|
|
|
def to_s
|
|
"<Package: #{name}-#{version}>"
|
|
end
|
|
end
|
|
|