module TheCaptain::Utility::Helper

Public Instance Methods

normalize_params(params) click to toggle source
# File lib/the_captain/utility/helper.rb, line 10
def normalize_params(params)
  symbolize_names(params)
end
normalize_path(api_path, resource_id) click to toggle source

Formats the destination path Ex: normalize_path(“/foo/%<resource_id>s/bar”, 101) #=> “/foo/101/bar”

normalize_path("/foo/%<resource_id>s/bar", "user@example.com") #=> "/foo/user%40example.com/bar"
# File lib/the_captain/utility/helper.rb, line 17
def normalize_path(api_path, resource_id)
  return api_path unless resource_id
  format(api_path, resource_id: CGI.escape(resource_id))
end
symbolize_names(object) click to toggle source

Recursively traverses a Hash table to ensure keys are symbolized. A necessary evil to ensure data is handled correctly throughout the library processing.

# File lib/the_captain/utility/helper.rb, line 24
def symbolize_names(object)
  case object
  when Hash
    {}.tap do |new_hash|
      object.each do |key, value|
        key = begin
          key.to_sym
        rescue StandardError
          key
        end
        new_hash[key] = symbolize_names(value)
      end
    end
  when Array
    object.map { |value| symbolize_names(value) }
  else
    object
  end.freeze
end