fastly 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/HISTORY.md +7 -3
- data/README.md +0 -2
- data/bin/fastly_upload_vcl +18 -18
- data/fastly.gemspec +11 -11
- data/lib/ext/curb_fu/response/base.rb +20 -0
- data/lib/fastly.rb +69 -83
- data/lib/fastly/base.rb +9 -9
- data/lib/fastly/belongs_to_service_and_version.rb +9 -14
- data/lib/fastly/cache_setting.rb +32 -34
- data/lib/fastly/client.rb +55 -120
- data/lib/fastly/client/curl.rb +57 -0
- data/lib/fastly/condition.rb +32 -32
- data/lib/fastly/customer.rb +1 -1
- data/lib/fastly/director.rb +4 -4
- data/lib/fastly/fetcher.rb +10 -12
- data/lib/fastly/gem_version.rb +2 -2
- data/lib/fastly/gzip.rb +26 -27
- data/lib/fastly/header.rb +67 -68
- data/lib/fastly/invoice.rb +17 -16
- data/lib/fastly/origin.rb +4 -5
- data/lib/fastly/request_setting.rb +68 -69
- data/lib/fastly/response_object.rb +46 -47
- data/lib/fastly/s3_logging.rb +48 -50
- data/lib/fastly/service.rb +20 -26
- data/lib/fastly/settings.rb +10 -11
- data/lib/fastly/syslog.rb +53 -57
- data/lib/fastly/user.rb +4 -6
- data/lib/fastly/util.rb +1 -0
- data/lib/fastly/version.rb +25 -30
- data/test/admin_test.rb +8 -8
- data/test/api_key_test.rb +20 -39
- data/test/common.rb +64 -66
- data/test/fastly/util_test.rb +1 -0
- data/test/full_login_test.rb +77 -82
- data/test/helper.rb +15 -24
- data/test/missing_api_key_test.rb +1 -1
- data/test/stats_test.rb +42 -50
- metadata +17 -13
data/test/common.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
+
# Common tests
|
1
2
|
module CommonTests
|
2
3
|
def test_creating_service_and_backend
|
3
|
-
name = "fastly-test-service-#{
|
4
|
+
name = "fastly-test-service-#{random_string}"
|
4
5
|
service = @fastly.create_service(:name => name)
|
5
6
|
assert service
|
6
7
|
assert_equal name, service.name
|
@@ -19,40 +20,39 @@ module CommonTests
|
|
19
20
|
default_ttl = settings.settings['general.default_ttl']
|
20
21
|
settings = version.settings
|
21
22
|
assert settings
|
22
|
-
assert_equal
|
23
|
-
assert_equal
|
24
|
-
assert_equal settings.settings['general.default_ttl']
|
23
|
+
assert_equal service.id, settings.service_id
|
24
|
+
assert_equal version.number.to_s, settings.version.to_s
|
25
|
+
assert_equal default_ttl, settings.settings['general.default_ttl']
|
25
26
|
|
26
|
-
settings.settings['general.default_ttl'] = default_ttl =
|
27
|
-
settings.save
|
27
|
+
settings.settings['general.default_ttl'] = default_ttl = '888888888'
|
28
|
+
settings.save!
|
28
29
|
|
29
30
|
settings = version.settings
|
30
|
-
assert_equal settings.settings['general.default_ttl'].to_s
|
31
|
+
assert_equal default_ttl, settings.settings['general.default_ttl'].to_s
|
31
32
|
|
32
33
|
services = @fastly.list_services
|
33
34
|
assert !services.empty?
|
34
35
|
assert !services.select { |s| s.name == name }.empty?
|
35
36
|
|
36
|
-
service = @fastly.search_services(
|
37
|
+
service = @fastly.search_services(:name => name)
|
37
38
|
assert service
|
38
39
|
assert name, service.name
|
39
40
|
|
40
|
-
|
41
|
-
service = @fastly.search_services( :name => name, :version => version.number )
|
41
|
+
service = @fastly.search_services(:name => name, :version => version.number)
|
42
42
|
assert services
|
43
43
|
assert name, service.name
|
44
44
|
|
45
45
|
version2 = @fastly.create_version(:service_id => service.id)
|
46
46
|
assert version2
|
47
|
-
assert_equal
|
47
|
+
assert_equal version.number.to_i + 1, version2.number.to_i
|
48
48
|
|
49
49
|
version3 = version2.clone
|
50
50
|
assert version3
|
51
|
-
assert_equal
|
51
|
+
assert_equal version2.number.to_i + 1, version3.number.to_i
|
52
52
|
|
53
53
|
number = version3.number.to_i
|
54
54
|
|
55
|
-
backend_name = "fastly-test-backend-#{
|
55
|
+
backend_name = "fastly-test-backend-#{random_string}"
|
56
56
|
backend = begin
|
57
57
|
@fastly.create_backend(:service_id => service.id, :version => number, :hostname => 'localhost', :name => backend_name)
|
58
58
|
rescue Fastly::Error
|
@@ -62,7 +62,7 @@ module CommonTests
|
|
62
62
|
backend = @fastly.create_backend(:service_id => service.id, :version => number, :address => '74.125.224.146', :name => backend_name)
|
63
63
|
assert backend
|
64
64
|
assert_equal backend.service_id, service.id
|
65
|
-
#assert_equal backend.ipv4, '74.125.224.146'
|
65
|
+
# assert_equal backend.ipv4, '74.125.224.146'
|
66
66
|
assert_equal backend.address, '74.125.224.146'
|
67
67
|
assert_equal backend.port.to_s, '80'
|
68
68
|
|
@@ -72,92 +72,91 @@ module CommonTests
|
|
72
72
|
backend = @fastly.get_backend(service.id, number, backend_name)
|
73
73
|
|
74
74
|
assert backend
|
75
|
-
assert_equal
|
76
|
-
#assert_equal backend.hostname, 'thegestalt.org'
|
77
|
-
assert_equal backend.port.to_s
|
78
|
-
|
75
|
+
assert_equal 'thegestalt.org', backend.address
|
76
|
+
# assert_equal backend.hostname, 'thegestalt.org'
|
77
|
+
assert_equal '9092', backend.port.to_s
|
79
78
|
|
80
|
-
domain_name = "fastly-test-domain-#{
|
79
|
+
domain_name = "fastly-test-domain-#{random_string}-example.com"
|
81
80
|
domain = @fastly.create_domain(:service_id => service.id, :version => number, :name => domain_name)
|
82
81
|
assert domain
|
83
82
|
assert_equal domain_name, domain.name
|
84
|
-
assert_equal
|
85
|
-
assert_equal
|
86
|
-
assert_equal
|
83
|
+
assert_equal service.id, domain.service.id
|
84
|
+
assert_equal number.to_s, domain.version_number.to_s
|
85
|
+
assert_equal number.to_s, domain.version.number.to_s
|
87
86
|
|
88
|
-
domain.comment =
|
87
|
+
domain.comment = 'Flibbety gibbet'
|
89
88
|
domain.save!
|
90
89
|
domain = @fastly.get_domain(service.id, number, domain_name)
|
91
|
-
assert_equal domain.name
|
92
|
-
assert_equal domain.comment
|
90
|
+
assert_equal domain_name, domain.name
|
91
|
+
assert_equal 'Flibbety gibbet', domain.comment
|
93
92
|
|
94
|
-
director_name = "fastly-test-director-#{
|
93
|
+
director_name = "fastly-test-director-#{random_string}"
|
95
94
|
director = @fastly.create_director(:service_id => service.id, :version => number, :name => director_name)
|
96
95
|
assert director
|
97
96
|
assert_equal director_name, director.name
|
98
|
-
assert_equal
|
99
|
-
assert_equal
|
100
|
-
assert_equal
|
97
|
+
assert_equal service.id, director.service.id
|
98
|
+
assert_equal number.to_s, director.version_number.to_s
|
99
|
+
assert_equal number.to_s, director.version.number.to_s
|
101
100
|
|
102
101
|
assert director.add_backend(backend)
|
103
|
-
generated2 = version3.generated_vcl
|
102
|
+
# generated2 = version3.generated_vcl
|
104
103
|
|
105
|
-
origin_name = "fastly-test-origin-#{
|
104
|
+
origin_name = "fastly-test-origin-#{random_string}"
|
106
105
|
origin = @fastly.create_origin(:service_id => service.id, :version => number, :name => origin_name)
|
107
106
|
assert origin
|
108
107
|
assert_equal origin_name, origin.name
|
109
|
-
assert_equal
|
110
|
-
assert_equal
|
108
|
+
assert_equal service.id, origin.service.id
|
109
|
+
assert_equal number.to_s, origin.version_number.to_s
|
111
110
|
# assert_equal origin.version.number.to_s, number.to_s
|
112
111
|
|
113
|
-
condition_name = "fastly-test-condition-#{
|
112
|
+
condition_name = "fastly-test-condition-#{random_string}"
|
114
113
|
condition_statement = 'req.url ~ "^/foo"'
|
115
|
-
condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => condition_name, :statement => condition_statement, :type =>
|
114
|
+
condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => condition_name, :statement => condition_statement, :type => 'REQUEST')
|
116
115
|
assert condition
|
117
116
|
assert_equal condition_name, condition.name
|
118
117
|
assert_equal condition_statement, condition.statement
|
119
118
|
|
120
119
|
cache_condition_name = "cache-#{condition_name}"
|
121
|
-
cache_condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => cache_condition_name, :statement => condition_statement, :type =>
|
120
|
+
cache_condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => cache_condition_name, :statement => condition_statement, :type => 'CACHE')
|
122
121
|
assert cache_condition
|
123
122
|
assert_equal cache_condition_name, cache_condition.name
|
124
123
|
assert_equal condition_statement, cache_condition.statement
|
125
124
|
|
126
|
-
cache_setting_name = "fastly-cache-setting-#{
|
127
|
-
cache_setting = @fastly.create_cache_setting(
|
125
|
+
cache_setting_name = "fastly-cache-setting-#{random_string}"
|
126
|
+
cache_setting = @fastly.create_cache_setting(:service_id => service.id, :version => number, :name => cache_setting_name, :ttl => 3600, :stale_ttl => 10_001, :cache_condition => cache_condition_name)
|
128
127
|
assert cache_setting
|
129
|
-
assert_equal cache_setting.name
|
130
|
-
assert_equal cache_setting.ttl.to_s
|
131
|
-
assert_equal cache_setting.stale_ttl.to_s
|
132
|
-
assert_equal cache_setting.cache_condition
|
128
|
+
assert_equal cache_setting_name, cache_setting.name
|
129
|
+
assert_equal '3600', cache_setting.ttl.to_s
|
130
|
+
assert_equal '10001', cache_setting.stale_ttl.to_s
|
131
|
+
assert_equal cache_condition_name, cache_setting.cache_condition
|
133
132
|
|
134
|
-
gzip_name = "fastly-test-gzip-#{
|
135
|
-
gzip = @fastly.create_gzip(
|
133
|
+
gzip_name = "fastly-test-gzip-#{random_string}"
|
134
|
+
gzip = @fastly.create_gzip(:service_id => service.id, :version => number, :name => gzip_name, :extensions => 'js css html', :content_types => 'text/html')
|
136
135
|
assert gzip
|
137
136
|
assert_equal gzip_name, gzip.name
|
138
|
-
assert_equal
|
139
|
-
assert_equal
|
137
|
+
assert_equal 'text/html', gzip.content_types
|
138
|
+
assert_equal 'js css html', gzip.extensions
|
140
139
|
|
141
|
-
response_obj_name = "fastly-test-response-obj-#{
|
142
|
-
response_obj = @fastly.create_response_object(
|
140
|
+
response_obj_name = "fastly-test-response-obj-#{random_string}"
|
141
|
+
response_obj = @fastly.create_response_object(:service_id => service.id, :version => number, :name => response_obj_name, :status => 418, :response => "I'm a teapot", :content_type => 'text/plain', :content => 'short and stout')
|
143
142
|
assert response_obj
|
144
143
|
assert_equal response_obj_name, response_obj.name
|
145
|
-
assert_equal 418
|
144
|
+
assert_equal '418', response_obj.status
|
146
145
|
assert_equal "I'm a teapot", response_obj.response
|
147
|
-
assert_equal
|
148
|
-
assert_equal
|
146
|
+
assert_equal 'text/plain', response_obj.content_type
|
147
|
+
assert_equal 'short and stout', response_obj.content
|
149
148
|
|
150
|
-
response_condition_name = "fastly-response-condition-#{
|
151
|
-
response_condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => response_condition_name, :statement => condition_statement, :type =>
|
152
|
-
header_name = "fastly-header-test-#{
|
153
|
-
header = @fastly.create_header(
|
149
|
+
response_condition_name = "fastly-response-condition-#{random_string}"
|
150
|
+
response_condition = @fastly.create_condition(:service_id => service.id, :version => number, :name => response_condition_name, :statement => condition_statement, :type => 'RESPONSE')
|
151
|
+
header_name = "fastly-header-test-#{random_string}"
|
152
|
+
header = @fastly.create_header(:service_id => service.id, :version => number, :name => header_name, :response_condition => response_condition.name, :ignore_if_set => 1, :type => 'response', :dst => 'http.Cache-Control', :src => '"max-age=301"', :priority => 10, :action => 'set')
|
154
153
|
assert header
|
155
|
-
assert_equal header.name
|
156
|
-
assert_equal
|
157
|
-
assert_equal header.ignore_if_set.to_s
|
158
|
-
assert_equal
|
159
|
-
assert_equal
|
160
|
-
assert_equal header.action
|
154
|
+
assert_equal header_name, header.name
|
155
|
+
assert_equal response_condition.name, header.response_condition
|
156
|
+
assert_equal '1', header.ignore_if_set.to_s
|
157
|
+
assert_equal 'http.Cache-Control', header.dst
|
158
|
+
assert_equal '"max-age=301"', header.src
|
159
|
+
assert_equal 'set', header.action
|
161
160
|
|
162
161
|
assert version3.activate!
|
163
162
|
assert version3.deactivate!
|
@@ -186,7 +185,7 @@ module CommonTests
|
|
186
185
|
end
|
187
186
|
|
188
187
|
def test_stats
|
189
|
-
name = "fastly-test-service-#{
|
188
|
+
name = "fastly-test-service-#{random_string}"
|
190
189
|
service = @fastly.create_service(:name => name)
|
191
190
|
assert service
|
192
191
|
assert_equal name, service.name
|
@@ -196,7 +195,7 @@ module CommonTests
|
|
196
195
|
|
197
196
|
begin
|
198
197
|
stats = service.stats
|
199
|
-
rescue Fastly::Error
|
198
|
+
rescue Fastly::Error
|
200
199
|
end
|
201
200
|
assert stats.nil?
|
202
201
|
|
@@ -206,7 +205,7 @@ module CommonTests
|
|
206
205
|
end
|
207
206
|
|
208
207
|
def test_invoices
|
209
|
-
name = "fastly-test-service-#{
|
208
|
+
name = "fastly-test-service-#{random_string}"
|
210
209
|
service = @fastly.create_service(:name => name)
|
211
210
|
assert service
|
212
211
|
assert_equal name, service.name
|
@@ -214,7 +213,7 @@ module CommonTests
|
|
214
213
|
invoice = service.invoice
|
215
214
|
assert invoice
|
216
215
|
assert invoice.regions
|
217
|
-
assert_equal
|
216
|
+
assert_equal service.id, invoice.service_id
|
218
217
|
|
219
218
|
invoice = @fastly.get_invoice
|
220
219
|
assert_equal Fastly::Invoice, invoice.class
|
@@ -231,5 +230,4 @@ module CommonTests
|
|
231
230
|
assert_equal month, invoice.end.month
|
232
231
|
@fastly.delete_service(service)
|
233
232
|
end
|
234
|
-
|
235
233
|
end
|
data/test/fastly/util_test.rb
CHANGED
data/test/full_login_test.rb
CHANGED
@@ -1,95 +1,90 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
3
|
+
# Test username/password login access to user and customer objects
|
4
|
+
class Fastly
|
5
|
+
describe 'FullLoginTest' do
|
6
|
+
let(:opts) { login_opts(:full) }
|
7
|
+
let(:client) { Client.new(opts) }
|
8
|
+
let(:fastly) { Fastly.new(opts) }
|
9
|
+
let(:current_user) { fastly.current_user }
|
10
|
+
let(:current_customer) { fastly.current_customer }
|
11
|
+
|
12
|
+
describe '#current_{user,customer}' do
|
13
|
+
it 'should have access to current user' do
|
14
|
+
assert_instance_of User, current_user
|
15
|
+
assert_equal opts[:user], current_user.login
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should have access to current customer' do
|
19
|
+
assert_instance_of Customer, current_customer
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should have an arbitrary test confirming clearly defined relationships' do
|
23
|
+
assert_equal current_customer.id, current_user.customer.id
|
24
|
+
assert_equal current_user.id, current_customer.owner.id
|
25
|
+
end
|
15
26
|
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_raw_client
|
19
|
-
user = @client.get('/current_user')
|
20
|
-
assert user
|
21
|
-
assert_equal @opts[:user], user['login']
|
22
|
-
assert_equal @opts[:name], user['name']
|
23
|
-
|
24
|
-
customer = @client.get('/current_customer')
|
25
|
-
assert customer
|
26
|
-
assert_equal @opts[:customer], customer['name']
|
27
|
-
end
|
28
27
|
|
28
|
+
describe '#get_user' do
|
29
|
+
let(:user) { fastly.get_user(current_user.id) }
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
assert_equal @opts[:name], user.name
|
35
|
-
|
36
|
-
customer = @fastly.current_customer
|
37
|
-
assert customer
|
38
|
-
assert_equal @opts[:customer], customer.name
|
39
|
-
|
40
|
-
tmp_customer = user.customer
|
41
|
-
assert_equal customer.id, tmp_customer.id
|
42
|
-
|
43
|
-
tmp_user = customer.owner
|
44
|
-
assert tmp_user
|
45
|
-
assert_equal user.id, tmp_user.id
|
46
|
-
end
|
47
|
-
|
31
|
+
it 'should be able to fetch a user' do
|
32
|
+
assert_equal current_user.name, user.name
|
33
|
+
end
|
34
|
+
end
|
48
35
|
|
49
|
-
|
50
|
-
|
51
|
-
assert current_user
|
36
|
+
describe '#get_customer' do
|
37
|
+
let(:customer) { fastly.get_customer(current_customer.id) }
|
52
38
|
|
53
|
-
|
54
|
-
|
55
|
-
|
39
|
+
it 'should be able to fetch a customer' do
|
40
|
+
assert_equal current_customer.name, customer.name
|
41
|
+
end
|
42
|
+
end
|
56
43
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
44
|
+
describe '#create_user' do
|
45
|
+
let(:email) { "fastly-ruby-test-#{random_string}-new@example.com" }
|
46
|
+
let(:user_name) { 'New User' }
|
47
|
+
let(:user) { fastly.create_user(login: email, name: user_name) }
|
48
|
+
|
49
|
+
it 'should create the user we wanted to create' do
|
50
|
+
assert_instance_of User, user
|
51
|
+
assert_equal current_customer.id, user.customer_id
|
52
|
+
assert_equal user_name, user.name
|
53
|
+
assert_equal email, user.login
|
54
|
+
end
|
55
|
+
|
56
|
+
after do
|
57
|
+
fastly.delete_user(user)
|
58
|
+
end
|
59
|
+
end
|
61
60
|
|
62
|
-
|
63
|
-
|
61
|
+
describe '#update_user' do
|
62
|
+
let(:email) { "fastly-ruby-test-#{random_string}-new@example.com" }
|
63
|
+
let(:user_name) { 'New User' }
|
64
|
+
let(:user) { fastly.create_user(login: email, name: user_name) }
|
65
|
+
let(:new_name) { 'New Name' }
|
66
|
+
|
67
|
+
it 'should allow us to update the user' do
|
68
|
+
assert_instance_of User, user
|
69
|
+
user.name = new_name
|
70
|
+
assert_equal new_name, fastly.update_user(user).name
|
71
|
+
end
|
72
|
+
|
73
|
+
after do
|
74
|
+
fastly.delete_user(user)
|
75
|
+
end
|
76
|
+
end
|
64
77
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
78
|
+
describe '#delete_user' do
|
79
|
+
let(:email) { "fastly-ruby-test-#{random_string}-new@example.com" }
|
80
|
+
let(:user_name) { 'New User' }
|
81
|
+
let(:user) { fastly.create_user(login: email, name: user_name) }
|
69
82
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
assert_equal "New User", user.name
|
77
|
-
assert_equal email, user.login
|
78
|
-
|
79
|
-
tmp = @fastly.get_user(user.id)
|
80
|
-
|
81
|
-
assert tmp
|
82
|
-
assert_equal user.id, tmp.id
|
83
|
-
assert_equal user.name, tmp.name
|
84
|
-
|
85
|
-
user.name = "Updated Name"
|
86
|
-
tmp = @fastly.update_user(user)
|
87
|
-
assert tmp
|
88
|
-
assert_equal user.id, tmp.id
|
89
|
-
assert_equal "Updated Name", tmp.name
|
90
|
-
|
91
|
-
assert @fastly.delete_user(user)
|
92
|
-
tmp = @fastly.get_user(user.id)
|
93
|
-
assert_equal nil, tmp
|
83
|
+
it 'should allow us to delete a user' do
|
84
|
+
user_id = user.id
|
85
|
+
assert_equal true, fastly.delete_user(user)
|
86
|
+
assert_equal nil, fastly.get_user(user_id)
|
87
|
+
end
|
88
|
+
end
|
94
89
|
end
|
95
90
|
end
|
data/test/helper.rb
CHANGED
@@ -1,40 +1,31 @@
|
|
1
1
|
require 'common'
|
2
2
|
require 'fastly'
|
3
3
|
require 'minitest/autorun'
|
4
|
+
require 'pry'
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
class Fastly::TestCase < Minitest::Test
|
8
|
-
end
|
9
|
-
else
|
10
|
-
class Fastly::TestCase < MiniTest::Unit::TestCase
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class Fastly::TestCase
|
15
|
-
# Map inconsistency between Test::Unit and Minitest
|
16
|
-
alias :assert_raise :assert_raises
|
6
|
+
class Fastly
|
7
|
+
class TestCase < Minitest::Test; end
|
17
8
|
end
|
18
9
|
|
19
|
-
def login_opts(mode
|
20
|
-
opts = {
|
21
|
-
[:url
|
10
|
+
def login_opts(mode = :full)
|
11
|
+
opts = {}
|
12
|
+
[:url, :port].each do |what|
|
22
13
|
key = "FASTLY_TEST_BASE_#{what.to_s.upcase}"
|
23
|
-
opts["base_#{what}".to_sym] = ENV[key] if ENV.
|
14
|
+
opts["base_#{what}".to_sym] = ENV[key] if ENV.key?(key)
|
24
15
|
end
|
25
16
|
|
26
|
-
required = :full == mode ? [:user, :
|
17
|
+
required = :full == mode ? [:user, :password] : [:api_key]
|
27
18
|
required.each do |what|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
19
|
+
key = "FASTLY_TEST_#{what.to_s.upcase}"
|
20
|
+
unless ENV.key?(key)
|
21
|
+
warn "You haven't set the environment variable #{key}"
|
22
|
+
exit(-1)
|
23
|
+
end
|
24
|
+
opts[what] = ENV[key]
|
34
25
|
end
|
35
26
|
opts
|
36
27
|
end
|
37
28
|
|
38
|
-
def
|
29
|
+
def random_string
|
39
30
|
"#{Process.pid}-#{Time.now.to_i}-#{Kernel.rand(1000)}"
|
40
31
|
end
|