Class: PackageCloud::Repository
- Inherits:
-
Object
- Object
- Object
- PackageCloud::Repository
show all
- Defined in:
- lib/package_cloud/repository.rb
Instance Method Summary
collapse
Methods inherited from Object
#method_missing, #respond_to?
Constructor Details
#initialize(attrs, config) ⇒ Repository
Returns a new instance of Repository.
3
4
5
6
|
# File 'lib/package_cloud/repository.rb', line 3
def initialize(attrs, config)
@attrs = attrs
@config = config
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class PackageCloud::Object
Instance Method Details
#create_master_token(name) ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/package_cloud/repository.rb', line 64
def create_master_token(name)
url = @config.base_url + paths["create_master_token"]
begin
resp = RestClient.post(url, :master_token => {:name => name})
resp = JSON.parse(resp)
rescue RestClient::UnprocessableEntity => e
print "error:\n".red
json = JSON.parse(e.response)
json.each do |k,v|
puts "\n\t#{k}: #{v.join(", ")}\n"
end
puts ""
exit(1)
end
resp
end
|
#create_package(file_path, dist_id, files = nil, filetype = nil) ⇒ Object
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/package_cloud/repository.rb', line 32
def create_package(file_path, dist_id, files=nil, filetype=nil)
file_data = File.new(file_path, 'rb')
base_url = @config.base_url
url = base_url + paths["create_package"]
params = { :package_file => file_data,
:distro_version_id => dist_id }
if filetype == "dsc"
file_ios = files.inject([]) do |memo, f|
memo << File.new(f, 'rb')
end
params.merge!({:source_files => file_ios})
end
RestClient::Request.execute(:method => 'post',
:url => url,
:timeout => -1,
:payload => { :package => params })
print "success!\n".green
end
|
#install_script(type) ⇒ Object
53
54
55
56
|
# File 'lib/package_cloud/repository.rb', line 53
def install_script(type)
url = urls["install_script"].gsub(/:package_type/, type)
RestClient.get(url)
end
|
#master_tokens ⇒ Object
58
59
60
61
62
|
# File 'lib/package_cloud/repository.rb', line 58
def master_tokens
url = @config.base_url + paths["master_tokens"]
attrs = JSON.parse(RestClient.get(url))
attrs.map { |a| MasterToken.new(a, @config) }
end
|
#parse_dsc(dsc_path, dist_id) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/package_cloud/repository.rb', line 8
def parse_dsc(dsc_path, dist_id)
file_data = File.new(dsc_path, 'rb')
base_url = @config.base_url
url = base_url + paths["package_contents"]
begin
resp = RestClient::Request.execute(:method => 'post',
:url => url,
:timeout => -1,
:payload => { :package => {:package_file => file_data,
:distro_version_id => dist_id}})
resp = JSON.parse(resp)
print "success!\n"
resp["files"]
rescue RestClient::UnprocessableEntity => e
print "error:\n".red
json = JSON.parse(e.response)
json.each do |k,v|
puts "\n\t#{k}: #{v.join(", ")}\n"
end
puts ""
exit(1)
end
end
|
#private_human ⇒ Object
96
97
98
|
# File 'lib/package_cloud/repository.rb', line 96
def private_human
send(:private) ? "private".red : "public".green
end
|
#yank(dist, package_name) ⇒ Object
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/package_cloud/repository.rb', line 81
def yank(dist, package_name)
url = @config.base_url + paths["self"] + "/" + [dist, package_name].compact.join("/")
begin
RestClient.delete(url)
rescue RestClient::ResourceNotFound => e
print "error:\n".red
json = JSON.parse(e.response)
json.each do |k,v|
puts "\n\t#{k}: #{v.join(", ")}\n"
end
puts ""
exit(1)
end
end
|