coupler 0.0.4-java → 0.0.6-java
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +7 -8
- data/Gemfile.lock +43 -24
- data/VERSION +1 -1
- data/coupler.gemspec +27 -31
- data/features/wizard.feature +2 -1
- data/lib/coupler.rb +2 -2
- data/lib/coupler/base.rb +4 -0
- data/lib/coupler/extensions/connections.rb +2 -12
- data/lib/coupler/extensions/jobs.rb +4 -2
- data/lib/coupler/extensions/projects.rb +1 -1
- data/lib/coupler/helpers.rb +9 -1
- data/lib/coupler/models.rb +8 -0
- data/lib/coupler/models/comparison.rb +5 -4
- data/lib/coupler/models/connection.rb +10 -1
- data/lib/coupler/models/import.rb +3 -7
- data/lib/coupler/models/transformer.rb +1 -1
- data/lib/coupler/runner.rb +1 -1
- data/lib/coupler/scheduler.rb +1 -1
- data/tasks/test.rake +8 -0
- data/test/functional/test_base.rb +17 -0
- data/test/functional/test_connections.rb +81 -0
- data/test/functional/test_imports.rb +76 -0
- data/test/{integration/extensions → functional}/test_jobs.rb +21 -12
- data/test/functional/test_matchers.rb +108 -0
- data/test/functional/test_projects.rb +67 -0
- data/test/functional/test_resources.rb +126 -0
- data/test/{integration/extensions → functional}/test_results.rb +20 -29
- data/test/functional/test_scenarios.rb +92 -0
- data/test/functional/test_transformations.rb +106 -0
- data/test/functional/test_transformers.rb +68 -0
- data/test/helper.rb +30 -20
- data/test/integration/test_transformation.rb +6 -1
- data/test/unit/models/test_common_model.rb +2 -2
- data/test/unit/models/test_comparison.rb +8 -8
- data/test/unit/models/test_connection.rb +2 -2
- data/test/unit/models/test_field.rb +2 -2
- data/test/unit/models/test_import.rb +9 -4
- data/test/unit/models/test_job.rb +2 -2
- data/test/unit/models/test_matcher.rb +2 -2
- data/test/unit/models/test_project.rb +2 -2
- data/test/unit/models/test_resource.rb +2 -2
- data/test/unit/models/test_result.rb +2 -2
- data/test/unit/models/test_scenario.rb +2 -2
- data/test/unit/models/test_transformation.rb +2 -2
- data/test/unit/models/test_transformer.rb +12 -2
- data/test/unit/test_base.rb +1 -14
- data/test/unit/test_data_uploader.rb +1 -1
- data/test/unit/test_database.rb +1 -1
- data/test/unit/test_helpers.rb +2 -2
- data/test/unit/test_import_buffer.rb +40 -38
- data/test/unit/test_logger.rb +1 -1
- data/test/unit/test_models.rb +1 -1
- data/test/unit/test_runner.rb +1 -1
- data/test/unit/test_scheduler.rb +1 -1
- data/webroot/public/css/style.css +7 -5
- data/webroot/public/js/jquery.dataTables.min.js +130 -574
- data/webroot/views/connections/new.erb +41 -3
- data/webroot/views/imports/new.erb +2 -0
- data/webroot/views/jobs/list.erb +25 -21
- data/webroot/views/projects/index.erb +23 -15
- data/webroot/views/resources/list.erb +1 -2
- data/webroot/views/resources/new.erb +2 -2
- data/webroot/views/resources/show.erb +5 -2
- data/webroot/views/scenarios/new.erb +1 -1
- data/webroot/views/transformations/new.erb +1 -1
- metadata +30 -44
- data/lib/coupler/config.rb +0 -128
- data/test/coupler/models/test_import.rb +0 -221
- data/test/factories.rb +0 -91
- data/test/integration/extensions/test_connections.rb +0 -80
- data/test/integration/extensions/test_imports.rb +0 -94
- data/test/integration/extensions/test_matchers.rb +0 -134
- data/test/integration/extensions/test_projects.rb +0 -82
- data/test/integration/extensions/test_resources.rb +0 -150
- data/test/integration/extensions/test_scenarios.rb +0 -88
- data/test/integration/extensions/test_transformations.rb +0 -113
- data/test/integration/extensions/test_transformers.rb +0 -80
- data/vendor/h2-1.3.154.jar +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
<% @breadcrumbs = [@connection] %>
|
2
2
|
<%= error_messages_for @connection %>
|
3
|
-
<form method="post" action="/connections">
|
3
|
+
<form method="post" action="/connections" class="connection-form">
|
4
4
|
<table class="form">
|
5
5
|
<tr>
|
6
6
|
<td class="left"><label for="name">Name</label></td>
|
@@ -12,8 +12,8 @@
|
|
12
12
|
<td class="left"><label for="adapter">Type</label></td>
|
13
13
|
<td>
|
14
14
|
<select id="adapter" name="connection[adapter]">
|
15
|
-
<% Coupler::Models::Connection::ADAPTERS.each do |
|
16
|
-
<option value="<%=
|
15
|
+
<% Coupler::Models::Connection::ADAPTERS.each do |options| %>
|
16
|
+
<option value="<%= options[:name] %>"<%= ' selected="selected"' if @connection.adapter == options[:name] %>><%= options[:label] %></option>
|
17
17
|
<% end %>
|
18
18
|
</select>
|
19
19
|
</td>
|
@@ -48,8 +48,46 @@
|
|
48
48
|
<input id="database_name" name="connection[database_name]" type="text" value="<%= @connection.database_name %>" />
|
49
49
|
</td>
|
50
50
|
</tr>
|
51
|
+
<tr>
|
52
|
+
<td class="left"><label for="path">Path</label></td>
|
53
|
+
<td>
|
54
|
+
<input id="path" name="connection[path]" type="text" value="<%= @connection.path %>" />
|
55
|
+
</td>
|
56
|
+
</tr>
|
51
57
|
</table>
|
52
58
|
<p>
|
53
59
|
<input type="submit" value="Submit" /> or <a href="/connections">Cancel</a>
|
54
60
|
</p>
|
55
61
|
</form>
|
62
|
+
<script type="text/javascript">
|
63
|
+
var ignoredAttribs = <%= Coupler::Models::Connection::ADAPTERS.inject({}) { |m, o| m[o[:name]] = o[:ignored_attributes]; m }.to_json %>
|
64
|
+
function adapterSelected(fade) {
|
65
|
+
var ignored = ignoredAttribs[$(this).val()];
|
66
|
+
var enable = $([]);
|
67
|
+
var disable = $([]);
|
68
|
+
$("[name^=connection\\[]").each(function() {
|
69
|
+
var obj = $(this);
|
70
|
+
var row = obj.closest('tr');
|
71
|
+
if ($.inArray(obj.attr('id'), ignored) == -1) {
|
72
|
+
enable = enable.add(row);
|
73
|
+
} else {
|
74
|
+
disable = disable.add(row);
|
75
|
+
}
|
76
|
+
});
|
77
|
+
if (typeof(fade) == 'undefined' || fade) {
|
78
|
+
disable.fadeOut(function() {
|
79
|
+
disable.find('input, select, textarea').attr('disabled', true);
|
80
|
+
enable.find('input, select, textarea').attr('disabled', false);
|
81
|
+
enable.fadeIn();
|
82
|
+
});
|
83
|
+
} else {
|
84
|
+
disable.hide().find('input, select, textarea').attr('disabled', true);
|
85
|
+
enable.find('input, select, textarea').attr('disabled', false).show();
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
$(function() {
|
90
|
+
var a = $('#adapter').change(adapterSelected);
|
91
|
+
adapterSelected.call(a[0], false);
|
92
|
+
});
|
93
|
+
</script>
|
@@ -2,6 +2,8 @@
|
|
2
2
|
<%- add_javascript('jquery.dataTables.min.js') -%>
|
3
3
|
<%- add_stylesheet('dataTables.css') -%>
|
4
4
|
|
5
|
+
<%= error_messages_for @import %>
|
6
|
+
<%= error_messages_for @resource %>
|
5
7
|
<form action="/projects/<%= @project.id %>/imports" method="post">
|
6
8
|
<input type="hidden" name="import[data_cache]" value="<%= @import.data_cache %>" />
|
7
9
|
<p>
|
data/webroot/views/jobs/list.erb
CHANGED
@@ -1,24 +1,28 @@
|
|
1
1
|
<table class="list">
|
2
|
-
<
|
3
|
-
<
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
<%-
|
16
|
-
|
17
|
-
|
18
|
-
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th>Type</th>
|
5
|
+
<th>Status</th>
|
6
|
+
<% if show_target %><th>Target</th><% end %>
|
7
|
+
<th>Created</th>
|
8
|
+
</tr>
|
9
|
+
</thead>
|
10
|
+
<tbody>
|
11
|
+
<% jobs.each_with_index do |job, i| %>
|
12
|
+
<tr<%= cycle("", " class='alt'") %>>
|
13
|
+
<td><%= job.name %></td>
|
14
|
+
<td><%= job.status %></td>
|
15
|
+
<%- if show_target -%>
|
16
|
+
<%- if job.resource -%>
|
17
|
+
<td><a href="/projects/<%= job.resource.project.id %>/resources/<%= job.resource.id %>"><%= job.resource.name %></a></td>
|
18
|
+
<%- elsif job.scenario -%>
|
19
|
+
<td><a href="/projects/<%= job.scenario.project.id %>/scenarios/<%= job.scenario.id %>"><%= job.scenario.name %></a></td>
|
20
|
+
<%- else -%>
|
21
|
+
<td>N/A</td>
|
22
|
+
<%- end -%>
|
19
23
|
<%- end -%>
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
+
<td><%= timeago(job.created_at) %></td>
|
25
|
+
</tr>
|
26
|
+
<% end %>
|
27
|
+
</tbody>
|
24
28
|
</table>
|
@@ -55,24 +55,32 @@
|
|
55
55
|
$(function() {
|
56
56
|
$('#delete-project-dialog').dialog({
|
57
57
|
autoOpen: false,
|
58
|
-
buttons:
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
$('#confirm-
|
64
|
-
|
65
|
-
|
66
|
-
|
58
|
+
buttons: [
|
59
|
+
{
|
60
|
+
id: "yes-button",
|
61
|
+
text: "Yes",
|
62
|
+
click: function() {
|
63
|
+
if ($('#confirm-1').is(':visible')) {
|
64
|
+
$('#nuke-choice').toggle($('#nuke').is(':checked'));
|
65
|
+
$('#confirm-1').hide();
|
66
|
+
$('#confirm-2').show();
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
$('#delete-form').submit();
|
70
|
+
}
|
67
71
|
}
|
68
72
|
},
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
73
|
+
{
|
74
|
+
id: "no-button",
|
75
|
+
text: "No",
|
76
|
+
click: function() {
|
77
|
+
$('#delete-project-dialog').dialog('close');
|
78
|
+
$('#nuke').attr('checked', false)
|
79
|
+
$('#confirm-1').show();
|
80
|
+
$('#confirm-2').hide();
|
81
|
+
},
|
74
82
|
}
|
75
|
-
|
83
|
+
],
|
76
84
|
modal: true
|
77
85
|
});
|
78
86
|
$('button.edit-project').button({icons: { primary: 'ui-icon-pencil' }});
|
@@ -6,14 +6,13 @@
|
|
6
6
|
<tr>
|
7
7
|
<th>Name</th>
|
8
8
|
<% unless @hide_connection %><th>Connection</th><% end %>
|
9
|
-
<th>Database</th>
|
10
9
|
<th>Table</th>
|
11
10
|
</tr>
|
12
11
|
</thead>
|
13
12
|
<tbody>
|
14
13
|
<% @resources.each_with_index do |resource, i| %>
|
15
14
|
<tr<%= ' class="alt"' if i % 2 == 1 %>>
|
16
|
-
<td><a href="/projects/<%=
|
15
|
+
<td><a href="/projects/<%= resource.project_id %>/resources/<%= resource.id %>"><%= resource.name %></a></td>
|
17
16
|
<%- if resource.import_id -%>
|
18
17
|
<td colspan="3" class='centered'>(imported)</td>
|
19
18
|
<%- else -%>
|
@@ -23,8 +23,8 @@
|
|
23
23
|
<td class="left"><label for="adapter" class="strong">Type</label></td>
|
24
24
|
<td>
|
25
25
|
<select id="adapter" name="resource[connection_attributes][adapter]">
|
26
|
-
<%- Coupler::Models::Connection::ADAPTERS.each do |
|
27
|
-
<option value="<%=
|
26
|
+
<%- Coupler::Models::Connection::ADAPTERS.each do |options| -%>
|
27
|
+
<option value="<%= options[:name] %>"<%= ' selected="selected"' if @resource.connection.adapter == options[:name] %>><%= options[:label] %></option>
|
28
28
|
<%- end -%>
|
29
29
|
</select>
|
30
30
|
</td>
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<%- @fields.each do |field| -%>
|
14
14
|
<tr>
|
15
15
|
<td<%= ' class="altered-field"' if field.is_generated %>><%= field.name %></td>
|
16
|
-
<td<%= ' class="altered-field"' if field.
|
16
|
+
<td<%= ' class="altered-field"' if field.local_type %>><%= field_type(@resource, field) %></td>
|
17
17
|
</tr>
|
18
18
|
<%- end -%>
|
19
19
|
</tbody>
|
@@ -66,7 +66,10 @@
|
|
66
66
|
<script type="text/javascript">
|
67
67
|
var intervalId;
|
68
68
|
$(function() {
|
69
|
-
$('#fields').dataTable({
|
69
|
+
$('#fields').dataTable({
|
70
|
+
bJQueryUI: true, aaSorting: [],
|
71
|
+
bAutoWidth: false, aoColumns: [{sWidth: "50%"}, {sWidth: "50%"}]
|
72
|
+
});
|
70
73
|
<%- if @job && @job.status == 'running' -%>
|
71
74
|
$('#progressbar').progressbar({value: <%= @job.percent_completed %>});
|
72
75
|
setInterval(function() {
|
@@ -35,7 +35,7 @@
|
|
35
35
|
<tr class="alt">
|
36
36
|
<td class="left"><label for="description">Description</label></td>
|
37
37
|
<td>
|
38
|
-
<input id="
|
38
|
+
<input id="description" name="scenario[description]" type="text" value="<%= @scenario.description %>" />
|
39
39
|
</td>
|
40
40
|
</tr>
|
41
41
|
</table>
|
@@ -27,7 +27,7 @@
|
|
27
27
|
</tr>
|
28
28
|
<tr id="field-info" class="hidden">
|
29
29
|
<td class="col1">Current Type:</td>
|
30
|
-
<td><span id='field-type'></span
|
30
|
+
<td><span id='field-type'></span><%= " (<span id='field-db-type'></span>)" if !@resource.import_id %></td>
|
31
31
|
</tr>
|
32
32
|
</table>
|
33
33
|
</div>
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: coupler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.6
|
6
6
|
platform: java
|
7
7
|
authors:
|
8
8
|
- Jeremy Stephens
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-07-12 00:00:00 -05:00
|
14
14
|
default_executable: coupler
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
prerelease: false
|
70
70
|
type: :runtime
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
|
-
name: carrierwave
|
72
|
+
name: carrierwave-sequel
|
73
73
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
@@ -102,7 +102,7 @@ dependencies:
|
|
102
102
|
prerelease: false
|
103
103
|
type: :runtime
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
-
name:
|
105
|
+
name: jdbc-h2
|
106
106
|
version_requirements: &id009 !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
108
108
|
requirements:
|
@@ -111,9 +111,9 @@ dependencies:
|
|
111
111
|
version: "0"
|
112
112
|
requirement: *id009
|
113
113
|
prerelease: false
|
114
|
-
type: :
|
114
|
+
type: :runtime
|
115
115
|
- !ruby/object:Gem::Dependency
|
116
|
-
name:
|
116
|
+
name: rake
|
117
117
|
version_requirements: &id010 !ruby/object:Gem::Requirement
|
118
118
|
none: false
|
119
119
|
requirements:
|
@@ -124,7 +124,7 @@ dependencies:
|
|
124
124
|
prerelease: false
|
125
125
|
type: :development
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
127
|
+
name: jeweler
|
128
128
|
version_requirements: &id011 !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
@@ -135,29 +135,29 @@ dependencies:
|
|
135
135
|
prerelease: false
|
136
136
|
type: :development
|
137
137
|
- !ruby/object:Gem::Dependency
|
138
|
-
name:
|
138
|
+
name: forgery
|
139
139
|
version_requirements: &id012 !ruby/object:Gem::Requirement
|
140
140
|
none: false
|
141
141
|
requirements:
|
142
|
-
- - "
|
142
|
+
- - ">="
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
144
|
+
version: "0"
|
145
145
|
requirement: *id012
|
146
146
|
prerelease: false
|
147
147
|
type: :development
|
148
148
|
- !ruby/object:Gem::Dependency
|
149
|
-
name:
|
149
|
+
name: test-unit
|
150
150
|
version_requirements: &id013 !ruby/object:Gem::Requirement
|
151
151
|
none: false
|
152
152
|
requirements:
|
153
|
-
- - "
|
153
|
+
- - "="
|
154
154
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
155
|
+
version: 2.2.0
|
156
156
|
requirement: *id013
|
157
157
|
prerelease: false
|
158
158
|
type: :development
|
159
159
|
- !ruby/object:Gem::Dependency
|
160
|
-
name:
|
160
|
+
name: mocha
|
161
161
|
version_requirements: &id014 !ruby/object:Gem::Requirement
|
162
162
|
none: false
|
163
163
|
requirements:
|
@@ -190,7 +190,7 @@ dependencies:
|
|
190
190
|
prerelease: false
|
191
191
|
type: :development
|
192
192
|
- !ruby/object:Gem::Dependency
|
193
|
-
name:
|
193
|
+
name: git
|
194
194
|
version_requirements: &id017 !ruby/object:Gem::Requirement
|
195
195
|
none: false
|
196
196
|
requirements:
|
@@ -201,7 +201,7 @@ dependencies:
|
|
201
201
|
prerelease: false
|
202
202
|
type: :development
|
203
203
|
- !ruby/object:Gem::Dependency
|
204
|
-
name:
|
204
|
+
name: thor
|
205
205
|
version_requirements: &id018 !ruby/object:Gem::Requirement
|
206
206
|
none: false
|
207
207
|
requirements:
|
@@ -212,7 +212,7 @@ dependencies:
|
|
212
212
|
prerelease: false
|
213
213
|
type: :development
|
214
214
|
- !ruby/object:Gem::Dependency
|
215
|
-
name:
|
215
|
+
name: table_maker
|
216
216
|
version_requirements: &id019 !ruby/object:Gem::Requirement
|
217
217
|
none: false
|
218
218
|
requirements:
|
@@ -223,7 +223,7 @@ dependencies:
|
|
223
223
|
prerelease: false
|
224
224
|
type: :development
|
225
225
|
- !ruby/object:Gem::Dependency
|
226
|
-
name:
|
226
|
+
name: capybara
|
227
227
|
version_requirements: &id020 !ruby/object:Gem::Requirement
|
228
228
|
none: false
|
229
229
|
requirements:
|
@@ -234,7 +234,7 @@ dependencies:
|
|
234
234
|
prerelease: false
|
235
235
|
type: :development
|
236
236
|
- !ruby/object:Gem::Dependency
|
237
|
-
name:
|
237
|
+
name: jruby-openssl
|
238
238
|
version_requirements: &id021 !ruby/object:Gem::Requirement
|
239
239
|
none: false
|
240
240
|
requirements:
|
@@ -244,17 +244,6 @@ dependencies:
|
|
244
244
|
requirement: *id021
|
245
245
|
prerelease: false
|
246
246
|
type: :development
|
247
|
-
- !ruby/object:Gem::Dependency
|
248
|
-
name: ruby-debug
|
249
|
-
version_requirements: &id022 !ruby/object:Gem::Requirement
|
250
|
-
none: false
|
251
|
-
requirements:
|
252
|
-
- - ">="
|
253
|
-
- !ruby/object:Gem::Version
|
254
|
-
version: "0"
|
255
|
-
requirement: *id022
|
256
|
-
prerelease: false
|
257
|
-
type: :development
|
258
247
|
description: Coupler is a (JRuby) desktop application designed to link datasets together
|
259
248
|
email: jeremy.f.stephens@vanderbilt.edu
|
260
249
|
executables:
|
@@ -323,7 +312,6 @@ files:
|
|
323
312
|
- gfx/icon.svg
|
324
313
|
- lib/coupler.rb
|
325
314
|
- lib/coupler/base.rb
|
326
|
-
- lib/coupler/config.rb
|
327
315
|
- lib/coupler/data_uploader.rb
|
328
316
|
- lib/coupler/database.rb
|
329
317
|
- lib/coupler/extensions.rb
|
@@ -375,23 +363,22 @@ files:
|
|
375
363
|
- tasks/vendor.rake
|
376
364
|
- test/README.txt
|
377
365
|
- test/config.yml
|
378
|
-
- test/coupler/models/test_import.rb
|
379
|
-
- test/factories.rb
|
380
366
|
- test/fixtures/duplicate-keys.csv
|
381
367
|
- test/fixtures/no-headers.csv
|
382
368
|
- test/fixtures/people.csv
|
383
369
|
- test/fixtures/varying-row-size.csv
|
370
|
+
- test/functional/test_base.rb
|
371
|
+
- test/functional/test_connections.rb
|
372
|
+
- test/functional/test_imports.rb
|
373
|
+
- test/functional/test_jobs.rb
|
374
|
+
- test/functional/test_matchers.rb
|
375
|
+
- test/functional/test_projects.rb
|
376
|
+
- test/functional/test_resources.rb
|
377
|
+
- test/functional/test_results.rb
|
378
|
+
- test/functional/test_scenarios.rb
|
379
|
+
- test/functional/test_transformations.rb
|
380
|
+
- test/functional/test_transformers.rb
|
384
381
|
- test/helper.rb
|
385
|
-
- test/integration/extensions/test_connections.rb
|
386
|
-
- test/integration/extensions/test_imports.rb
|
387
|
-
- test/integration/extensions/test_jobs.rb
|
388
|
-
- test/integration/extensions/test_matchers.rb
|
389
|
-
- test/integration/extensions/test_projects.rb
|
390
|
-
- test/integration/extensions/test_resources.rb
|
391
|
-
- test/integration/extensions/test_results.rb
|
392
|
-
- test/integration/extensions/test_scenarios.rb
|
393
|
-
- test/integration/extensions/test_transformations.rb
|
394
|
-
- test/integration/extensions/test_transformers.rb
|
395
382
|
- test/integration/test_field.rb
|
396
383
|
- test/integration/test_import.rb
|
397
384
|
- test/integration/test_running_scenarios.rb
|
@@ -421,7 +408,6 @@ files:
|
|
421
408
|
- test/unit/test_runner.rb
|
422
409
|
- test/unit/test_scheduler.rb
|
423
410
|
- uploads/.gitignore
|
424
|
-
- vendor/h2-1.3.154.jar
|
425
411
|
- webroot/public/css/960.css
|
426
412
|
- webroot/public/css/dataTables.css
|
427
413
|
- webroot/public/css/jquery-ui.css
|
data/lib/coupler/config.rb
DELETED
@@ -1,128 +0,0 @@
|
|
1
|
-
module Coupler
|
2
|
-
module Config
|
3
|
-
DEFAULT_CONFIG = {
|
4
|
-
:database => {
|
5
|
-
:port => 12345,
|
6
|
-
:user => 'coupler',
|
7
|
-
:password => 'cupla',
|
8
|
-
:max_connections => '100',
|
9
|
-
:max_allowed_packet => '1M',
|
10
|
-
:connection_string => 'jdbc:mysql://localhost:%d/%s?user=%s&password=%s',
|
11
|
-
}
|
12
|
-
}
|
13
|
-
|
14
|
-
VENDOR_LIBS = {
|
15
|
-
'jruby' => {
|
16
|
-
:type => 'java',
|
17
|
-
:filetype => 'jar',
|
18
|
-
:version => '1.6.0',
|
19
|
-
:url => "http://jruby.org.s3.amazonaws.com/downloads/%1$s/jruby-complete-%1$s.jar",
|
20
|
-
:uncompress => false,
|
21
|
-
:filename => "jruby-complete-%s.jar",
|
22
|
-
:symlink => "jruby-complete.jar"
|
23
|
-
},
|
24
|
-
'mysql-connector-mxj' => {
|
25
|
-
:type => 'java',
|
26
|
-
:filetype => "tarball",
|
27
|
-
:version => '5-0-11',
|
28
|
-
:dir => "mysql-connector-mxj-gpl-%s",
|
29
|
-
:url => "http://mysql.mirrors.hoobly.com/Downloads/Connector-MXJ/mysql-connector-mxj-gpl-%s.tar.gz",
|
30
|
-
:libs => [
|
31
|
-
"mysql-connector-mxj-gpl-%s.jar",
|
32
|
-
"mysql-connector-mxj-gpl-%s-db-files.jar"
|
33
|
-
]
|
34
|
-
},
|
35
|
-
'mysql-connector-java' => {
|
36
|
-
:type => 'java',
|
37
|
-
:filetype => "tarball",
|
38
|
-
:version => '5.1.13',
|
39
|
-
:dir => "mysql-connector-java-%s",
|
40
|
-
:url => "http://mysql.mirrors.hoobly.com/Downloads/Connector-J/mysql-connector-java-%s.tar.gz",
|
41
|
-
:libs => [
|
42
|
-
"mysql-connector-java-%s-bin.jar",
|
43
|
-
]
|
44
|
-
}
|
45
|
-
}
|
46
|
-
|
47
|
-
def self.each_vendor_lib
|
48
|
-
VENDOR_LIBS.each_key do |name|
|
49
|
-
yield(name, vendor_lib_info(name))
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.vendor_lib_info(name)
|
54
|
-
info = VENDOR_LIBS[name]
|
55
|
-
info = info.merge({:url => info[:url] % info[:version]})
|
56
|
-
info[:dir] %= info[:version] if info[:dir]
|
57
|
-
info[:filename] %= info[:version] if info[:filename]
|
58
|
-
info
|
59
|
-
end
|
60
|
-
|
61
|
-
def self.vendor_lib_paths(name)
|
62
|
-
info = VENDOR_LIBS[name]
|
63
|
-
version = info[:version]
|
64
|
-
path = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'vendor', info[:type], info[:dir] % version))
|
65
|
-
info[:libs].collect { |lib| File.join(path, lib % version) }
|
66
|
-
end
|
67
|
-
|
68
|
-
def self.require_vendor_libs(name)
|
69
|
-
vendor_lib_paths(name).each { |path| require(path) }
|
70
|
-
end
|
71
|
-
|
72
|
-
@@config = nil
|
73
|
-
def self.get(*keys)
|
74
|
-
if @@config.nil?
|
75
|
-
@@config = DEFAULT_CONFIG
|
76
|
-
end
|
77
|
-
|
78
|
-
if keys == [:data_path]
|
79
|
-
if !@@config.has_key?(keys[0])
|
80
|
-
# FIXME: this is a little naive
|
81
|
-
dir = File.join(File.dirname(__FILE__), "..", "..")
|
82
|
-
if ENV['APPDATA']
|
83
|
-
# Windows
|
84
|
-
dir = File.join(ENV['APPDATA'], "coupler")
|
85
|
-
elsif !File.writable?(dir)
|
86
|
-
if ENV['HOME']
|
87
|
-
dir = File.join(ENV['HOME'], ".coupler")
|
88
|
-
else
|
89
|
-
raise "don't know where to put data!"
|
90
|
-
end
|
91
|
-
end
|
92
|
-
@@config[:data_path] = File.expand_path(dir)
|
93
|
-
end
|
94
|
-
Dir.mkdir(@@config[:data_path]) if !File.exist?(@@config[:data_path])
|
95
|
-
elsif keys == [:upload_path]
|
96
|
-
if !@@config.has_key?(keys[0])
|
97
|
-
@@config[:upload_path] = path = File.join(get(:data_path), "uploads")
|
98
|
-
end
|
99
|
-
Dir.mkdir(@@config[:upload_path]) if !File.exist?(@@config[:upload_path])
|
100
|
-
end
|
101
|
-
|
102
|
-
keys.inject(@@config) { |hash, key| hash[key] }
|
103
|
-
end
|
104
|
-
|
105
|
-
def self.set(*args)
|
106
|
-
if @@config.nil?
|
107
|
-
@@config = DEFAULT_CONFIG
|
108
|
-
end
|
109
|
-
|
110
|
-
value = args.pop
|
111
|
-
keys = args
|
112
|
-
|
113
|
-
hash = keys[0..-2].inject(@@config) { |h, k| h[k] }
|
114
|
-
hash[keys[-1]] = value
|
115
|
-
end
|
116
|
-
|
117
|
-
def self.connection_string(database, options = {})
|
118
|
-
retval = self.get(:database, :connection_string) % [self.get(:database, :port), database, self.get(:database, :user), self.get(:database, :password)]
|
119
|
-
retval += "&createDatabaseIfNotExist=true" if options[:create_database]
|
120
|
-
case options[:zero_date_time_behavior]
|
121
|
-
when :convert_to_null
|
122
|
-
retval += "&zeroDateTimeBehavior=convertToNull"
|
123
|
-
end
|
124
|
-
retval += "&autoReconnect=true" if options[:auto_reconnect]
|
125
|
-
retval
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|