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 +4 -4
- data/lib/apidiesel/dsl.rb +55 -1
- data/lib/apidiesel/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60f1db7f0462707d5b984581b41c98d78d3d4404
|
4
|
+
data.tar.gz: 9e90978a907d27fed6d8dc56f91141e13a274f5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
|
data/lib/apidiesel/version.rb
CHANGED