embulk-filter-row 0.5.0 → 0.5.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: 54615ee2184dfcb3791aa6d92922f1f64a9905a5
4
- data.tar.gz: 5558f2a44121b9fdbfcee09d4f1d048ef934d20c
3
+ metadata.gz: 7c0430c1f25c684a07ddcb0112ec276efebafc20
4
+ data.tar.gz: 5fe2f45f5adc211e6a77f829782dd348e9182f7c
5
5
  SHA512:
6
- metadata.gz: 64168aceba7a817f404a6520c3e6ba5e499e9797bb6dcf97ca71eec26684a40f93f94a687b3e8284799c4ab6e09343cef416f68159adca30546c919da8f29390
7
- data.tar.gz: be28eba1b0afa8edbeae6c2857ee645ce9319b2cf10eac6ce57720321789121676ce3706dc280051bd887b51a05b61d58be6913e7638670fb1b210e92a31a852
6
+ metadata.gz: 99c28c3e038b21bd345da0bd20c43d61b311d884fe7d87f17d1f353f942879200a48d0a6c46e087ef274536202474929af13c3f5aa3047a7c90fb85644af428c
7
+ data.tar.gz: f50ab553637be0af685a8883edc49468e11388c7b30d22ffa86db33a5d1f859b1a058ee3881e1f5e2b26c239495c4e80de375d7ec99e30667143a35188af9f31
@@ -1,3 +1,9 @@
1
+ # 0.5.1 (2017-08-26)
2
+
3
+ Enhancements:
4
+
5
+ * Use old, but non-deprecated TimestampParser API to support embulk < 0.8.29
6
+
1
7
  # 0.5.0 (2017-08-23)
2
8
 
3
9
  Changes
@@ -15,13 +15,13 @@ configurations {
15
15
  provided
16
16
  }
17
17
 
18
- version = "0.5.0"
18
+ version = "0.5.1"
19
19
  sourceCompatibility = 1.7
20
20
  targetCompatibility = 1.7
21
21
 
22
22
  dependencies {
23
- compile "org.embulk:embulk-core:0.8.29+"
24
- provided "org.embulk:embulk-core:0.8.29+"
23
+ compile "org.embulk:embulk-core:0.8.+"
24
+ provided "org.embulk:embulk-core:0.8.+"
25
25
 
26
26
  compile "org.jruby.joni:joni:2.1.11"
27
27
  compile "org.jruby.jcodings:jcodings:1.0.18"
@@ -1,6 +1,6 @@
1
- #Mon Aug 10 13:48:48 UTC 2015
1
+ #Wed Aug 09 13:08:20 JST 2017
2
2
  distributionBase=GRADLE_USER_HOME
3
3
  distributionPath=wrapper/dists
4
4
  zipStoreBase=GRADLE_USER_HOME
5
5
  zipStorePath=wrapper/dists
6
- distributionUrl=https\://services.gradle.org/distributions/gradle-2.6-bin.zip
6
+ distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
@@ -1,5 +1,6 @@
1
1
  package org.embulk.filter.row.condition;
2
2
 
3
+ import com.google.common.base.Optional;
3
4
  import com.google.common.base.Throwables;
4
5
 
5
6
  import org.apache.commons.lang3.math.NumberUtils;
@@ -15,6 +16,7 @@ import org.embulk.spi.type.StringType;
15
16
  import org.embulk.spi.type.TimestampType;
16
17
  import org.embulk.spi.type.Type;
17
18
  import org.joda.time.DateTimeZone;
19
+ import org.jruby.embed.ScriptingContainer;
18
20
 
19
21
  public class ConditionFactory
20
22
  {
@@ -137,7 +139,7 @@ public class ConditionFactory
137
139
  String format = (String) conditionConfig.getFormat().get();
138
140
  DateTimeZone timezone = DateTimeZone.forID((String) conditionConfig.getTimezone().get());
139
141
 
140
- TimestampParser parser = new TimestampParser(format, timezone);
142
+ TimestampParser parser = getTimestampParser(format, timezone);
141
143
  try {
142
144
  Timestamp timestamp = parser.parse(argument);
143
145
  return new TimestampCondition(operator, timestamp, not);
@@ -150,4 +152,83 @@ public class ConditionFactory
150
152
  throw new ConfigException(String.format("RowFilterPlugin: Type mismatch on column: %s", columnName));
151
153
  }
152
154
  }
155
+
156
+ private class TimestampParserTaskImpl implements TimestampParser.Task
157
+ {
158
+ private final DateTimeZone defaultTimeZone;
159
+ private final String defaultTimestampFormat;
160
+ private final String defaultDate;
161
+ public TimestampParserTaskImpl(
162
+ DateTimeZone defaultTimeZone,
163
+ String defaultTimestampFormat,
164
+ String defaultDate)
165
+ {
166
+ this.defaultTimeZone = defaultTimeZone;
167
+ this.defaultTimestampFormat = defaultTimestampFormat;
168
+ this.defaultDate = defaultDate;
169
+ }
170
+ @Override
171
+ public DateTimeZone getDefaultTimeZone()
172
+ {
173
+ return this.defaultTimeZone;
174
+ }
175
+ @Override
176
+ public String getDefaultTimestampFormat()
177
+ {
178
+ return this.defaultTimestampFormat;
179
+ }
180
+ @Override
181
+ public String getDefaultDate()
182
+ {
183
+ return this.defaultDate;
184
+ }
185
+ @Override
186
+ public ScriptingContainer getJRuby()
187
+ {
188
+ return null;
189
+ }
190
+ }
191
+
192
+ private class TimestampParserColumnOptionImpl implements TimestampParser.TimestampColumnOption
193
+ {
194
+ private final Optional<DateTimeZone> timeZone;
195
+ private final Optional<String> format;
196
+ private final Optional<String> date;
197
+ public TimestampParserColumnOptionImpl(
198
+ Optional<DateTimeZone> timeZone,
199
+ Optional<String> format,
200
+ Optional<String> date)
201
+ {
202
+ this.timeZone = timeZone;
203
+ this.format = format;
204
+ this.date = date;
205
+ }
206
+ @Override
207
+ public Optional<DateTimeZone> getTimeZone()
208
+ {
209
+ return this.timeZone;
210
+ }
211
+ @Override
212
+ public Optional<String> getFormat()
213
+ {
214
+ return this.format;
215
+ }
216
+ @Override
217
+ public Optional<String> getDate()
218
+ {
219
+ return this.date;
220
+ }
221
+ }
222
+
223
+ private TimestampParser getTimestampParser(String format, DateTimeZone timezone)
224
+ {
225
+ // ToDo: Use following codes after deciding to drop supporting embulk < 0.8.29.
226
+ //
227
+ // return new TimestampParser(format, timezone);
228
+ String date = "1970-01-01";
229
+ TimestampParserTaskImpl task = new TimestampParserTaskImpl(timezone, format, date);
230
+ TimestampParserColumnOptionImpl columnOption = new TimestampParserColumnOptionImpl(
231
+ Optional.of(timezone), Optional.of(format), Optional.of(date));
232
+ return new TimestampParser(task, columnOption);
233
+ }
153
234
  }
@@ -1,5 +1,6 @@
1
1
  package org.embulk.filter.row.where;
2
2
 
3
+ import com.google.common.base.Optional;
3
4
  import com.google.common.base.Throwables;
4
5
  import org.embulk.config.ConfigException;
5
6
  import org.embulk.spi.Column;
@@ -16,6 +17,7 @@ import org.embulk.spi.type.StringType;
16
17
  import org.embulk.spi.type.TimestampType;
17
18
  import org.embulk.spi.type.Type;
18
19
  import org.joda.time.DateTimeZone;
20
+ import org.jruby.embed.ScriptingContainer;
19
21
  import org.msgpack.value.Value;
20
22
 
21
23
  // Literal Node of AST (Abstract Syntax Tree)
@@ -140,7 +142,7 @@ class StringLiteral extends ParserLiteral
140
142
  class TimestampLiteral extends ParserLiteral
141
143
  {
142
144
  protected Timestamp val;
143
- private static final DateTimeZone default_timezone = DateTimeZone.forID("UTC");
145
+ private static final DateTimeZone defaultTimeZone = DateTimeZone.forID("UTC");
144
146
 
145
147
  public TimestampLiteral(ParserLiteral literal)
146
148
  {
@@ -178,7 +180,7 @@ class TimestampLiteral extends ParserLiteral
178
180
  TimestampParseException ex = null;
179
181
  for (String format : formats) {
180
182
  try {
181
- TimestampParser timestampParser = new TimestampParser(format, default_timezone);
183
+ TimestampParser timestampParser = getTimestampParser(format, defaultTimeZone);
182
184
  this.val = timestampParser.parse(literal.val);
183
185
  break;
184
186
  }
@@ -215,6 +217,86 @@ class TimestampLiteral extends ParserLiteral
215
217
  {
216
218
  return val;
217
219
  }
220
+
221
+ private class TimestampParserTaskImpl implements TimestampParser.Task
222
+ {
223
+ private final DateTimeZone defaultTimeZone;
224
+ private final String defaultTimestampFormat;
225
+ private final String defaultDate;
226
+ public TimestampParserTaskImpl(
227
+ DateTimeZone defaultTimeZone,
228
+ String defaultTimestampFormat,
229
+ String defaultDate)
230
+ {
231
+ this.defaultTimeZone = defaultTimeZone;
232
+ this.defaultTimestampFormat = defaultTimestampFormat;
233
+ this.defaultDate = defaultDate;
234
+ }
235
+ @Override
236
+ public DateTimeZone getDefaultTimeZone()
237
+ {
238
+ return this.defaultTimeZone;
239
+ }
240
+ @Override
241
+ public String getDefaultTimestampFormat()
242
+ {
243
+ return this.defaultTimestampFormat;
244
+ }
245
+ @Override
246
+ public String getDefaultDate()
247
+ {
248
+ return this.defaultDate;
249
+ }
250
+ @Override
251
+ public ScriptingContainer getJRuby()
252
+ {
253
+ return null;
254
+ }
255
+ }
256
+
257
+ private class TimestampParserColumnOptionImpl implements TimestampParser.TimestampColumnOption
258
+ {
259
+ private final Optional<DateTimeZone> timeZone;
260
+ private final Optional<String> format;
261
+ private final Optional<String> date;
262
+ public TimestampParserColumnOptionImpl(
263
+ Optional<DateTimeZone> timeZone,
264
+ Optional<String> format,
265
+ Optional<String> date)
266
+ {
267
+ this.timeZone = timeZone;
268
+ this.format = format;
269
+ this.date = date;
270
+ }
271
+ @Override
272
+ public Optional<DateTimeZone> getTimeZone()
273
+ {
274
+ return this.timeZone;
275
+ }
276
+ @Override
277
+ public Optional<String> getFormat()
278
+ {
279
+ return this.format;
280
+ }
281
+ @Override
282
+ public Optional<String> getDate()
283
+ {
284
+ return this.date;
285
+ }
286
+ }
287
+
288
+ private TimestampParser getTimestampParser(String format, DateTimeZone timezone)
289
+ {
290
+ // ToDo: Use following codes after deciding to drop supporting embulk < 0.8.29.
291
+ //
292
+ // return new TimestampParser(format, timezone);
293
+ String date = "1970-01-01";
294
+ TimestampParserTaskImpl task = new TimestampParserTaskImpl(timezone, format, date);
295
+ TimestampParserColumnOptionImpl columnOption = new TimestampParserColumnOptionImpl(
296
+ Optional.of(timezone), Optional.of(format), Optional.of(date));
297
+ return new TimestampParser(task, columnOption);
298
+ }
299
+
218
300
  }
219
301
 
220
302
  class IdentifierLiteral extends ParserLiteral
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk-filter-row
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naotoshi Seo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-23 00:00:00.000000000 Z
11
+ date: 2017-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -96,7 +96,7 @@ files:
96
96
  - src/test/java/org/embulk/filter/row/condition/TestTimestampCondition.java
97
97
  - src/test/java/org/embulk/filter/row/where/TestParser.java
98
98
  - src/test/java/org/embulk/filter/row/where/TestYylex.java
99
- - classpath/embulk-filter-row-0.5.0.jar
99
+ - classpath/embulk-filter-row-0.5.1.jar
100
100
  - classpath/jcodings-1.0.18.jar
101
101
  - classpath/joni-2.1.11.jar
102
102
  homepage: https://github.com/sonots/embulk-filter-row