embulk 0.4.8 → 0.4.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/bin/embulk +0 -1
- data/build.gradle +1 -1
- data/embulk-cli/src/main/sh/selfrun.sh +1 -1
- data/embulk-core/src/main/java/org/embulk/spi/util/LineEncoder.java +14 -5
- data/embulk-docs/plugins/index.html.erb +72 -0
- data/embulk-docs/plugins/plugins.css +141 -0
- data/embulk-docs/src/index.rst +2 -0
- data/embulk-docs/src/recipe/scheduled-csv-load-to-elasticsearch-kibana4.rst +1 -1
- data/embulk-docs/src/release.rst +1 -0
- data/embulk-docs/src/release/release-0.4.9.rst +23 -0
- data/embulk-standards/src/main/java/org/embulk/standards/GzipFileEncoderPlugin.java +15 -7
- data/lib/embulk/command/embulk_new_plugin.rb +9 -9
- data/lib/embulk/data/new/java/build.gradle.erb +1 -1
- data/lib/embulk/data/new/ruby/gemspec.erb +1 -1
- data/lib/embulk/java/imports.rb +1 -0
- data/lib/embulk/java/time_helper.rb +4 -2
- data/lib/embulk/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d98c0a02ab92bbf1946711baf3d7ed6e595a370
|
4
|
+
data.tar.gz: 42feb91bb67cf47d56bcbcecbb0ab3503c60f8b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c51c434afe98f3a6f1ee85e03fed5224238892830308c406eb67be38c1ec4f5a22fe103bde6cc89cfee44875281d2887c3624bcc5fda0c1ddb5aa388cf972e0
|
7
|
+
data.tar.gz: 88d1f71adf38f007dc876d5bc55672e1ae69b3c8895aec589dcc77a98801bab4b55fb849979635955c628c4300da343de2f2e60a11aa1d9054dac8011cdac705
|
data/README.md
CHANGED
@@ -28,7 +28,7 @@ The single-file package is the simplest way to try Embulk. You can download the
|
|
28
28
|
Following 4 commands install embulk to your home directory:
|
29
29
|
|
30
30
|
```
|
31
|
-
curl --create-dirs -o ~/.embulk/bin/embulk -L https://bintray.com/artifact/download/embulk/maven/embulk-0.4.
|
31
|
+
curl --create-dirs -o ~/.embulk/bin/embulk -L https://bintray.com/artifact/download/embulk/maven/embulk-0.4.9.jar
|
32
32
|
chmod +x ~/.embulk/bin/embulk
|
33
33
|
echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc
|
34
34
|
source ~/.bashrc
|
@@ -39,7 +39,7 @@ source ~/.bashrc
|
|
39
39
|
You can assume the jar file is a .bat file.
|
40
40
|
|
41
41
|
```
|
42
|
-
curl -o embulk.bat -L https://bintray.com/artifact/download/embulk/maven/embulk-0.4.
|
42
|
+
curl -o embulk.bat -L https://bintray.com/artifact/download/embulk/maven/embulk-0.4.9.jar
|
43
43
|
```
|
44
44
|
|
45
45
|
### Trying examples
|
data/bin/embulk
CHANGED
data/build.gradle
CHANGED
@@ -34,8 +34,9 @@ public class LineEncoder
|
|
34
34
|
}
|
35
35
|
|
36
36
|
private final String newline;
|
37
|
+
private final FileOutput underlyingFileOutput;
|
37
38
|
private final FileOutputOutputStream outputStream;
|
38
|
-
private
|
39
|
+
private Writer writer;
|
39
40
|
|
40
41
|
public LineEncoder(FileOutput out, EncoderTask task)
|
41
42
|
{
|
@@ -44,7 +45,8 @@ public class LineEncoder
|
|
44
45
|
.onMalformedInput(CodingErrorAction.REPLACE) // TODO configurable?
|
45
46
|
.onUnmappableCharacter(CodingErrorAction.REPLACE); // TODO configurable?
|
46
47
|
this.newline = task.getNewline().getString();
|
47
|
-
this.
|
48
|
+
this.underlyingFileOutput = out;
|
49
|
+
this.outputStream = new FileOutputOutputStream(underlyingFileOutput, task.getBufferAllocator(), FileOutputOutputStream.CloseMode.FLUSH_FINISH);
|
48
50
|
this.writer = new OutputStreamWriter(outputStream, encoder);
|
49
51
|
}
|
50
52
|
|
@@ -93,18 +95,25 @@ public class LineEncoder
|
|
93
95
|
public void finish()
|
94
96
|
{
|
95
97
|
try {
|
96
|
-
writer
|
98
|
+
if (writer != null) {
|
99
|
+
writer.close(); // FLUSH_FINISH
|
100
|
+
writer = null;
|
101
|
+
// underlyingFileOutput.finish() is already called by close() because CloseMode is FLUSH_FINISH
|
102
|
+
}
|
97
103
|
} catch (IOException ex) {
|
98
104
|
throw new RuntimeException(ex);
|
99
105
|
}
|
100
|
-
outputStream.finish();
|
101
106
|
}
|
102
107
|
|
103
108
|
@Override
|
104
109
|
public void close()
|
105
110
|
{
|
106
111
|
try {
|
107
|
-
writer
|
112
|
+
if (writer != null) {
|
113
|
+
writer.close(); // FLUSH_FINISH
|
114
|
+
writer = null;
|
115
|
+
}
|
116
|
+
underlyingFileOutput.close(); // this is necessary because CloseMode is not FLUSH_FINISH_CLOSE
|
108
117
|
} catch (IOException ex) {
|
109
118
|
// unexpected
|
110
119
|
throw new RuntimeException(ex);
|
@@ -0,0 +1,72 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>List of Embulk Plugins by Category | Embulk</title>
|
7
|
+
<link rel="stylesheet" href="../docs/_static/haiku.css" type="text/css" />
|
8
|
+
<link rel="stylesheet" href="../docs/_static/pygments.css" type="text/css" />
|
9
|
+
<link rel="stylesheet" href="plugins.css" type="text/css" />
|
10
|
+
<link rel="top" title="Embulk 0.4 documentation" href="../docs/index.html" />
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<div class="header"><h1 class="heading"><a href="../docs/index.html">
|
14
|
+
<span>Embulk plugins</span></a></h1>
|
15
|
+
<h2 class="heading"><span>Embulk by category</span></h2>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<div class="content">
|
19
|
+
<div class="section">
|
20
|
+
<h1>List of Plugins by Category</h1>
|
21
|
+
|
22
|
+
<% categories.each do |category,gems| %>
|
23
|
+
<div class="section">
|
24
|
+
<h2><%= category.upcase %></h2>
|
25
|
+
<table class="plugins">
|
26
|
+
<thead>
|
27
|
+
<tr>
|
28
|
+
<th>Star</th>
|
29
|
+
<th>Name</th>
|
30
|
+
<th>Author</th>
|
31
|
+
<th>About</th>
|
32
|
+
<th>Version</th>
|
33
|
+
</tr>
|
34
|
+
</thead>
|
35
|
+
<tbody>
|
36
|
+
<% gems.each do |gem| %>
|
37
|
+
<tr>
|
38
|
+
<td style="width:80px">
|
39
|
+
<div class="github-btn-container">
|
40
|
+
<span class="github-btn" class="github-stargazers">
|
41
|
+
<a class="gh-btn" href="https://github.com/<%=e gem[:owner] %>/<%=e gem[:repo] %>" target="_blank">
|
42
|
+
<span class="gh-ico"></span>
|
43
|
+
<span class="gh-text">Star</span>
|
44
|
+
</a>
|
45
|
+
<a class="gh-count" href="https://github.com/<%=e gem[:owner] %>/<%=e gem[:repo] %>/stargazers" target="_blank" style="display: block"><%=h gem[:stargazers_count] %></a>
|
46
|
+
</span>
|
47
|
+
</div>
|
48
|
+
<td style="width:9em"><a href="<%=h gem[:url] %>"><%=h gem[:name] %></a></td>
|
49
|
+
<td style="width:15em"><%=h gem[:author] %>
|
50
|
+
<% if gem[:avatar_url] %>
|
51
|
+
<img src="<%=h gem[:avatar_url] %>" height=32 width=32></img></td>
|
52
|
+
<% else %>
|
53
|
+
</td>
|
54
|
+
<% end %>
|
55
|
+
<td><%=h gem[:info] %></td>
|
56
|
+
<td style="width:3em"><%=h gem[:version] %></td>
|
57
|
+
</tr>
|
58
|
+
<% end %>
|
59
|
+
</tbody>
|
60
|
+
</table>
|
61
|
+
</div>
|
62
|
+
<% end %>
|
63
|
+
|
64
|
+
</div>
|
65
|
+
</div>
|
66
|
+
|
67
|
+
<div class="footer">
|
68
|
+
© Copyright 2015, Embulk Project.
|
69
|
+
Created using <a href="https://github.com/embulk/plugin-crawler">Embulk plugin crawler</a>.
|
70
|
+
</div>
|
71
|
+
</body>
|
72
|
+
</html>
|
@@ -0,0 +1,141 @@
|
|
1
|
+
body {
|
2
|
+
max-width: 90em;
|
3
|
+
}
|
4
|
+
.plugins {
|
5
|
+
border-collapse: collapse
|
6
|
+
}
|
7
|
+
.plugins th, td {
|
8
|
+
padding: 5px 20px;
|
9
|
+
border: 1px solid #eee;
|
10
|
+
vertical-align: middle;
|
11
|
+
}
|
12
|
+
.author-avator {
|
13
|
+
}
|
14
|
+
|
15
|
+
.github-btn-container {
|
16
|
+
padding: 0;
|
17
|
+
margin: 0;
|
18
|
+
font: bold 11px/14px "Helvetica Neue", Helvetica, Arial, sans-serif;
|
19
|
+
overflow: hidden;
|
20
|
+
color: black
|
21
|
+
}
|
22
|
+
.github-btn-container a {
|
23
|
+
color: black;
|
24
|
+
}
|
25
|
+
.github-btn-container a:hover {
|
26
|
+
text-decoration: none;
|
27
|
+
}
|
28
|
+
|
29
|
+
.github-btn {
|
30
|
+
height: 20px;
|
31
|
+
overflow: hidden;
|
32
|
+
}
|
33
|
+
.gh-btn,
|
34
|
+
.gh-count,
|
35
|
+
.gh-ico {
|
36
|
+
float: left;
|
37
|
+
}
|
38
|
+
.gh-btn,
|
39
|
+
.gh-count {
|
40
|
+
padding: 2px 5px 2px 4px;
|
41
|
+
color: #333;
|
42
|
+
text-decoration: none;
|
43
|
+
text-shadow: 0 1px 0 #fff;
|
44
|
+
white-space: nowrap;
|
45
|
+
cursor: pointer;
|
46
|
+
border-radius: 3px;
|
47
|
+
}
|
48
|
+
.gh-btn {
|
49
|
+
background-color: #eee;
|
50
|
+
background-image: -moz-linear-gradient(#fcfcfc, #eee);
|
51
|
+
background-image: -webkit-linear-gradient(#fcfcfc, #eee);
|
52
|
+
background-image: linear-gradient(#fcfcfc, #eee);
|
53
|
+
background-repeat: no-repeat;
|
54
|
+
border: 1px solid #d5d5d5;
|
55
|
+
}
|
56
|
+
.gh-btn:hover,
|
57
|
+
.gh-btn:focus {
|
58
|
+
text-decoration: none;
|
59
|
+
background-color: #ddd;
|
60
|
+
background-image: -moz-linear-gradient(#eee, #ddd);
|
61
|
+
background-image: -webkit-linear-gradient(#eee, #ddd);
|
62
|
+
background-image: linear-gradient(#eee, #ddd);
|
63
|
+
border-color: #ccc;
|
64
|
+
}
|
65
|
+
.gh-btn:active {
|
66
|
+
background-image: none;
|
67
|
+
background-color: #dcdcdc;
|
68
|
+
border-color: #b5b5b5;
|
69
|
+
box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);
|
70
|
+
}
|
71
|
+
.gh-ico {
|
72
|
+
width: 14px;
|
73
|
+
height: 14px;
|
74
|
+
margin-right: 4px;
|
75
|
+
background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iNDBweCIgaGVpZ2h0PSI0MHB4IiB2aWV3Qm94PSIxMiAxMiA0MCA0MCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAxMiAxMiA0MCA0MCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cGF0aCBmaWxsPSIjMzMzMzMzIiBkPSJNMzIsMTMuNGMtMTAuNSwwLTE5LDguNS0xOSwxOWMwLDguNCw1LjUsMTUuNSwxMywxOGMxLDAuMiwxLjMtMC40LDEuMy0wLjljMC0wLjUsMC0xLjcsMC0zLjINCgljLTUuMywxLjEtNi40LTIuNi02LjQtMi42QzIwLDQxLjYsMTguOCw0MSwxOC44LDQxYy0xLjctMS4yLDAuMS0xLjEsMC4xLTEuMWMxLjksMC4xLDIuOSwyLDIuOSwyYzEuNywyLjksNC41LDIuMSw1LjUsMS42DQoJYzAuMi0xLjIsMC43LTIuMSwxLjItMi42Yy00LjItMC41LTguNy0yLjEtOC43LTkuNGMwLTIuMSwwLjctMy43LDItNS4xYy0wLjItMC41LTAuOC0yLjQsMC4yLTVjMCwwLDEuNi0wLjUsNS4yLDINCgljMS41LTAuNCwzLjEtMC43LDQuOC0wLjdjMS42LDAsMy4zLDAuMiw0LjcsMC43YzMuNi0yLjQsNS4yLTIsNS4yLTJjMSwyLjYsMC40LDQuNiwwLjIsNWMxLjIsMS4zLDIsMywyLDUuMWMwLDcuMy00LjUsOC45LTguNyw5LjQNCgljMC43LDAuNiwxLjMsMS43LDEuMywzLjVjMCwyLjYsMCw0LjYsMCw1LjJjMCwwLjUsMC40LDEuMSwxLjMsMC45YzcuNS0yLjYsMTMtOS43LDEzLTE4LjFDNTEsMjEuOSw0Mi41LDEzLjQsMzIsMTMuNHoiLz4NCjwvc3ZnPg0K);
|
76
|
+
background-size: 100% 100%;
|
77
|
+
background-repeat: no-repeat;
|
78
|
+
}
|
79
|
+
.gh-count {
|
80
|
+
position: relative;
|
81
|
+
display: none; /* hidden to start */
|
82
|
+
margin-left: 4px;
|
83
|
+
background-color: #fafafa;
|
84
|
+
border: 1px solid #d4d4d4;
|
85
|
+
}
|
86
|
+
.gh-count:hover,
|
87
|
+
.gh-count:focus {
|
88
|
+
color: #4183C4;
|
89
|
+
}
|
90
|
+
.gh-count:before,
|
91
|
+
.gh-count:after {
|
92
|
+
content: '';
|
93
|
+
position: absolute;
|
94
|
+
display: inline-block;
|
95
|
+
width: 0;
|
96
|
+
height: 0;
|
97
|
+
border-color: transparent;
|
98
|
+
border-style: solid;
|
99
|
+
}
|
100
|
+
.gh-count:before {
|
101
|
+
top: 50%;
|
102
|
+
left: -3px;
|
103
|
+
margin-top: -4px;
|
104
|
+
border-width: 4px 4px 4px 0;
|
105
|
+
border-right-color: #fafafa;
|
106
|
+
}
|
107
|
+
.gh-count:after {
|
108
|
+
top: 50%;
|
109
|
+
left: -4px;
|
110
|
+
z-index: -1;
|
111
|
+
margin-top: -5px;
|
112
|
+
border-width: 5px 5px 5px 0;
|
113
|
+
border-right-color: #d4d4d4;
|
114
|
+
}
|
115
|
+
.github-btn-large {
|
116
|
+
height: 30px;
|
117
|
+
}
|
118
|
+
.github-btn-large .gh-btn,
|
119
|
+
.github-btn-large .gh-count {
|
120
|
+
padding: 3px 10px 3px 8px;
|
121
|
+
font-size: 16px;
|
122
|
+
line-height: 22px;
|
123
|
+
border-radius: 4px;
|
124
|
+
}
|
125
|
+
.github-btn-large .gh-ico {
|
126
|
+
width: 20px;
|
127
|
+
height: 20px;
|
128
|
+
}
|
129
|
+
.github-btn-large .gh-count {
|
130
|
+
margin-left: 6px;
|
131
|
+
}
|
132
|
+
.github-btn-large .gh-count:before {
|
133
|
+
left: -5px;
|
134
|
+
margin-top: -6px;
|
135
|
+
border-width: 6px 6px 6px 0;
|
136
|
+
}
|
137
|
+
.github-btn-large .gh-count:after {
|
138
|
+
left: -6px;
|
139
|
+
margin-top: -7px;
|
140
|
+
border-width: 7px 7px 7px 0;
|
141
|
+
}
|
data/embulk-docs/src/index.rst
CHANGED
@@ -56,7 +56,7 @@ You can find the latest embulk binary from the `releases <https://bintray.com/em
|
|
56
56
|
|
57
57
|
.. code-block:: console
|
58
58
|
|
59
|
-
$ sudo wget https://bintray.com/artifact/download/embulk/maven/embulk-0.4.
|
59
|
+
$ sudo wget https://bintray.com/artifact/download/embulk/maven/embulk-0.4.9.jar -O /usr/local/bin/embulk
|
60
60
|
$ sudo chmod +x /usr/local/bin/embulk
|
61
61
|
|
62
62
|
Step 2. Install Elasticsearch plugin
|
data/embulk-docs/src/release.rst
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
Release 0.4.9
|
2
|
+
==================================
|
3
|
+
|
4
|
+
CLI
|
5
|
+
------------------
|
6
|
+
|
7
|
+
* Fixed execution script for Windows
|
8
|
+
|
9
|
+
Built-in plugins
|
10
|
+
------------------
|
11
|
+
|
12
|
+
* Fixed a problem that ``encoder/gzip`` plugin didn't flush last buffer in memory.
|
13
|
+
* ``encoder/gzip`` plugin supports ``level`` option (@yaggytter++).
|
14
|
+
|
15
|
+
General Changes
|
16
|
+
------------------
|
17
|
+
|
18
|
+
* Fixed a problem of timestamp parser that ignores milliseconds if format is ``%s.%N``.
|
19
|
+
* Plugin template generator generates shorter description to fit in a table at the new plugin list page.
|
20
|
+
|
21
|
+
Release Date
|
22
|
+
------------------
|
23
|
+
2015-02-25
|
@@ -3,6 +3,8 @@ package org.embulk.standards;
|
|
3
3
|
import java.io.OutputStream;
|
4
4
|
import java.io.IOException;
|
5
5
|
import java.util.zip.GZIPOutputStream;
|
6
|
+
import javax.validation.constraints.Min;
|
7
|
+
import javax.validation.constraints.Max;
|
6
8
|
import org.embulk.config.Task;
|
7
9
|
import org.embulk.config.Config;
|
8
10
|
import org.embulk.config.ConfigInject;
|
@@ -21,10 +23,11 @@ public class GzipFileEncoderPlugin
|
|
21
23
|
public interface PluginTask
|
22
24
|
extends Task
|
23
25
|
{
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
@Config("level")
|
27
|
+
@ConfigDefault("6")
|
28
|
+
@Min(0)
|
29
|
+
@Max(9)
|
30
|
+
public int getLevel();
|
28
31
|
|
29
32
|
@ConfigInject
|
30
33
|
public BufferAllocator getBufferAllocator();
|
@@ -39,15 +42,20 @@ public class GzipFileEncoderPlugin
|
|
39
42
|
@Override
|
40
43
|
public FileOutput open(TaskSource taskSource, final FileOutput fileOutput)
|
41
44
|
{
|
42
|
-
PluginTask task = taskSource.loadTask(PluginTask.class);
|
45
|
+
final PluginTask task = taskSource.loadTask(PluginTask.class);
|
43
46
|
|
44
|
-
final FileOutputOutputStream output = new FileOutputOutputStream(fileOutput, task.getBufferAllocator(), FileOutputOutputStream.CloseMode.
|
47
|
+
final FileOutputOutputStream output = new FileOutputOutputStream(fileOutput, task.getBufferAllocator(), FileOutputOutputStream.CloseMode.FLUSH);
|
45
48
|
|
46
49
|
return new OutputStreamFileOutput(new OutputStreamFileOutput.Provider() {
|
47
50
|
public OutputStream openNext() throws IOException
|
48
51
|
{
|
49
52
|
output.nextFile();
|
50
|
-
return new GZIPOutputStream(output)
|
53
|
+
return new GZIPOutputStream(output) {
|
54
|
+
{
|
55
|
+
this.def.setLevel(task.getLevel());
|
56
|
+
}
|
57
|
+
};
|
58
|
+
|
51
59
|
}
|
52
60
|
|
53
61
|
public void finish() throws IOException
|
@@ -34,23 +34,23 @@ module Embulk
|
|
34
34
|
description =
|
35
35
|
case category
|
36
36
|
when :input
|
37
|
-
%[
|
37
|
+
%[Loads records from #{display_name}.]
|
38
38
|
when :file_input
|
39
|
-
%[
|
39
|
+
%[Reads files stored on #{display_name}.]
|
40
40
|
when :parser
|
41
|
-
%[
|
41
|
+
%[Parses #{display_name} files read by other file input plugins.]
|
42
42
|
when :decoder
|
43
|
-
%[
|
43
|
+
%[Decodes #{display_name}-encoded files read by other file input plugins.]
|
44
44
|
when :output
|
45
|
-
%[
|
45
|
+
%[Dumps records to #{display_name}.]
|
46
46
|
when :file_output
|
47
|
-
%[
|
47
|
+
%[Stores files on #{display_name}.]
|
48
48
|
when :formtter
|
49
|
-
%[
|
49
|
+
%[Formats #{display_name} files for other file output plugins.]
|
50
50
|
when :encoder
|
51
|
-
%[
|
51
|
+
%[Encodes files using #{display_name} for other file output plugins.]
|
52
52
|
when :filter
|
53
|
-
%[
|
53
|
+
%[#{display_name}]
|
54
54
|
end
|
55
55
|
|
56
56
|
pkg = Embulk::PackageData.new("new", project_name, binding())
|
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
|
|
40
40
|
spec.version = "${project.version}"
|
41
41
|
spec.authors = [<%= author.dump %>]
|
42
42
|
spec.summary = %[<%= display_name %> <%= display_category %> plugin for Embulk]
|
43
|
-
spec.description = %[<%=
|
43
|
+
spec.description = %[<%= "#{description}".dump %>]
|
44
44
|
spec.email = [<%= email.dump %>]
|
45
45
|
spec.licenses = ["MIT"]
|
46
46
|
# TODO: spec.homepage = <%= "https://github.com/#{email[/([^@]*)/]}/#{project_name}".dump %>
|
@@ -4,7 +4,7 @@ Gem::Specification.new do |spec|
|
|
4
4
|
spec.version = "0.1.0"
|
5
5
|
spec.authors = [<%= author.dump %>]
|
6
6
|
spec.summary = <%= "#{display_name} #{display_category} plugin for Embulk".dump %>
|
7
|
-
spec.description = <%= "#{
|
7
|
+
spec.description = <%= "#{description}".dump %>
|
8
8
|
spec.email = [<%= email.dump %>]
|
9
9
|
spec.licenses = ["MIT"]
|
10
10
|
# TODO: spec.homepage = "https://github.com/<%= email[/([^@]*)/] %>/<%= project_name %>"
|
data/lib/embulk/java/imports.rb
CHANGED
@@ -9,6 +9,7 @@ module Embulk::Java
|
|
9
9
|
|
10
10
|
java_import 'org.embulk.config.DataSourceImpl'
|
11
11
|
java_import 'org.embulk.spi.time.Timestamp'
|
12
|
+
java_import 'org.embulk.spi.time.TimestampParseException'
|
12
13
|
java_import 'org.embulk.spi.GuessPlugin'
|
13
14
|
java_import 'org.embulk.spi.OutputPlugin'
|
14
15
|
java_import 'org.embulk.spi.FilterPlugin'
|
@@ -30,7 +30,9 @@ module Embulk
|
|
30
30
|
end
|
31
31
|
|
32
32
|
if seconds = hash[:seconds]
|
33
|
-
|
33
|
+
sec_fraction = hash[:sec_fraction] # Rational
|
34
|
+
usec = sec_fraction * 1_000_000 if sec_fraction
|
35
|
+
return seconds * 1_000_000 + usec.to_i
|
34
36
|
|
35
37
|
else
|
36
38
|
year = hash[:year]
|
@@ -40,8 +42,8 @@ module Embulk
|
|
40
42
|
min = hash[:min]
|
41
43
|
sec = hash[:sec]
|
42
44
|
sec_fraction = hash[:sec_fraction]
|
45
|
+
usec = sec_fraction * 1_000_000 if sec_fraction
|
43
46
|
zone = hash[:zone]
|
44
|
-
usec = hash[:sec_fraction] ? hash[:sec_fraction] * 1000000 : nil
|
45
47
|
|
46
48
|
now = @default_time
|
47
49
|
begin
|
data/lib/embulk/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
@@ -245,6 +245,8 @@ files:
|
|
245
245
|
- embulk-docs/Makefile
|
246
246
|
- embulk-docs/build.gradle
|
247
247
|
- embulk-docs/make.bat
|
248
|
+
- embulk-docs/plugins/index.html.erb
|
249
|
+
- embulk-docs/plugins/plugins.css
|
248
250
|
- embulk-docs/push-gh-pages.sh
|
249
251
|
- embulk-docs/src/conf.py
|
250
252
|
- embulk-docs/src/index.rst
|
@@ -266,6 +268,7 @@ files:
|
|
266
268
|
- embulk-docs/src/release/release-0.4.6.rst
|
267
269
|
- embulk-docs/src/release/release-0.4.7.rst
|
268
270
|
- embulk-docs/src/release/release-0.4.8.rst
|
271
|
+
- embulk-docs/src/release/release-0.4.9.rst
|
269
272
|
- embulk-standards/build.gradle
|
270
273
|
- embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java
|
271
274
|
- embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java
|
@@ -366,8 +369,8 @@ files:
|
|
366
369
|
- classpath/bval-jsr303-0.5.jar
|
367
370
|
- classpath/commons-beanutils-core-1.8.3.jar
|
368
371
|
- classpath/commons-lang3-3.1.jar
|
369
|
-
- classpath/embulk-core-0.4.
|
370
|
-
- classpath/embulk-standards-0.4.
|
372
|
+
- classpath/embulk-core-0.4.9.jar
|
373
|
+
- classpath/embulk-standards-0.4.9.jar
|
371
374
|
- classpath/guava-18.0.jar
|
372
375
|
- classpath/guice-3.0.jar
|
373
376
|
- classpath/guice-multibindings-3.0.jar
|