class OAuth2::Utils
Public Class Methods
params_from_query(query)
click to toggle source
Returns a Hash from a URL query string @param query [String] @return [Hash]
# File lib/oauth2-cocoa/utils.rb, line 14 def self.params_from_query(query) query ||= "" key_values = query.split("&") hash = {} key_values.each do |key_value| key_value = key_value.split("=") hash[key_value[0].to_sym] = key_value[1] end hash.with_indifferent_access end
parse_json(str_data) { |obj| ... }
click to toggle source
Parses a string or data object and converts it in data structure.
@param [String, NSData] str_data the string or data to serialize. @raise [ParserError] If the parsing of the passed string/data isn’t valid. @return [Hash, Array, NilClass] the converted data structure, nil if the incoming string isn’t valid.
# File lib/oauth2-cocoa/utils.rb, line 32 def self.parse_json(str_data, &block) return nil unless str_data data = str_data.respond_to?("dataUsingEncoding:") ? str_data.dataUsingEncoding(NSUTF8StringEncoding) : str_data opts = NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves | NSJSONReadingAllowFragments error = Pointer.new(:id) obj = NSJSONSerialization.JSONObjectWithData(data, options: opts, error: error) fail ParserError, error[0].description if error[0] if block_given? yield obj else obj end end
query_from_params(params)
click to toggle source
Returns a URL query string from a params Hash @param params [Hash] @return [String]
# File lib/oauth2-cocoa/utils.rb, line 49 def self.query_from_params(params) key_values = [] params.each do |key, value| value = value.to_s.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) key_values << "#{key}=#{value}" end if key_values.length > 0 "#{key_values.join('&')}" else "" end end
serialize_json(obj)
click to toggle source
Serialize a JSON object @return [String]
# File lib/oauth2-cocoa/utils.rb, line 7 def self.serialize_json(obj) NSJSONSerialization.dataWithJSONObject(obj, options: 0, error: nil).to_str end