apidiesel 0.4 → 0.5

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: 6ad7d5b465285922003cc57eccb72038b375c75c
4
- data.tar.gz: 0596b828ea08db72ebd61f639ba841c87e6c0b49
3
+ metadata.gz: 60f1db7f0462707d5b984581b41c98d78d3d4404
4
+ data.tar.gz: 9e90978a907d27fed6d8dc56f91141e13a274f5d
5
5
  SHA512:
6
- metadata.gz: 043d45dc54a38e89fc2db032e1c80d330593bcb9e294561b4e369faa7525d1b7b900da7d94a9c3e3d08e03e516380a54c22532982ece9cdad824f3ae6bd05b9a
7
- data.tar.gz: 759975abff6380be79a66423f3c9ef7397ca560287d57aa269a4b5281e06e771be129a63dbcc7f09b4648787fa16d3146603efb241df578ae35464370c31866f
6
+ metadata.gz: 422d9aca10b78ea62722611baa3e8234dcc7b5c05aa2b87ed39dfaae573e358f37e1a0ed160232f3136000cf42b215efad3060ea7c88de4801ec3fa153f9cf8c
7
+ data.tar.gz: efb5f850575dd7be9a49bb48319ac1ee973a71b951112dec2a4a65517654b6543796b2418171e98d0fb25b69401cfa0db0191584a9ec634f933632396764a15e
data/lib/apidiesel/dsl.rb CHANGED
@@ -270,6 +270,60 @@ module Apidiesel
270
270
  end
271
271
  end
272
272
 
273
+ # Returns `key` from the API response as Date.
274
+ #
275
+ # @param (see #string)
276
+ # @option (see #string)
277
+ def date(*args, **kargs)
278
+ args = normalize_arguments(args, kargs)
279
+ args.reverse_merge!(format: '%Y-%m-%d')
280
+
281
+ response_formatters << lambda do |data, processed_data|
282
+ value = get_value(data, args[:at])
283
+
284
+ value = apply_filter(args[:prefilter], value)
285
+
286
+ if args.has_key?(:on_error)
287
+ value = Date.strptime(value, args[:format]) rescue args[:on_error]
288
+ else
289
+ value = Date.strptime(value, args[:format])
290
+ end
291
+
292
+ value = apply_filter(args[:postfilter] || args[:filter], value)
293
+
294
+ processed_data[ args[:as] ] = value
295
+
296
+ processed_data
297
+ end
298
+ end
299
+
300
+ # Returns `key` from the API response as Time.
301
+ #
302
+ # @param (see #string)
303
+ # @option (see #string)
304
+ def time(*args, **kargs)
305
+ args = normalize_arguments(args, kargs)
306
+ args.reverse_merge!(format: '%Y-%m-%d')
307
+
308
+ response_formatters << lambda do |data, processed_data|
309
+ value = get_value(data, args[:at])
310
+
311
+ value = apply_filter(args[:prefilter], value)
312
+
313
+ if args.has_key?(:on_error)
314
+ value = Time.strptime(value, args[:format]) rescue args[:on_error]
315
+ else
316
+ value = Time.strptime(value, args[:format])
317
+ end
318
+
319
+ value = apply_filter(args[:postfilter] || args[:filter], value)
320
+
321
+ processed_data[ args[:as] ] = value
322
+
323
+ processed_data
324
+ end
325
+ end
326
+
273
327
  # Returns an array of subhashes
274
328
  #
275
329
  # @example
@@ -431,7 +485,7 @@ module Apidiesel
431
485
  end
432
486
  end
433
487
 
434
- %w{value string integer float hash array datetime objects symbol}.each do |name|
488
+ %w{value string integer float hash array datetime date time objects symbol}.each do |name|
435
489
  define_method "x_#{name}".to_sym, ->(*args, **kargs, &block) { }
436
490
  end
437
491
 
@@ -1,3 +1,3 @@
1
1
  module Apidiesel
2
- VERSION = "0.4"
2
+ VERSION = "0.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apidiesel
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan-Christian Foeh