embulk-parser-variable_length_bytes 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a57c31f4ee057c374f90d256ba36c8056a9338c0
4
- data.tar.gz: 63ed701986a6ad4537e0e4018a2612c825688e77
3
+ metadata.gz: 7e989400587d6450b34c2805d5747ded0a97c036
4
+ data.tar.gz: 85d3ac18255d16726f074d7051ed8ccae672dbe9
5
5
  SHA512:
6
- metadata.gz: 1a79d0ea9573060d3f11a4d68340a44733460af71136a8a232d3b0ab00988b893b82db30f743c120dfbb4df9a157c1027bcb9cdb1743c1c7c6279d4964e2701d
7
- data.tar.gz: b5057178b22c5c27b7bbcbb9d95e9fa7ecc5c3df29b2d39d76e98356194b66dc1b5166ff44f58d28d82f8c458077fd84d133fe3e966964c365362413a3cb239c
6
+ metadata.gz: af303c131a2984b44126cbdd9876e8b61ec46933ae83e1124aa0c8d5955e5f01d8e7c711a183f45c6b1b8aa8f60f7d52e31f6694986b92ea81319960a07472e1
7
+ data.tar.gz: 6dc42d0699a64b213a65393f28fec47d27335395021f44cd6c63f8d04b3a7d4a9631ff5419e0df8fc2d4dad39154d04cdf53597deef2596928319bf0b774bfd7
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Variable Length Bytes parser plugin for Embulk
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/embulk-parser-variable_length_bytes.svg)](https://badge.fury.io/rb/embulk-parser-variable_length_bytes)
4
+
3
5
  Variable length bytes record parser plugin for Embulk.
4
6
 
5
7
  ## Overview
@@ -7,6 +9,11 @@ Variable length bytes record parser plugin for Embulk.
7
9
  * **Plugin type**: parser
8
10
  * **Guess supported**: no
9
11
 
12
+ ## Install
13
+
14
+ ```shell script
15
+ $ embulk gem install embulk-parser-variable_length_bytes
16
+ ```
10
17
  ## Configuration
11
18
 
12
19
  - **columns**: Specify column name and type, range of bytes('\<start\>..\<end\>'). If the last column has a variable length, specify it as '\<start\>...'. (array, required)
@@ -32,20 +39,9 @@ in:
32
39
  - {name: description, type: string, pos: '20...'}
33
40
  ```
34
41
 
42
+ ## Build
35
43
 
36
- ## Install plugin
37
-
38
- Currently the status of this plugin is work in progress.
39
-
40
- To install manually.
41
-
42
- ```
43
- $ git clone https://github.com/koji-m/embulk-parser-variable_length_bytes.git
44
- $ cd embulk-parser-variable_length_bytes
45
- $ ./gradlew package
46
-
47
- # prepare config.yml file
48
-
49
- $ embulk run -L path/to/embulk-parser-variable_length_bytes config.yml
44
+ ```shell script
45
+ $ ./gradlew gem
50
46
  ```
51
47
 
@@ -13,7 +13,7 @@ configurations {
13
13
  provided
14
14
  }
15
15
 
16
- version = "0.1.0"
16
+ version = "0.1.1"
17
17
 
18
18
  sourceCompatibility = 1.8
19
19
  targetCompatibility = 1.8
@@ -4,6 +4,7 @@ import com.google.common.base.Optional;
4
4
  import com.google.common.collect.ImmutableSet;
5
5
  import org.embulk.config.Config;
6
6
  import org.embulk.config.ConfigDefault;
7
+ import org.embulk.config.ConfigException;
7
8
  import org.embulk.config.ConfigSource;
8
9
  import org.embulk.config.Task;
9
10
  import org.embulk.config.TaskSource;
@@ -167,8 +168,7 @@ public class VariableLengthBytesParserPlugin
167
168
  }
168
169
  }
169
170
  catch (UnsupportedEncodingException e) {
170
- // ToDo
171
- System.err.println("UnsupportedEncoding");
171
+ throw new DataException("Could not decode with specified charset");
172
172
  }
173
173
  }
174
174
  pageBuilder.addRecord();
@@ -202,8 +202,7 @@ public class VariableLengthBytesParserPlugin
202
202
  }
203
203
  }
204
204
  catch (UnsupportedEncodingException e) {
205
- // ToDo
206
- System.err.println("UnsupportedEncoding");
205
+ throw new DataException("Could not decode with specified charset");
207
206
  }
208
207
  }
209
208
  Column varLenColumn = columns.get(numColumns - 1);
@@ -268,8 +267,7 @@ public class VariableLengthBytesParserPlugin
268
267
  }
269
268
  }
270
269
  catch (UnsupportedEncodingException e) {
271
- // ToDo
272
- System.err.println("UnsupportedEncoding");
270
+ throw new DataException("Could not decode with specified charset");
273
271
  }
274
272
  pageBuilder.addRecord();
275
273
  }
@@ -313,6 +311,9 @@ public class VariableLengthBytesParserPlugin
313
311
  while (true) {
314
312
  int len = is.read(buf, totalLen, bufSize - totalLen);
315
313
  if (len < 0) {
314
+ if (totalLen > 0) {
315
+ throw new DataException("File ended with insufficient record length");
316
+ }
316
317
  break;
317
318
  }
318
319
  totalLen += len;
@@ -330,6 +331,9 @@ public class VariableLengthBytesParserPlugin
330
331
  while (true) {
331
332
  int len = is.read(buf, totalLen, bufSize - totalLen);
332
333
  if (len < 0) {
334
+ if (totalLen > 0) {
335
+ throw new DataException("File ended with insufficient record length");
336
+ }
333
337
  break;
334
338
  }
335
339
  totalLen += len;
@@ -339,7 +343,7 @@ public class VariableLengthBytesParserPlugin
339
343
  if (invalidRecordSeparator(buf, recordSeparator,
340
344
  recordSize, recordSeparatorSize)) {
341
345
  if (stopOnInvalidRecord) {
342
- throw new RecordException(String.format("Invalid record separator(%s): %d", fileName));
346
+ throw new DataException(String.format("Invalid record separator(%s): %d", fileName));
343
347
  }
344
348
  logger.warn(String.format("Skipped record: file: %s, record-separator:%d,%d:%s", fileName, buf[bufSize - 2], buf[bufSize - 1],
345
349
  new String(buf, java.nio.charset.Charset.forName("Shift_JIS"))));
@@ -352,24 +356,6 @@ public class VariableLengthBytesParserPlugin
352
356
  }
353
357
  pageBuilder.finish();
354
358
  }
355
- } catch (Exception e) {
356
- // ToDo
357
- }
358
- }
359
-
360
- static class RecordException extends DataException
361
- {
362
- RecordException(String cause)
363
- {
364
- super(cause);
365
- }
366
- }
367
-
368
- static class ConfigException extends DataException
369
- {
370
- ConfigException(String cause)
371
- {
372
- super(cause);
373
359
  }
374
360
  }
375
361
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-parser-variable_length_bytes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Koji Matsumoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-08 00:00:00.000000000 Z
11
+ date: 2020-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -49,7 +49,7 @@ files:
49
49
  - LICENSE.txt
50
50
  - README.md
51
51
  - build.gradle
52
- - classpath/embulk-parser-variable_length_bytes-0.1.0.jar
52
+ - classpath/embulk-parser-variable_length_bytes-0.1.1.jar
53
53
  - config/checkstyle/checkstyle.xml
54
54
  - config/checkstyle/default.xml
55
55
  - gradle/wrapper/gradle-wrapper.jar