-
Notifications
You must be signed in to change notification settings - Fork 22
/
dependency.fy
41 lines (34 loc) · 917 Bytes
/
dependency.fy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class Fancy Package {
class Dependency {
"""
Package Dependency.
Represents a Dependency to another Package with a given version.
"""
read_slots: ('name, 'version)
def initialize: @name version: @version ('latest);
def install {
"""
Installs the Dependency on the System.
"""
Fancy Package install: name version: version
}
}
class RubyDependency {
"""
Same as @Fancy::Package::Dependency@, just for rubygem packages.
"""
read_slots: ('gem_name, 'version)
def initialize: @gem_name version: @version ('latest);
def install {
"""
Installs the RubyDependency (a RubyGem) via rbx -S gem on the system.
"""
match @version {
case 'latest ->
System do: "rbx gem install #{@gem_name}"
case _ ->
System do: "rbx gem install -v=#{@version} #{@gem_name}"
}
}
}
}