Sha256: b113b1ed3cf275912474b6200e72f0a2f9800832d7a167927967655851b8bc61

Contents?: true

Size: 1.63 KB

Versions: 187

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

module Twilio
  def self.serialize_iso8601_date(date)
    if date.eql?(:unset)
      date
    elsif date.is_a?(Date)
      date.iso8601
    elsif date.is_a?(Time)
      date.strftime('%Y-%m-%d')
    elsif date.is_a?(String)
      date
    end
  end

  def self.serialize_iso8601_datetime(date)
    if date.eql?(:unset)
      date
    elsif date.is_a?(Date)
      Time.new(date.year, date.month, date.day).utc.iso8601
    elsif date.is_a?(Time)
      date.utc.iso8601
    elsif date.is_a?(String)
      date
    end
  end

  def self.deserialize_rfc2822(date)
    Time.rfc2822(date) unless date.nil?
  end

  def self.deserialize_iso8601_date(date)
    Date.parse(date) unless date.nil?
  end

  def self.deserialize_iso8601_datetime(date)
    Time.parse(date) unless date.nil?
  end

  def self.serialize_object(object)
    if object.is_a?(Hash) || object.is_a?(Array)
      JSON.generate(object)
    else
      object
    end
  end

  def self.flatten(map, result = {}, previous = [])
    map.each do |key, value|
      if value.is_a? Hash
        self.flatten(value, result, previous + [key])
      else
        result[(previous + [key]).join('.')] = value
      end
    end

    result
  end

  def self.prefixed_collapsible_map(map, prefix)
    result = {}
    if map.is_a? Hash
      flattened = self.flatten(map)
      result = {}
      flattened.each do |key, value|
        result[prefix + '.' + key] = value
      end
    end

    result
  end

  def self.serialize_list(input_list)
    return input_list unless input_list.is_a? Array
    result = []
    input_list.each do |e|
      result.push yield e
    end
    result
  end
end

Version data entries

187 entries across 187 versions & 2 rubygems

Version Path
twilio-ruby-7.3.6 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.3.5 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.3.4 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.3.3 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.3.2 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.3.1 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.3.0 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.2.4 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.2.3 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.2.2 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.2.1 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.2.0 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.1.1 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.0.2 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.0.1 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.0.0 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.0.0.pre.rc.3 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-7.0.0.pre.rc.2 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-6.12.1 lib/twilio-ruby/framework/serialize.rb
twilio-ruby-6.12.0 lib/twilio-ruby/framework/serialize.rb