mortar 0.6.2 → 0.7.0
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/auth.rb +4 -0
- data/lib/mortar/command/base.rb +16 -0
- data/lib/mortar/command/describe.rb +7 -1
- data/lib/mortar/command/help.rb +1 -22
- data/lib/mortar/command/illustrate.rb +8 -3
- data/lib/mortar/command/jobs.rb +41 -14
- data/lib/mortar/command/local.rb +87 -0
- data/lib/mortar/command/projects.rb +12 -11
- data/lib/mortar/command/validate.rb +6 -1
- data/lib/mortar/helpers.rb +12 -0
- data/lib/mortar/local/controller.rb +108 -0
- data/lib/mortar/local/installutil.rb +94 -0
- data/lib/mortar/local/java.rb +48 -0
- data/lib/mortar/local/pig.rb +309 -0
- data/lib/mortar/local/python.rb +184 -0
- data/lib/mortar/project.rb +35 -9
- data/lib/mortar/templates/project/gitignore +3 -1
- data/lib/mortar/templates/report/illustrate-report.html +96 -0
- data/lib/mortar/templates/script/runpig.sh +23 -0
- data/lib/mortar/version.rb +1 -1
- data/spec/mortar/auth_spec.rb +8 -0
- data/spec/mortar/command/describe_spec.rb +14 -1
- data/spec/mortar/command/illustrate_spec.rb +14 -1
- data/spec/mortar/command/jobs_spec.rb +125 -7
- data/spec/mortar/command/local_spec.rb +144 -0
- data/spec/mortar/command/validate_spec.rb +14 -1
- data/spec/mortar/local/controller_spec.rb +102 -0
- data/spec/mortar/local/installutil_spec.rb +70 -0
- data/spec/mortar/local/java_spec.rb +62 -0
- data/spec/mortar/local/pig_spec.rb +157 -0
- data/spec/mortar/project_spec.rb +11 -0
- data/spec/spec_helper.rb +1 -0
- metadata +152 -130
@@ -0,0 +1,70 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2012 Mortar Data Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'spec_helper'
|
18
|
+
require 'fakefs/spec_helpers'
|
19
|
+
require 'mortar/local/installutil'
|
20
|
+
require 'launchy'
|
21
|
+
|
22
|
+
module Mortar::Local
|
23
|
+
describe InstallUtil do
|
24
|
+
include FakeFS::SpecHelpers
|
25
|
+
|
26
|
+
class InstallUtilClass
|
27
|
+
end
|
28
|
+
|
29
|
+
before(:each) do
|
30
|
+
@installutil = InstallUtilClass.new
|
31
|
+
@installutil.extend(Mortar::Local::InstallUtil)
|
32
|
+
end
|
33
|
+
|
34
|
+
context("install_date") do
|
35
|
+
|
36
|
+
it "nil if never installed" do
|
37
|
+
expect(@installutil.install_date('foo')).to be_nil
|
38
|
+
end
|
39
|
+
|
40
|
+
it "contents of file if present, converted to int" do
|
41
|
+
install_file_path = @installutil.install_file_for("foo")
|
42
|
+
install_date = 123456
|
43
|
+
FakeFS do
|
44
|
+
FileUtils.mkdir_p(File.dirname(install_file_path))
|
45
|
+
File.open(install_file_path, "w") do |file|
|
46
|
+
file.puts(install_date.to_s)
|
47
|
+
end
|
48
|
+
expect(@installutil.install_date('foo')).to eq(install_date)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
context("note-install") do
|
55
|
+
|
56
|
+
it "creates a file in the directory with the current time" do
|
57
|
+
install_file_path = @installutil.install_file_for("foo")
|
58
|
+
current_date = 123456
|
59
|
+
stub(Time).now.returns(current_date)
|
60
|
+
FakeFS do
|
61
|
+
FileUtils.mkdir_p(File.dirname(install_file_path))
|
62
|
+
@installutil.note_install("foo")
|
63
|
+
expect(File.exists?(install_file_path)).to be_true
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2012 Mortar Data Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'spec_helper'
|
18
|
+
require 'fakefs/spec_helpers'
|
19
|
+
require 'mortar/local/java'
|
20
|
+
require 'launchy'
|
21
|
+
|
22
|
+
|
23
|
+
class Mortar::Local::Java
|
24
|
+
attr_reader :command
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
module Mortar::Local
|
29
|
+
describe Java do
|
30
|
+
|
31
|
+
context("check_install") do
|
32
|
+
|
33
|
+
it "sets java command if JAVA_HOME is present and exists" do
|
34
|
+
java_home = "/foo/bar/jvm"
|
35
|
+
ENV['JAVA_HOME'] = java_home
|
36
|
+
j = Mortar::Local::Java.new
|
37
|
+
FakeFS do
|
38
|
+
FileUtils.mkdir_p(java_home + "/bin")
|
39
|
+
FileUtils.touch(java_home + "/bin/java")
|
40
|
+
j.check_install
|
41
|
+
expect(j.command).to eq("/foo/bar/jvm/bin/java")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it "calls java_home if present and no JAVA_HOME" do
|
46
|
+
ENV.delete('JAVA_HOME')
|
47
|
+
j = Mortar::Local::Java.new
|
48
|
+
exec_path = "/usr/libexec/java_home"
|
49
|
+
FakeFS do
|
50
|
+
FileUtils.mkdir_p(File.dirname(exec_path))
|
51
|
+
FileUtils.touch(exec_path)
|
52
|
+
mock(j).run_java_home.returns("/foo/bar/other-jvm")
|
53
|
+
j.check_install
|
54
|
+
expect(j.command).to eq("/foo/bar/other-jvm/bin/java")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2012 Mortar Data Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'spec_helper'
|
18
|
+
require 'fakefs/spec_helpers'
|
19
|
+
require 'mortar/local/pig'
|
20
|
+
require 'launchy'
|
21
|
+
|
22
|
+
|
23
|
+
class Mortar::Local::Pig
|
24
|
+
attr_reader :command
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
module Mortar::Local
|
29
|
+
describe Pig do
|
30
|
+
|
31
|
+
context("install") do
|
32
|
+
|
33
|
+
it "does nothing if told not to" do
|
34
|
+
pig = Mortar::Local::Pig.new
|
35
|
+
mock(pig).should_do_pig_install?.returns(false)
|
36
|
+
FakeFS do
|
37
|
+
FileUtils.mkdir_p(File.dirname(pig.local_install_directory))
|
38
|
+
FileUtils.rm_rf(pig.local_install_directory, :force => true)
|
39
|
+
pig.install
|
40
|
+
expect(File.exists?(pig.local_install_directory)).to be_false
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
it "handles necessary installation steps" do
|
45
|
+
# creates the parent directory, downloads the tgz, extracts it,
|
46
|
+
# chmods bin/pig, removes tgz, and notes the installation
|
47
|
+
FakeFS do
|
48
|
+
pig = Mortar::Local::Pig.new
|
49
|
+
local_pig_archive = File.join(pig.local_install_directory, pig.pig_archive_file)
|
50
|
+
mock(pig).should_do_pig_install?.returns(true)
|
51
|
+
mock(pig).download_file(pig.pig_archive_url, pig.local_install_directory) do
|
52
|
+
# Simulate the tgz file being downloaded, this should be deleted
|
53
|
+
# before the method finishes executing
|
54
|
+
FileUtils.touch(local_pig_archive)
|
55
|
+
end
|
56
|
+
mock(pig).extract_tgz(local_pig_archive, pig.local_install_directory)
|
57
|
+
mock(pig).note_install("pig")
|
58
|
+
begin
|
59
|
+
previous_stdout, $stdout = $stdout, StringIO.new
|
60
|
+
pig.install
|
61
|
+
ensure
|
62
|
+
$stdout = previous_stdout
|
63
|
+
end
|
64
|
+
expect(File.exists?(local_pig_archive)).to be_false
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
context "show_illustrate_output" do
|
71
|
+
|
72
|
+
it "takes a path to a json file, renders the html template, and opens it" do
|
73
|
+
fake_illustrate_data = {
|
74
|
+
"tables" => [
|
75
|
+
{
|
76
|
+
"Op" => "LOStore",
|
77
|
+
"alias" => "some_relation",
|
78
|
+
"notices" => ["things are fouled up", "no just kidding, it's fine"],
|
79
|
+
"fields" => ["person_id", "first_name", "last_name"],
|
80
|
+
"data" => [
|
81
|
+
["1", "mike", "jones"],
|
82
|
+
["2", "cleopatra", "jones"],
|
83
|
+
["3", "john paul", "jones"],
|
84
|
+
],
|
85
|
+
},
|
86
|
+
],
|
87
|
+
"udf_output" => "hey, I'm a udf",
|
88
|
+
}
|
89
|
+
pig = Mortar::Local::Pig.new
|
90
|
+
template_location = pig.resource_locations["illustrate_template"]
|
91
|
+
template_contents = File.read(template_location)
|
92
|
+
output_path = pig.resource_destinations["illustrate_html"]
|
93
|
+
mock(pig).decode_illustrate_input_file("foo/bar/file.json").returns(fake_illustrate_data)
|
94
|
+
|
95
|
+
# TODO: test that these files are copied
|
96
|
+
["illustrate_css",
|
97
|
+
"jquery", "jquery_transit", "jquery_stylestack",
|
98
|
+
"mortar_table", "zeroclipboard", "zeroclipboard_swf"].each { |resource|
|
99
|
+
mock(pig).copy_if_not_present_at_dest.with(
|
100
|
+
File.expand_path(pig.resource_locations[resource]),
|
101
|
+
pig.resource_destinations[resource]
|
102
|
+
).returns(nil)
|
103
|
+
}
|
104
|
+
|
105
|
+
mock(Launchy).open(File.expand_path(output_path))
|
106
|
+
FakeFS do
|
107
|
+
FileUtils.mkdir_p(File.dirname(template_location))
|
108
|
+
File.open(template_location, 'w') { |f| f.write(template_contents) }
|
109
|
+
begin
|
110
|
+
previous_stdout, $stdout = $stdout, StringIO.new
|
111
|
+
pig.show_illustrate_output("foo/bar/file.json")
|
112
|
+
ensure
|
113
|
+
$stdout = previous_stdout
|
114
|
+
end
|
115
|
+
expect(File.exists?(output_path)).to be_true
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
end
|
120
|
+
|
121
|
+
context "decode_illustrate_input_file" do
|
122
|
+
|
123
|
+
it "decodes the contents of the file" do
|
124
|
+
json = %{[{"alias": "some_relation", "Op": "LOStore"}]}
|
125
|
+
expected_data = [ {
|
126
|
+
"Op" => "LOStore",
|
127
|
+
"alias" => "some_relation",
|
128
|
+
}
|
129
|
+
]
|
130
|
+
pig = Mortar::Local::Pig.new
|
131
|
+
illustrate_output_file = 'illustrate-output.json'
|
132
|
+
FakeFS do
|
133
|
+
File.open(illustrate_output_file, 'w') { |f| f.write(json) }
|
134
|
+
actual_data = pig.decode_illustrate_input_file(illustrate_output_file)
|
135
|
+
expect(actual_data).to eq(expected_data)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
it "handles invalid unicode characters" do
|
140
|
+
json = %{{"tables": [ "hi \255"], "udf_output": [ ]}}
|
141
|
+
expected_data = {
|
142
|
+
'tables' => ['hi '],
|
143
|
+
'udf_output' => [],
|
144
|
+
}
|
145
|
+
pig = Mortar::Local::Pig.new
|
146
|
+
illustrate_output_file = 'illustrate-output.json'
|
147
|
+
FakeFS do
|
148
|
+
File.open(illustrate_output_file, 'w') { |f| f.write(json) }
|
149
|
+
actual_data = pig.decode_illustrate_input_file(illustrate_output_file)
|
150
|
+
expect(actual_data).to eq(expected_data)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
end
|
data/spec/mortar/project_spec.rb
CHANGED
@@ -32,6 +32,17 @@ module Mortar
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
+
context "controlscripts" do
|
36
|
+
|
37
|
+
it "does not raise an error when unable to find controlscripts dir" do
|
38
|
+
with_blank_project do |p|
|
39
|
+
FileUtils.rm_rf p.controlscripts_path
|
40
|
+
lambda { p.controlscripts_path }.should_not raise_error(Mortar::Project::ProjectError)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
35
46
|
context "pigscripts" do
|
36
47
|
|
37
48
|
it "raise when unable to find pigscripts dir" do
|
data/spec/spec_helper.rb
CHANGED
@@ -160,6 +160,7 @@ def with_blank_project(&block)
|
|
160
160
|
FileUtils.mkdir_p(project_path)
|
161
161
|
|
162
162
|
# setup project subdirectories
|
163
|
+
FileUtils.mkdir_p(File.join(project_path, "controlscripts"))
|
163
164
|
FileUtils.mkdir_p(File.join(project_path, "pigscripts"))
|
164
165
|
FileUtils.mkdir_p(File.join(project_path, "macros"))
|
165
166
|
|
metadata
CHANGED
@@ -1,167 +1,164 @@
|
|
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: 3
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 7
|
9
|
+
- 0
|
10
|
+
version: 0.7.0
|
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: 2013-03-14 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: mortar-api-ruby
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: 0.5.2
|
22
|
-
type: :runtime
|
23
22
|
prerelease: false
|
24
|
-
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.5.2
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: netrc
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
33
24
|
none: false
|
34
|
-
requirements:
|
25
|
+
requirements:
|
35
26
|
- - ~>
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 7
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 6
|
32
|
+
- 0
|
33
|
+
version: 0.6.0
|
38
34
|
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: netrc
|
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
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '2.1'
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 5
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
- 7
|
48
|
+
version: "0.7"
|
54
49
|
type: :runtime
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: launchy
|
55
53
|
prerelease: false
|
56
|
-
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
55
|
none: false
|
58
|
-
requirements:
|
56
|
+
requirements:
|
59
57
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 1
|
60
|
+
segments:
|
61
|
+
- 2
|
62
|
+
- 1
|
63
|
+
version: "2.1"
|
64
|
+
type: :runtime
|
65
|
+
version_requirements: *id003
|
66
|
+
- !ruby/object:Gem::Dependency
|
63
67
|
name: excon
|
64
|
-
|
68
|
+
prerelease: false
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
65
70
|
none: false
|
66
|
-
requirements:
|
71
|
+
requirements:
|
67
72
|
- - ~>
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 21
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
- 15
|
78
|
+
version: "0.15"
|
70
79
|
type: :development
|
80
|
+
version_requirements: *id004
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: fakefs
|
71
83
|
prerelease: false
|
72
|
-
|
84
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
73
85
|
none: false
|
74
|
-
requirements:
|
86
|
+
requirements:
|
75
87
|
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
hash: 11
|
90
|
+
segments:
|
91
|
+
- 0
|
92
|
+
- 4
|
93
|
+
- 2
|
94
|
+
version: 0.4.2
|
86
95
|
type: :development
|
87
|
-
|
88
|
-
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
94
|
-
- !ruby/object:Gem::Dependency
|
96
|
+
version_requirements: *id005
|
97
|
+
- !ruby/object:Gem::Dependency
|
95
98
|
name: gem-release
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
102
|
-
type: :development
|
103
99
|
prerelease: false
|
104
|
-
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: rake
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
113
101
|
none: false
|
114
|
-
requirements:
|
115
|
-
- -
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 3
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
version: "0"
|
118
109
|
type: :development
|
110
|
+
version_requirements: *id006
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
119
113
|
prerelease: false
|
120
|
-
|
114
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
121
115
|
none: false
|
122
|
-
requirements:
|
123
|
-
- -
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ! '>='
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '0'
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
hash: 3
|
120
|
+
segments:
|
121
|
+
- 0
|
122
|
+
version: "0"
|
134
123
|
type: :development
|
124
|
+
version_requirements: *id007
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rr
|
135
127
|
prerelease: false
|
136
|
-
|
128
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
137
129
|
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'
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
hash: 3
|
134
|
+
segments:
|
135
|
+
- 0
|
136
|
+
version: "0"
|
150
137
|
type: :development
|
138
|
+
version_requirements: *id008
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rspec
|
151
141
|
prerelease: false
|
152
|
-
|
142
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
153
143
|
none: false
|
154
|
-
requirements:
|
155
|
-
- -
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
hash: 3
|
148
|
+
segments:
|
149
|
+
- 0
|
150
|
+
version: "0"
|
151
|
+
type: :development
|
152
|
+
version_requirements: *id009
|
158
153
|
description: Client library and command-line tool to interact with the Mortar service.
|
159
154
|
email: support@mortardata.com
|
160
|
-
executables:
|
155
|
+
executables:
|
161
156
|
- mortar
|
162
157
|
extensions: []
|
158
|
+
|
163
159
|
extra_rdoc_files: []
|
164
|
-
|
160
|
+
|
161
|
+
files:
|
165
162
|
- README.md
|
166
163
|
- bin/mortar
|
167
164
|
- lib/mortar.rb
|
@@ -177,6 +174,7 @@ files:
|
|
177
174
|
- lib/mortar/command/help.rb
|
178
175
|
- lib/mortar/command/illustrate.rb
|
179
176
|
- lib/mortar/command/jobs.rb
|
177
|
+
- lib/mortar/command/local.rb
|
180
178
|
- lib/mortar/command/pigscripts.rb
|
181
179
|
- lib/mortar/command/projects.rb
|
182
180
|
- lib/mortar/command/validate.rb
|
@@ -189,6 +187,11 @@ files:
|
|
189
187
|
- lib/mortar/generators/udf_generator.rb
|
190
188
|
- lib/mortar/git.rb
|
191
189
|
- lib/mortar/helpers.rb
|
190
|
+
- lib/mortar/local/controller.rb
|
191
|
+
- lib/mortar/local/installutil.rb
|
192
|
+
- lib/mortar/local/java.rb
|
193
|
+
- lib/mortar/local/pig.rb
|
194
|
+
- lib/mortar/local/python.rb
|
192
195
|
- lib/mortar/project.rb
|
193
196
|
- lib/mortar/templates/macro/macro.pig
|
194
197
|
- lib/mortar/templates/pigscript/pigscript.pig
|
@@ -199,6 +202,8 @@ files:
|
|
199
202
|
- lib/mortar/templates/project/macros/gitkeep
|
200
203
|
- lib/mortar/templates/project/pigscripts/pigscript.pig
|
201
204
|
- lib/mortar/templates/project/udfs/python/python_udf.py
|
205
|
+
- lib/mortar/templates/report/illustrate-report.html
|
206
|
+
- lib/mortar/templates/script/runpig.sh
|
202
207
|
- lib/mortar/templates/udf/python_udf.py
|
203
208
|
- lib/mortar/updater.rb
|
204
209
|
- lib/mortar/version.rb
|
@@ -213,12 +218,17 @@ files:
|
|
213
218
|
- spec/mortar/command/generate_spec.rb
|
214
219
|
- spec/mortar/command/illustrate_spec.rb
|
215
220
|
- spec/mortar/command/jobs_spec.rb
|
221
|
+
- spec/mortar/command/local_spec.rb
|
216
222
|
- spec/mortar/command/pigscripts_spec.rb
|
217
223
|
- spec/mortar/command/projects_spec.rb
|
218
224
|
- spec/mortar/command/validate_spec.rb
|
219
225
|
- spec/mortar/command_spec.rb
|
220
226
|
- spec/mortar/git_spec.rb
|
221
227
|
- spec/mortar/helpers_spec.rb
|
228
|
+
- spec/mortar/local/controller_spec.rb
|
229
|
+
- spec/mortar/local/installutil_spec.rb
|
230
|
+
- spec/mortar/local/java_spec.rb
|
231
|
+
- spec/mortar/local/pig_spec.rb
|
222
232
|
- spec/mortar/project_spec.rb
|
223
233
|
- spec/mortar/updater_spec.rb
|
224
234
|
- spec/spec.opts
|
@@ -226,26 +236,38 @@ files:
|
|
226
236
|
- spec/support/display_message_matcher.rb
|
227
237
|
homepage: http://mortardata.com/
|
228
238
|
licenses: []
|
239
|
+
|
229
240
|
post_install_message:
|
230
241
|
rdoc_options: []
|
231
|
-
|
242
|
+
|
243
|
+
require_paths:
|
232
244
|
- lib
|
233
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
245
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
234
246
|
none: false
|
235
|
-
requirements:
|
236
|
-
- -
|
237
|
-
- !ruby/object:Gem::Version
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
hash: 57
|
251
|
+
segments:
|
252
|
+
- 1
|
253
|
+
- 8
|
254
|
+
- 7
|
238
255
|
version: 1.8.7
|
239
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
256
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
257
|
none: false
|
241
|
-
requirements:
|
242
|
-
- -
|
243
|
-
- !ruby/object:Gem::Version
|
244
|
-
|
258
|
+
requirements:
|
259
|
+
- - ">="
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
hash: 3
|
262
|
+
segments:
|
263
|
+
- 0
|
264
|
+
version: "0"
|
245
265
|
requirements: []
|
266
|
+
|
246
267
|
rubyforge_project:
|
247
268
|
rubygems_version: 1.8.24
|
248
269
|
signing_key:
|
249
270
|
specification_version: 3
|
250
271
|
summary: Client library and CLI to interact with the Mortar service.
|
251
272
|
test_files: []
|
273
|
+
|