apidiesel 0.4 → 0.5

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.
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