embulk-filter-query_string 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/{LICENSE.txt → LICENSE} +0 -0
- data/NOTICE +2 -0
- data/README.md +2 -0
- data/build.gradle +1 -1
- data/src/main/java/org/embulk/filter/query_string/QueryStringFilterPlugin.java +22 -5
- data/src/test/java/org/embulk/filter/query_string/TestQueryStringFilterPlugin.java +40 -1
- data/src/test/resources/testOpenWithInvalidValue.yml +4 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3af78f6e9fa1f55d7a8817b3439b2465b958778
|
4
|
+
data.tar.gz: 18c445e7f9a77f1031fb8208327cf87505c9016c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b971c444060d50586dfdbe435ec1c4b21ed654331a15869c9f1365f7bba4e69470342af9202a2d9e4873fd093f632077f611483df3a3a540cee0470312265c9
|
7
|
+
data.tar.gz: eac337937754d47bd4e6ed5e154e65427d6718eae9fdefa91bfc61157894e431137ef5d2ce1e4efff20e7638ac394bc47bf9d3a542dc59af0914ae50928a7b19
|
data/{LICENSE.txt → LICENSE}
RENAMED
File without changes
|
data/NOTICE
ADDED
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
The query string filter plugin parses the column contents as query string and insert columns from that field.
|
4
4
|
|
5
|
+
[![Circle CI](https://circleci.com/gh/mwed/embulk-filter-query_string.svg?style=svg)](https://circleci.com/gh/mwed/embulk-filter-query_string)
|
6
|
+
|
5
7
|
## Overview
|
6
8
|
|
7
9
|
* **Plugin type**: filter
|
data/build.gradle
CHANGED
@@ -79,7 +79,7 @@ task gemspec {
|
|
79
79
|
gemspecFile.write($/
|
80
80
|
Gem::Specification.new do |spec|
|
81
81
|
spec.name = "embulk-filter-query_string"
|
82
|
-
spec.version = "0.1.
|
82
|
+
spec.version = "0.1.1"
|
83
83
|
spec.authors = ["Minnano Wedding Co., Ltd."]
|
84
84
|
spec.summary = %[Query String filter plugin for Embulk]
|
85
85
|
spec.description = %[The query string filter plugin parses the column contents as query string and insert columns from that field.]
|
@@ -115,7 +115,12 @@ public class QueryStringFilterPlugin
|
|
115
115
|
String key = queryString.substring(keyStart, keyEnd);
|
116
116
|
String value = queryString.substring(valueStart, valueEnd);
|
117
117
|
|
118
|
-
|
118
|
+
try {
|
119
|
+
storage.put(key, Double.parseDouble(value));
|
120
|
+
}
|
121
|
+
catch (NumberFormatException e) {
|
122
|
+
storage.put(key, null);
|
123
|
+
}
|
119
124
|
}
|
120
125
|
};
|
121
126
|
|
@@ -125,9 +130,15 @@ public class QueryStringFilterPlugin
|
|
125
130
|
public void parseKeyValuePair(String queryString, int keyStart, int keyEnd, int valueStart, int valueEnd, Map<String, Object> storage)
|
126
131
|
{
|
127
132
|
String key = queryString.substring(keyStart, keyEnd);
|
128
|
-
long value = ParseUtils.parseUnsignedLong(queryString, valueStart, valueEnd);
|
129
133
|
|
130
|
-
|
134
|
+
try {
|
135
|
+
long value = ParseUtils.parseUnsignedLong(queryString, valueStart, valueEnd);
|
136
|
+
|
137
|
+
storage.put(key, value);
|
138
|
+
}
|
139
|
+
catch (NumberFormatException e) {
|
140
|
+
storage.put(key, null);
|
141
|
+
}
|
131
142
|
}
|
132
143
|
};
|
133
144
|
|
@@ -137,9 +148,15 @@ public class QueryStringFilterPlugin
|
|
137
148
|
public void parseKeyValuePair(String queryString, int keyStart, int keyEnd, int valueStart, int valueEnd, Map<String, Object> storage)
|
138
149
|
{
|
139
150
|
String key = queryString.substring(keyStart, keyEnd);
|
140
|
-
long value = ParseUtils.parseUnsignedLong(queryString, valueStart, valueEnd);
|
141
151
|
|
142
|
-
|
152
|
+
try {
|
153
|
+
long value = ParseUtils.parseUnsignedLong(queryString, valueStart, valueEnd);
|
154
|
+
|
155
|
+
storage.put(key, Timestamp.ofEpochSecond(value));
|
156
|
+
}
|
157
|
+
catch (NumberFormatException e) {
|
158
|
+
storage.put(key, null);
|
159
|
+
}
|
143
160
|
}
|
144
161
|
};
|
145
162
|
|
@@ -29,6 +29,7 @@ import org.embulk.spi.PageReader;
|
|
29
29
|
import org.embulk.spi.PageTestUtils;
|
30
30
|
import org.embulk.spi.Schema;
|
31
31
|
import org.embulk.spi.TestPageBuilderReader;
|
32
|
+
import org.junit.Ignore;
|
32
33
|
import org.junit.Rule;
|
33
34
|
import org.junit.Test;
|
34
35
|
|
@@ -38,7 +39,9 @@ import java.util.List;
|
|
38
39
|
|
39
40
|
import static org.embulk.spi.type.Types.STRING;
|
40
41
|
import static org.hamcrest.CoreMatchers.is;
|
42
|
+
import static org.junit.Assert.assertEquals;
|
41
43
|
import static org.junit.Assert.assertThat;
|
44
|
+
import static org.junit.Assert.assertTrue;
|
42
45
|
|
43
46
|
public class TestQueryStringFilterPlugin
|
44
47
|
{
|
@@ -106,13 +109,49 @@ public class TestQueryStringFilterPlugin
|
|
106
109
|
|
107
110
|
assertThat(pageReader.getString(0), is("before"));
|
108
111
|
assertThat(pageReader.getString(1), is("one"));
|
109
|
-
|
112
|
+
assertEquals(2L, pageReader.getLong(2));
|
110
113
|
assertThat(pageReader.getString(3), is("after"));
|
111
114
|
}
|
112
115
|
}
|
113
116
|
});
|
114
117
|
}
|
115
118
|
|
119
|
+
@Ignore
|
120
|
+
@Test
|
121
|
+
public void testOpenWithInvalidValue()
|
122
|
+
{
|
123
|
+
ConfigSource configSource = loadConfigSource("testOpenWithInvalidValue.yml");
|
124
|
+
final Schema inputSchema = Schema.builder()
|
125
|
+
.add("qs", STRING)
|
126
|
+
.build();
|
127
|
+
|
128
|
+
final QueryStringFilterPlugin plugin = new QueryStringFilterPlugin();
|
129
|
+
plugin.transaction(configSource, inputSchema, new FilterPlugin.Control()
|
130
|
+
{
|
131
|
+
@Override
|
132
|
+
public void run(TaskSource taskSource, Schema outputSchema)
|
133
|
+
{
|
134
|
+
TestPageBuilderReader.MockPageOutput mockPageOutput = new TestPageBuilderReader.MockPageOutput();
|
135
|
+
PageOutput pageOutput = plugin.open(taskSource, inputSchema, outputSchema, mockPageOutput);
|
136
|
+
|
137
|
+
List<Page> pages = PageTestUtils.buildPage(runtime.getBufferAllocator(), inputSchema, "/path?q1=alpha");
|
138
|
+
for (Page page : pages) {
|
139
|
+
pageOutput.add(page);
|
140
|
+
}
|
141
|
+
|
142
|
+
pageOutput.finish();
|
143
|
+
pageOutput.close();
|
144
|
+
|
145
|
+
PageReader pageReader = new PageReader(outputSchema);
|
146
|
+
for (Page page : mockPageOutput.pages) {
|
147
|
+
pageReader.setPage(page);
|
148
|
+
|
149
|
+
assertTrue(pageReader.isNull(0));
|
150
|
+
}
|
151
|
+
}
|
152
|
+
});
|
153
|
+
}
|
154
|
+
|
116
155
|
private ConfigSource loadConfigSource(String yamlPath)
|
117
156
|
{
|
118
157
|
try {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-filter-query_string
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Minnano Wedding Co., Ltd.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -46,7 +46,8 @@ extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
48
|
- .gitignore
|
49
|
-
- LICENSE
|
49
|
+
- LICENSE
|
50
|
+
- NOTICE
|
50
51
|
- README.md
|
51
52
|
- build.gradle
|
52
53
|
- config/checkstyle/checkstyle.xml
|
@@ -59,6 +60,7 @@ files:
|
|
59
60
|
- src/main/java/org/embulk/filter/query_string/QueryStringFilterPlugin.java
|
60
61
|
- src/test/java/org/embulk/filter/query_string/TestQueryStringFilterPlugin.java
|
61
62
|
- src/test/resources/testOpen.yml
|
63
|
+
- src/test/resources/testOpenWithInvalidValue.yml
|
62
64
|
- src/test/resources/testTransaction.yml
|
63
65
|
- classpath/commons-codec-1.9.jar
|
64
66
|
- classpath/commons-logging-1.2.jar
|