embulk-parser-jsonpath 0.1.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.
Files changed (37) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.travis.yml +7 -0
  4. data/CHANGELOG.md +5 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +107 -0
  7. data/build.gradle +111 -0
  8. data/config/checkstyle/checkstyle.xml +128 -0
  9. data/config/checkstyle/default.xml +108 -0
  10. data/example/conf.yml +18 -0
  11. data/example/dummy.rb +27 -0
  12. data/example/input.json +1006 -0
  13. data/example/input2.json +1006 -0
  14. data/example/seed.yml +8 -0
  15. data/gradle/wrapper/gradle-wrapper.jar +0 -0
  16. data/gradle/wrapper/gradle-wrapper.properties +6 -0
  17. data/gradlew +160 -0
  18. data/gradlew.bat +90 -0
  19. data/lib/embulk/guess/jsonpath.rb +61 -0
  20. data/lib/embulk/parser/jsonpath.rb +3 -0
  21. data/src/main/java/org/embulk/parser/jsonpath/ColumnCaster.java +97 -0
  22. data/src/main/java/org/embulk/parser/jsonpath/ColumnVisitorImpl.java +167 -0
  23. data/src/main/java/org/embulk/parser/jsonpath/JsonRecordValidateException.java +22 -0
  24. data/src/main/java/org/embulk/parser/jsonpath/JsonpathParserPlugin.java +148 -0
  25. data/src/main/java/org/embulk/parser/jsonpath/cast/BooleanCast.java +39 -0
  26. data/src/main/java/org/embulk/parser/jsonpath/cast/DoubleCast.java +41 -0
  27. data/src/main/java/org/embulk/parser/jsonpath/cast/JsonCast.java +40 -0
  28. data/src/main/java/org/embulk/parser/jsonpath/cast/LongCast.java +47 -0
  29. data/src/main/java/org/embulk/parser/jsonpath/cast/StringCast.java +82 -0
  30. data/src/test/java/org/embulk/parser/jsonpath/TestColumnCaster.java +256 -0
  31. data/src/test/java/org/embulk/parser/jsonpath/TestJsonpathParserPlugin.java +292 -0
  32. data/src/test/java/org/embulk/parser/jsonpath/cast/TestBooleanCast.java +56 -0
  33. data/src/test/java/org/embulk/parser/jsonpath/cast/TestDoubleCast.java +49 -0
  34. data/src/test/java/org/embulk/parser/jsonpath/cast/TestJsonCast.java +79 -0
  35. data/src/test/java/org/embulk/parser/jsonpath/cast/TestLongCast.java +41 -0
  36. data/src/test/java/org/embulk/parser/jsonpath/cast/TestStringCast.java +103 -0
  37. metadata +113 -0
@@ -0,0 +1,41 @@
1
+ package org.embulk.parser.jsonpath.cast;
2
+
3
+ import org.embulk.spi.time.Timestamp;
4
+ import org.junit.Test;
5
+
6
+ import static org.junit.Assert.assertEquals;
7
+
8
+ public class TestLongCast
9
+ {
10
+ @Test
11
+ public void asBoolean()
12
+ {
13
+ assertEquals(true, LongCast.asBoolean(1));
14
+ assertEquals(false, LongCast.asBoolean(0));
15
+ }
16
+
17
+ @Test
18
+ public void asLong()
19
+ {
20
+ assertEquals(1, LongCast.asLong(1));
21
+ }
22
+
23
+ @Test
24
+ public void asDouble()
25
+ {
26
+ assertEquals(1.0, LongCast.asDouble(1), 0.0);
27
+ }
28
+
29
+ @Test
30
+ public void asString()
31
+ {
32
+ assertEquals("1", LongCast.asString(1));
33
+ }
34
+
35
+ @Test
36
+ public void asTimestamp()
37
+ {
38
+ Timestamp expected = Timestamp.ofEpochSecond(1);
39
+ assertEquals(expected, LongCast.asTimestamp(1));
40
+ }
41
+ }
@@ -0,0 +1,103 @@
1
+ package org.embulk.parser.jsonpath.cast;
2
+
3
+ import org.embulk.EmbulkTestRuntime;
4
+ import org.embulk.spi.DataException;
5
+ import org.embulk.spi.time.Timestamp;
6
+ import org.embulk.spi.time.TimestampParser;
7
+ import org.joda.time.DateTimeZone;
8
+ import org.jruby.embed.ScriptingContainer;
9
+ import org.junit.Before;
10
+ import org.junit.Rule;
11
+ import org.junit.Test;
12
+
13
+ import static org.junit.Assert.assertEquals;
14
+ import static org.junit.Assert.assertTrue;
15
+ import static org.junit.Assert.fail;
16
+
17
+ public class TestStringCast
18
+ {
19
+ @Rule
20
+ public EmbulkTestRuntime runtime = new EmbulkTestRuntime();
21
+ public ScriptingContainer jruby;
22
+
23
+ @Before
24
+ public void createResource()
25
+ {
26
+ jruby = new ScriptingContainer();
27
+ }
28
+
29
+ @Test
30
+ public void asBoolean()
31
+ {
32
+ for (String str : StringCast.TRUE_STRINGS) {
33
+ assertEquals(true, StringCast.asBoolean(str));
34
+ }
35
+ for (String str : StringCast.FALSE_STRINGS) {
36
+ assertEquals(false, StringCast.asBoolean(str));
37
+ }
38
+ try {
39
+ StringCast.asBoolean("foo");
40
+ }
41
+ catch (Throwable t) {
42
+ assertTrue(t instanceof DataException);
43
+ }
44
+ }
45
+
46
+ @Test
47
+ public void asLong()
48
+ {
49
+ assertEquals(1, StringCast.asLong("1"));
50
+ try {
51
+ StringCast.asLong("1.5");
52
+ fail();
53
+ }
54
+ catch (Throwable t) {
55
+ assertTrue(t instanceof DataException);
56
+ }
57
+ try {
58
+ StringCast.asLong("foo");
59
+ fail();
60
+ }
61
+ catch (Throwable t) {
62
+ assertTrue(t instanceof DataException);
63
+ }
64
+ }
65
+
66
+ @Test
67
+ public void asDouble()
68
+ {
69
+ assertEquals(1.0, StringCast.asDouble("1"), 0.0);
70
+ assertEquals(1.5, StringCast.asDouble("1.5"), 0.0);
71
+ try {
72
+ StringCast.asDouble("foo");
73
+ fail();
74
+ }
75
+ catch (Throwable t) {
76
+ assertTrue(t instanceof DataException);
77
+ }
78
+ }
79
+
80
+ @Test
81
+ public void asString()
82
+ {
83
+ assertEquals("1", StringCast.asString("1"));
84
+ assertEquals("1.5", StringCast.asString("1.5"));
85
+ assertEquals("foo", StringCast.asString("foo"));
86
+ }
87
+
88
+ @Test
89
+ public void asTimestamp()
90
+ {
91
+ Timestamp expected = Timestamp.ofEpochSecond(1463084053, 123456000);
92
+ TimestampParser parser = new TimestampParser(jruby, "%Y-%m-%d %H:%M:%S.%N", DateTimeZone.UTC);
93
+ assertEquals(expected, StringCast.asTimestamp("2016-05-12 20:14:13.123456", parser));
94
+
95
+ try {
96
+ StringCast.asTimestamp("foo", parser);
97
+ fail();
98
+ }
99
+ catch (Throwable t) {
100
+ assertTrue(t instanceof DataException);
101
+ }
102
+ }
103
+ }
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: embulk-parser-jsonpath
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Hiroyuki Sato
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-08-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ~>
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ name: bundler
20
+ prerelease: false
21
+ type: :development
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '10.0'
33
+ name: rake
34
+ prerelease: false
35
+ type: :development
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: Parses Jsonpath files read by other file input plugins.
42
+ email:
43
+ - hiroysato@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - .gitignore
49
+ - .travis.yml
50
+ - CHANGELOG.md
51
+ - LICENSE.txt
52
+ - README.md
53
+ - build.gradle
54
+ - config/checkstyle/checkstyle.xml
55
+ - config/checkstyle/default.xml
56
+ - example/conf.yml
57
+ - example/dummy.rb
58
+ - example/input.json
59
+ - example/input2.json
60
+ - example/seed.yml
61
+ - gradle/wrapper/gradle-wrapper.jar
62
+ - gradle/wrapper/gradle-wrapper.properties
63
+ - gradlew
64
+ - gradlew.bat
65
+ - lib/embulk/guess/jsonpath.rb
66
+ - lib/embulk/parser/jsonpath.rb
67
+ - src/main/java/org/embulk/parser/jsonpath/ColumnCaster.java
68
+ - src/main/java/org/embulk/parser/jsonpath/ColumnVisitorImpl.java
69
+ - src/main/java/org/embulk/parser/jsonpath/JsonRecordValidateException.java
70
+ - src/main/java/org/embulk/parser/jsonpath/JsonpathParserPlugin.java
71
+ - src/main/java/org/embulk/parser/jsonpath/cast/BooleanCast.java
72
+ - src/main/java/org/embulk/parser/jsonpath/cast/DoubleCast.java
73
+ - src/main/java/org/embulk/parser/jsonpath/cast/JsonCast.java
74
+ - src/main/java/org/embulk/parser/jsonpath/cast/LongCast.java
75
+ - src/main/java/org/embulk/parser/jsonpath/cast/StringCast.java
76
+ - src/test/java/org/embulk/parser/jsonpath/TestColumnCaster.java
77
+ - src/test/java/org/embulk/parser/jsonpath/TestJsonpathParserPlugin.java
78
+ - src/test/java/org/embulk/parser/jsonpath/cast/TestBooleanCast.java
79
+ - src/test/java/org/embulk/parser/jsonpath/cast/TestDoubleCast.java
80
+ - src/test/java/org/embulk/parser/jsonpath/cast/TestJsonCast.java
81
+ - src/test/java/org/embulk/parser/jsonpath/cast/TestLongCast.java
82
+ - src/test/java/org/embulk/parser/jsonpath/cast/TestStringCast.java
83
+ - classpath/accessors-smart-1.1.jar
84
+ - classpath/asm-5.0.3.jar
85
+ - classpath/embulk-parser-jsonpath-0.1.0.jar
86
+ - classpath/json-path-2.2.0.jar
87
+ - classpath/json-smart-2.2.1.jar
88
+ - classpath/slf4j-api-1.7.16.jar
89
+ homepage: https://github.com/hiroyuki-sato/embulk-parser-jsonpath
90
+ licenses:
91
+ - MIT
92
+ metadata: {}
93
+ post_install_message:
94
+ rdoc_options: []
95
+ require_paths:
96
+ - lib
97
+ required_ruby_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ requirements: []
108
+ rubyforge_project:
109
+ rubygems_version: 2.1.9
110
+ signing_key:
111
+ specification_version: 4
112
+ summary: Jsonpath parser plugin for Embulk
113
+ test_files: []