class FaradayMiddleware::ParseDates

Parse dates from response body

Constants

ISO_DATE_FORMAT

Public Class Methods

new(app, options = {}) click to toggle source
Calls superclass method
# File lib/faraday_middleware/response/parse_dates.rb, line 12
def initialize(app, options = {})
  @regexp = options[:match] || ISO_DATE_FORMAT
  super(app)
end

Public Instance Methods

call(env) click to toggle source
# File lib/faraday_middleware/response/parse_dates.rb, line 17
def call(env)
  response = @app.call(env)
  parse_dates! response.env[:body]
  response
end

Private Instance Methods

parse_dates!(value) click to toggle source
# File lib/faraday_middleware/response/parse_dates.rb, line 25
def parse_dates!(value)
  case value
  when Hash
    value.each do |key, element|
      value[key] = parse_dates!(element)
    end
  when Array
    value.each_with_index do |element, index|
      value[index] = parse_dates!(element)
    end
  when @regexp
    Time.parse(value)
  else
    value
  end
end