mortar 0.15.1 → 0.15.2
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.
- data/lib/mortar/local/controller.rb +7 -7
- data/lib/mortar/local/installutil.rb +18 -12
- data/lib/mortar/local/pig.rb +15 -9
- data/lib/mortar/version.rb +1 -1
- data/spec/mortar/command/local_spec.rb +3 -3
- data/spec/mortar/local/controller_spec.rb +3 -3
- data/spec/mortar/local/installutil_spec.rb +28 -0
- data/spec/mortar/local/pig_spec.rb +4 -4
- metadata +161 -152
@@ -113,7 +113,7 @@ EOF
|
|
113
113
|
|
114
114
|
# Main entry point to perform installation and configuration necessary
|
115
115
|
# to run pig on the users local machine
|
116
|
-
def install_and_configure(pig_version=nil)
|
116
|
+
def install_and_configure(pig_version=nil, command=nil)
|
117
117
|
#To support old watchtower plugins we'll accept nil pig_version
|
118
118
|
if pig_version.nil?
|
119
119
|
pig_version = Mortar::PigVersion::Pig09.new
|
@@ -124,7 +124,7 @@ EOF
|
|
124
124
|
end
|
125
125
|
|
126
126
|
pig = Mortar::Local::Pig.new()
|
127
|
-
pig.install_or_update(pig_version)
|
127
|
+
pig.install_or_update(pig_version, command)
|
128
128
|
|
129
129
|
py = Mortar::Local::Python.new()
|
130
130
|
unless py.check_or_install
|
@@ -175,7 +175,7 @@ EOF
|
|
175
175
|
# Main entry point for user running a pig script
|
176
176
|
def run(pig_script, pig_version, pig_parameters)
|
177
177
|
require_aws_keys
|
178
|
-
install_and_configure(pig_version)
|
178
|
+
install_and_configure(pig_version, 'run')
|
179
179
|
pig = Mortar::Local::Pig.new()
|
180
180
|
pig.run_script(pig_script, pig_version, pig_parameters)
|
181
181
|
end
|
@@ -183,25 +183,25 @@ EOF
|
|
183
183
|
# Main entry point for illustrating a pig alias
|
184
184
|
def illustrate(pig_script, pig_alias, pig_version, pig_parameters, skip_pruning, no_browser)
|
185
185
|
require_aws_keys
|
186
|
-
install_and_configure(pig_version)
|
186
|
+
install_and_configure(pig_version, 'illustrate')
|
187
187
|
pig = Mortar::Local::Pig.new()
|
188
188
|
pig.illustrate_alias(pig_script, pig_alias, skip_pruning, no_browser, pig_version, pig_parameters)
|
189
189
|
end
|
190
190
|
|
191
191
|
def validate(pig_script, pig_version, pig_parameters)
|
192
|
-
install_and_configure(pig_version)
|
192
|
+
install_and_configure(pig_version, 'validate')
|
193
193
|
pig = Mortar::Local::Pig.new()
|
194
194
|
pig.validate_script(pig_script, pig_version, pig_parameters)
|
195
195
|
end
|
196
196
|
|
197
197
|
def repl(pig_version, pig_parameters)
|
198
|
-
install_and_configure(pig_version)
|
198
|
+
install_and_configure(pig_version, 'repl')
|
199
199
|
pig = Mortar::Local::Pig.new()
|
200
200
|
pig.launch_repl(pig_version, pig_parameters)
|
201
201
|
end
|
202
202
|
|
203
203
|
def run_luigi(luigi_script, user_script_args)
|
204
|
-
install_and_configure()
|
204
|
+
install_and_configure(nil, 'luigi')
|
205
205
|
py = Mortar::Local::Python.new()
|
206
206
|
py.run_luigi_script(luigi_script, user_script_args)
|
207
207
|
end
|
@@ -39,7 +39,7 @@ module Mortar
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def local_install_directory
|
42
|
-
File.join(project_root, local_install_directory_name)
|
42
|
+
ENV.fetch('MORTAR_LOCAL_DIR', File.join(project_root, local_install_directory_name))
|
43
43
|
end
|
44
44
|
|
45
45
|
def local_log_dir
|
@@ -112,8 +112,8 @@ module Mortar
|
|
112
112
|
end
|
113
113
|
|
114
114
|
# Downloads the file at a specified url into the supplied directory
|
115
|
-
def download_file(url, dest_file_path)
|
116
|
-
response = get_resource(url)
|
115
|
+
def download_file(url, dest_file_path, command=nil)
|
116
|
+
response = get_resource(url, command)
|
117
117
|
|
118
118
|
File.open(dest_file_path, "wb") do |dest_file|
|
119
119
|
dest_file.write(response.body)
|
@@ -122,13 +122,13 @@ module Mortar
|
|
122
122
|
end
|
123
123
|
|
124
124
|
# Perform a get request to a url and follow redirects if necessary.
|
125
|
-
def get_resource(url)
|
126
|
-
make_call(url, 'get')
|
125
|
+
def get_resource(url, command=nil)
|
126
|
+
make_call(url, 'get', 0, 0, command)
|
127
127
|
end
|
128
128
|
|
129
129
|
# Perform a head request to a url and follow redirects if necessary.
|
130
|
-
def head_resource(url)
|
131
|
-
make_call(url, 'head')
|
130
|
+
def head_resource(url, command=nil)
|
131
|
+
make_call(url, 'head', 0, 0, command)
|
132
132
|
end
|
133
133
|
|
134
134
|
# Make a request to a mortar resource url. Check response for a
|
@@ -136,7 +136,7 @@ module Mortar
|
|
136
136
|
# support automatically following redirects. Adds parameter that
|
137
137
|
# checks an environment variable to identify the test making this call
|
138
138
|
# (if being run by a test).
|
139
|
-
def make_call(url, call_func, redirect_times=0, errors=0)
|
139
|
+
def make_call(url, call_func, redirect_times=0, errors=0, command=nil)
|
140
140
|
if redirect_times >= 5
|
141
141
|
raise RuntimeError, "Too many redirects. Last url: #{url}"
|
142
142
|
end
|
@@ -150,6 +150,12 @@ module Mortar
|
|
150
150
|
if test_name
|
151
151
|
query[:test_name] = test_name
|
152
152
|
end
|
153
|
+
if command
|
154
|
+
query[:command] = command
|
155
|
+
if Mortar::Auth.has_credentials
|
156
|
+
query[:user] = Mortar::Auth.user
|
157
|
+
end
|
158
|
+
end
|
153
159
|
|
154
160
|
headers = {'User-Agent' => Mortar::USER_AGENT}
|
155
161
|
if call_func == 'head'
|
@@ -190,21 +196,21 @@ module Mortar
|
|
190
196
|
return Time.httpdate(date_str).to_i
|
191
197
|
end
|
192
198
|
|
193
|
-
def url_date(url)
|
194
|
-
result = head_resource(url)
|
199
|
+
def url_date(url, command=nil)
|
200
|
+
result = head_resource(url, command)
|
195
201
|
http_date_to_epoch(result.get_header('Last-Modified'))
|
196
202
|
end
|
197
203
|
|
198
204
|
# Given a subdirectory where we have installed some software
|
199
205
|
# and a url to the tgz file it's sourced from, check if the
|
200
206
|
# remote version is newer than the installed version
|
201
|
-
def is_newer_version(subdir, url)
|
207
|
+
def is_newer_version(subdir, url, command=nil)
|
202
208
|
existing_install_date = install_date(subdir)
|
203
209
|
if not existing_install_date then
|
204
210
|
# There is no existing install
|
205
211
|
return true
|
206
212
|
end
|
207
|
-
remote_archive_date = url_date(url)
|
213
|
+
remote_archive_date = url_date(url, command)
|
208
214
|
return existing_install_date < remote_archive_date
|
209
215
|
end
|
210
216
|
|
data/lib/mortar/local/pig.rb
CHANGED
@@ -111,20 +111,20 @@ class Mortar::Local::Pig
|
|
111
111
|
|
112
112
|
# Determines if a pig install needs to occur, true if server side
|
113
113
|
# pig tgz is newer than date of the existing install
|
114
|
-
def should_do_pig_update?(pig_version)
|
115
|
-
return is_newer_version(pig_version.name, pig_archive_url(pig_version))
|
114
|
+
def should_do_pig_update?(pig_version, command=nil)
|
115
|
+
return is_newer_version(pig_version.name, pig_archive_url(pig_version), command)
|
116
116
|
end
|
117
117
|
|
118
118
|
def should_do_lib_update?
|
119
119
|
return is_newer_version('lib-common', lib_archive_url)
|
120
120
|
end
|
121
121
|
|
122
|
-
def install_or_update(pig_version)
|
122
|
+
def install_or_update(pig_version, command=nil)
|
123
123
|
if should_do_pig_install?(pig_version)
|
124
124
|
action "Installing #{pig_version.name} to #{local_install_directory_name}" do
|
125
|
-
install_pig(pig_version)
|
125
|
+
install_pig(pig_version, command)
|
126
126
|
end
|
127
|
-
elsif should_do_pig_update?(pig_version)
|
127
|
+
elsif should_do_pig_update?(pig_version, command)
|
128
128
|
action "Updating to latest #{pig_version.name} in #{local_install_directory_name}" do
|
129
129
|
install_pig(pig_version)
|
130
130
|
end
|
@@ -142,7 +142,7 @@ class Mortar::Local::Pig
|
|
142
142
|
end
|
143
143
|
|
144
144
|
# Installs pig for this project if it is not already present
|
145
|
-
def install_pig(pig_version)
|
145
|
+
def install_pig(pig_version, command=nil)
|
146
146
|
#Delete the directory if it already exists to ensure cruft isn't left around.
|
147
147
|
if File.directory? pig_directory(pig_version)
|
148
148
|
FileUtils.rm_rf pig_directory(pig_version)
|
@@ -150,7 +150,7 @@ class Mortar::Local::Pig
|
|
150
150
|
|
151
151
|
FileUtils.mkdir_p(local_install_directory)
|
152
152
|
local_tgz = File.join(local_install_directory, pig_version.tgz_name)
|
153
|
-
download_file(pig_archive_url(pig_version), local_tgz)
|
153
|
+
download_file(pig_archive_url(pig_version), local_tgz, command)
|
154
154
|
extract_tgz(local_tgz, local_install_directory)
|
155
155
|
|
156
156
|
# This has been seening coming out of the tgz w/o +x so we do
|
@@ -366,8 +366,14 @@ class Mortar::Local::Pig
|
|
366
366
|
opts['python.home'] = jython_directory
|
367
367
|
opts['python.path'] = "#{local_install_directory}/../controlscripts/lib:#{local_install_directory}/../vendor/controlscripts/lib"
|
368
368
|
opts['python.cachedir'] = jython_cache_directory
|
369
|
-
|
370
|
-
|
369
|
+
if osx? then
|
370
|
+
opts['java.security.krb5.realm'] = 'OX.AC.UK'
|
371
|
+
opts['java.security.krb5.kdc'] = 'kdc0.ox.ac.uk:kdc1.ox.ac.uk'
|
372
|
+
opts['java.security.krb5.conf'] = '/dev/null'
|
373
|
+
else
|
374
|
+
opts['java.security.krb5.realm'] = ''
|
375
|
+
opts['java.security.krb5.kdc'] = ''
|
376
|
+
end
|
371
377
|
return opts
|
372
378
|
end
|
373
379
|
|
data/lib/mortar/version.rb
CHANGED
@@ -198,7 +198,7 @@ PARAMS
|
|
198
198
|
pigscript = Mortar::Project::PigScript.new(script_name, script_path)
|
199
199
|
mock(Mortar::Project::PigScript).new(script_name, script_path).returns(pigscript)
|
200
200
|
any_instance_of(Mortar::Local::Controller) do |u|
|
201
|
-
mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig09))
|
201
|
+
mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig09), 'validate')
|
202
202
|
end
|
203
203
|
any_instance_of(Mortar::Local::Pig) do |u|
|
204
204
|
mock(u).run_pig_command(" -check #{pigscript.path}", is_a(Mortar::PigVersion::Pig09), [])
|
@@ -216,7 +216,7 @@ PARAMS
|
|
216
216
|
pigscript = Mortar::Project::PigScript.new(script_name, script_path)
|
217
217
|
mock(Mortar::Project::PigScript).new(script_name, script_path).returns(pigscript)
|
218
218
|
any_instance_of(Mortar::Local::Controller) do |u|
|
219
|
-
mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig09))
|
219
|
+
mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig09), 'validate')
|
220
220
|
end
|
221
221
|
any_instance_of(Mortar::Local::Pig) do |u|
|
222
222
|
mock(u).run_pig_command(" -check #{pigscript.path}", is_a(Mortar::PigVersion::Pig09), [])
|
@@ -261,7 +261,7 @@ STDERR
|
|
261
261
|
mock(u).run_luigi_script(luigi_script, %W{--myoption 2 --myotheroption 3})
|
262
262
|
end
|
263
263
|
any_instance_of(Mortar::Local::Controller) do |u|
|
264
|
-
mock(u).install_and_configure
|
264
|
+
mock(u).install_and_configure(nil,'luigi')
|
265
265
|
end
|
266
266
|
stderr, stdout = execute("local:luigi some_luigi_script -p myoption=2 -p myotheroption=3", p)
|
267
267
|
stderr.should == ""
|
@@ -136,7 +136,7 @@ module Mortar::Local
|
|
136
136
|
mock(j).check_install.returns(true)
|
137
137
|
end
|
138
138
|
any_instance_of(Mortar::Local::Pig) do |p|
|
139
|
-
mock(p).install_or_update(is_a(Mortar::PigVersion::Pig09))
|
139
|
+
mock(p).install_or_update(is_a(Mortar::PigVersion::Pig09), nil)
|
140
140
|
end
|
141
141
|
any_instance_of(Mortar::Local::Python) do |p|
|
142
142
|
mock(p).check_or_install.returns(true)
|
@@ -156,7 +156,7 @@ module Mortar::Local
|
|
156
156
|
it "checks for aws keys, checks depenendency installation, runs script" do
|
157
157
|
c = Mortar::Local::Controller.new
|
158
158
|
mock(c).require_aws_keys
|
159
|
-
mock(c).install_and_configure("0.9")
|
159
|
+
mock(c).install_and_configure("0.9", "run")
|
160
160
|
test_script = "foobar-script"
|
161
161
|
the_parameters = []
|
162
162
|
any_instance_of(Mortar::Local::Pig) do |p|
|
@@ -171,7 +171,7 @@ module Mortar::Local
|
|
171
171
|
it "checks for aws keys, checks depenendency installation, runs the illustrate process" do
|
172
172
|
c = Mortar::Local::Controller.new
|
173
173
|
mock(c).require_aws_keys
|
174
|
-
mock(c).install_and_configure("0.9")
|
174
|
+
mock(c).install_and_configure("0.9", "illustrate")
|
175
175
|
test_script = "foobar-script"
|
176
176
|
script_alias = "some_alias"
|
177
177
|
prune = false
|
@@ -31,6 +31,34 @@ module Mortar::Local
|
|
31
31
|
@installutil.extend(Mortar::Local::InstallUtil)
|
32
32
|
end
|
33
33
|
|
34
|
+
context("install directory") do
|
35
|
+
@old_local_dir = nil
|
36
|
+
|
37
|
+
before(:each) do
|
38
|
+
if ENV.has_key?('MORTAR_LOCAL_DIR')
|
39
|
+
@old_local_dir = ENV['MORTAR_LOCAL_DIR']
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
after(:all) do
|
44
|
+
if nil != @old_local_dir
|
45
|
+
ENV['MORTAR_LOCAL_DIR'] = @old_local_dir
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
it "Uses Environment override if specified" do
|
50
|
+
ENV['MORTAR_LOCAL_DIR'] = "/tmp/mortar-local"
|
51
|
+
expect(@installutil.local_install_directory).to eq("/tmp/mortar-local")
|
52
|
+
end
|
53
|
+
|
54
|
+
it "Uses the default project directory otherwise" do
|
55
|
+
ENV.delete('MORTAR_LOCAL_DIR')
|
56
|
+
with_blank_project do |p|
|
57
|
+
expect(@installutil.local_install_directory).to eq("#{p.root_path}/.mortar-local")
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
34
62
|
context("install_date") do
|
35
63
|
|
36
64
|
it "nil if never installed" do
|
@@ -37,7 +37,7 @@ module Mortar::Local
|
|
37
37
|
pig = Mortar::Local::Pig.new
|
38
38
|
pig09 = Mortar::PigVersion::Pig09.new
|
39
39
|
local_pig_archive = File.join(pig.local_install_directory, pig09.tgz_name)
|
40
|
-
mock(pig).download_file(pig.pig_archive_url(pig09), local_pig_archive) do
|
40
|
+
mock(pig).download_file(pig.pig_archive_url(pig09), local_pig_archive, nil) do
|
41
41
|
# Simulate the tgz file being downloaded, this should be deleted
|
42
42
|
# before the method finishes executing
|
43
43
|
FileUtils.touch(local_pig_archive)
|
@@ -64,7 +64,7 @@ module Mortar::Local
|
|
64
64
|
pig09 = Mortar::PigVersion::Pig09.new
|
65
65
|
|
66
66
|
mock(pig).should_do_pig_install?(pig09).returns(false)
|
67
|
-
mock(pig).should_do_pig_update?(pig09).returns(false)
|
67
|
+
mock(pig).should_do_pig_update?(pig09, nil).returns(false)
|
68
68
|
mock(pig).should_do_lib_install?.returns(false)
|
69
69
|
mock(pig).should_do_lib_update?.returns(false)
|
70
70
|
FakeFS do
|
@@ -84,7 +84,7 @@ module Mortar::Local
|
|
84
84
|
mock(pig).should_do_pig_install?(pig09).returns(true)
|
85
85
|
mock(pig).should_do_lib_install?.returns(true)
|
86
86
|
|
87
|
-
mock(pig).install_pig(pig09)
|
87
|
+
mock(pig).install_pig(pig09, nil)
|
88
88
|
mock(pig).install_lib
|
89
89
|
capture_stdout do
|
90
90
|
pig.install_or_update(pig09)
|
@@ -96,7 +96,7 @@ module Mortar::Local
|
|
96
96
|
pig09 = Mortar::PigVersion::Pig09.new
|
97
97
|
|
98
98
|
mock(pig).should_do_pig_install?(pig09).returns(false)
|
99
|
-
mock(pig).should_do_pig_update?(pig09).returns(true)
|
99
|
+
mock(pig).should_do_pig_update?(pig09, nil).returns(true)
|
100
100
|
mock(pig).should_do_lib_install?.returns(false)
|
101
101
|
mock(pig).should_do_lib_update?.returns(true)
|
102
102
|
mock(pig).install_pig(pig09)
|
metadata
CHANGED
@@ -1,199 +1,196 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mortar
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 39
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 15
|
9
|
+
- 2
|
10
|
+
version: 0.15.2
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Mortar Data
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2014-03-11 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: rdoc
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 4.0.0
|
22
|
-
type: :runtime
|
23
22
|
prerelease: false
|
24
|
-
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
24
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 63
|
29
|
+
segments:
|
30
|
+
- 4
|
31
|
+
- 0
|
32
|
+
- 0
|
29
33
|
version: 4.0.0
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: mortar-api-ruby
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ~>
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 0.8.0
|
38
34
|
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: mortar-api-ruby
|
39
38
|
prerelease: false
|
40
|
-
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
41
|
+
requirements:
|
43
42
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 63
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 8
|
48
|
+
- 0
|
45
49
|
version: 0.8.0
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: netrc
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0.7'
|
54
50
|
type: :runtime
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: netrc
|
55
54
|
prerelease: false
|
56
|
-
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0.7'
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: launchy
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
65
56
|
none: false
|
66
|
-
requirements:
|
57
|
+
requirements:
|
67
58
|
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 5
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
- 7
|
64
|
+
version: "0.7"
|
70
65
|
type: :runtime
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: launchy
|
71
69
|
prerelease: false
|
72
|
-
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
71
|
none: false
|
74
|
-
requirements:
|
72
|
+
requirements:
|
75
73
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
requirements:
|
83
|
-
- - ~>
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: 1.0.2
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 1
|
76
|
+
segments:
|
77
|
+
- 2
|
78
|
+
- 1
|
79
|
+
version: "2.1"
|
86
80
|
type: :runtime
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: parseconfig
|
87
84
|
prerelease: false
|
88
|
-
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
89
86
|
none: false
|
90
|
-
requirements:
|
87
|
+
requirements:
|
91
88
|
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 19
|
91
|
+
segments:
|
92
|
+
- 1
|
93
|
+
- 0
|
94
|
+
- 2
|
93
95
|
version: 1.0.2
|
94
|
-
|
96
|
+
type: :runtime
|
97
|
+
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
95
99
|
name: excon
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ~>
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0.28'
|
102
|
-
type: :development
|
103
100
|
prerelease: false
|
104
|
-
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0.28'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: fakefs
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
113
102
|
none: false
|
114
|
-
requirements:
|
103
|
+
requirements:
|
115
104
|
- - ~>
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
hash: 51
|
107
|
+
segments:
|
108
|
+
- 0
|
109
|
+
- 28
|
110
|
+
version: "0.28"
|
118
111
|
type: :development
|
112
|
+
version_requirements: *id006
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: fakefs
|
119
115
|
prerelease: false
|
120
|
-
|
116
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
121
117
|
none: false
|
122
|
-
requirements:
|
118
|
+
requirements:
|
123
119
|
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
hash: 11
|
122
|
+
segments:
|
123
|
+
- 0
|
124
|
+
- 4
|
125
|
+
- 2
|
125
126
|
version: 0.4.2
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: gem-release
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ! '>='
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '0'
|
134
127
|
type: :development
|
128
|
+
version_requirements: *id007
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: gem-release
|
135
131
|
prerelease: false
|
136
|
-
|
132
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
137
133
|
none: false
|
138
|
-
requirements:
|
139
|
-
- -
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
none: false
|
146
|
-
requirements:
|
147
|
-
- - ! '>='
|
148
|
-
- !ruby/object:Gem::Version
|
149
|
-
version: '0'
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
hash: 3
|
138
|
+
segments:
|
139
|
+
- 0
|
140
|
+
version: "0"
|
150
141
|
type: :development
|
142
|
+
version_requirements: *id008
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: rake
|
151
145
|
prerelease: false
|
152
|
-
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - ! '>='
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '0'
|
158
|
-
- !ruby/object:Gem::Dependency
|
159
|
-
name: rr
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
146
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
161
147
|
none: false
|
162
|
-
requirements:
|
163
|
-
- -
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
hash: 3
|
152
|
+
segments:
|
153
|
+
- 0
|
154
|
+
version: "0"
|
166
155
|
type: :development
|
156
|
+
version_requirements: *id009
|
157
|
+
- !ruby/object:Gem::Dependency
|
158
|
+
name: rr
|
167
159
|
prerelease: false
|
168
|
-
|
169
|
-
none: false
|
170
|
-
requirements:
|
171
|
-
- - ! '>='
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
174
|
-
- !ruby/object:Gem::Dependency
|
175
|
-
name: rspec
|
176
|
-
requirement: !ruby/object:Gem::Requirement
|
160
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
177
161
|
none: false
|
178
|
-
requirements:
|
179
|
-
- -
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
hash: 3
|
166
|
+
segments:
|
167
|
+
- 0
|
168
|
+
version: "0"
|
182
169
|
type: :development
|
170
|
+
version_requirements: *id010
|
171
|
+
- !ruby/object:Gem::Dependency
|
172
|
+
name: rspec
|
183
173
|
prerelease: false
|
184
|
-
|
174
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
185
175
|
none: false
|
186
|
-
requirements:
|
187
|
-
- -
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
hash: 3
|
180
|
+
segments:
|
181
|
+
- 0
|
182
|
+
version: "0"
|
183
|
+
type: :development
|
184
|
+
version_requirements: *id011
|
190
185
|
description: Client library and command-line tool to interact with the Mortar service.
|
191
186
|
email: support@mortardata.com
|
192
|
-
executables:
|
187
|
+
executables:
|
193
188
|
- mortar
|
194
189
|
extensions: []
|
190
|
+
|
195
191
|
extra_rdoc_files: []
|
196
|
-
|
192
|
+
|
193
|
+
files:
|
197
194
|
- README.md
|
198
195
|
- bin/mortar
|
199
196
|
- css/illustrate.css
|
@@ -322,26 +319,38 @@ files:
|
|
322
319
|
- spec/support/display_message_matcher.rb
|
323
320
|
homepage: http://mortardata.com/
|
324
321
|
licenses: []
|
322
|
+
|
325
323
|
post_install_message:
|
326
324
|
rdoc_options: []
|
327
|
-
|
325
|
+
|
326
|
+
require_paths:
|
328
327
|
- lib
|
329
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
328
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
330
329
|
none: false
|
331
|
-
requirements:
|
332
|
-
- -
|
333
|
-
- !ruby/object:Gem::Version
|
330
|
+
requirements:
|
331
|
+
- - ">="
|
332
|
+
- !ruby/object:Gem::Version
|
333
|
+
hash: 57
|
334
|
+
segments:
|
335
|
+
- 1
|
336
|
+
- 8
|
337
|
+
- 7
|
334
338
|
version: 1.8.7
|
335
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
339
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
336
340
|
none: false
|
337
|
-
requirements:
|
338
|
-
- -
|
339
|
-
- !ruby/object:Gem::Version
|
340
|
-
|
341
|
+
requirements:
|
342
|
+
- - ">="
|
343
|
+
- !ruby/object:Gem::Version
|
344
|
+
hash: 3
|
345
|
+
segments:
|
346
|
+
- 0
|
347
|
+
version: "0"
|
341
348
|
requirements: []
|
349
|
+
|
342
350
|
rubyforge_project:
|
343
|
-
rubygems_version: 1.8.
|
351
|
+
rubygems_version: 1.8.24
|
344
352
|
signing_key:
|
345
353
|
specification_version: 3
|
346
354
|
summary: Client library and CLI to interact with the Mortar service.
|
347
355
|
test_files: []
|
356
|
+
|