-
Notifications
You must be signed in to change notification settings - Fork 22
/
iron_io_config.rb
44 lines (40 loc) · 1.15 KB
/
iron_io_config.rb
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
42
43
44
require 'pathname'
module IronWorkerNG
module Feature
class IronIOConfig < IronWorkerNG::Feature::Base
attr_reader :path
attr_reader :dest
def initialize(api, dest)
@path = File.open(Dir.mktmpdir + '/iron.json', 'w') do |f|
f << {
token: api.token,
project_id: api.project_id
}.to_json
end.path
@dest = dest
@dest = Pathname.new(dest).cleanpath.to_s + '/' unless @dest.empty?
end
def bundle(zip)
IronCore::Logger.debug 'IronWorkerNG', 'Bundling iron.io config'
zip.add(@dest + File.basename(@path), @path)
end
end
end
module Code
module Runtime
module Ruby
def iron_io_config(*args)
dest = ''
api = IronWorkerNG::Client.new.api
args.each do |arg|
dest = arg if arg.is_a? String
api = arg.api if arg.is_a? IronWorkerNG::Client
end
IronCore::Logger.info 'IronWorkerNG',
"Merging iron.io config (dest=#{dest})"
@features << Feature::IronIOConfig.new(api, dest)
end
end
end
end
end