module BusinessCentral::Object::URLHelper

Public Instance Methods

encode_url_object(object) click to toggle source
# File lib/business_central/object/url_helper.rb, line 6
def encode_url_object(object)
  URI::RFC2396_Parser.new.escape(object)
end
encode_url_params(query) click to toggle source
# File lib/business_central/object/url_helper.rb, line 10
def encode_url_params(query)
  CGI.escape(query)
end
odata_encode(value) click to toggle source
# File lib/business_central/object/url_helper.rb, line 14
def odata_encode(value)
  value = value.dup
  value.gsub!(/'/, "''") if value =~ /'/
  value.to_s
end

Private Instance Methods

replace_template_with_array_values(query, values) click to toggle source
# File lib/business_central/object/url_helper.rb, line 35
def replace_template_with_array_values(query, values)
  query.scan(/\?/).each_with_index do |_character, index|
    character_position = query =~ /\?/
    query[character_position] = odata_encode(values[index])
  end
  query
end
replace_template_with_hash_values(query, values) click to toggle source
# File lib/business_central/object/url_helper.rb, line 28
def replace_template_with_hash_values(query, values)
  values.first.each do |key, value|
    query.gsub!(/:#{key}/, odata_encode(value))
  end
  query
end
replace_template_with_value(query, values) click to toggle source
# File lib/business_central/object/url_helper.rb, line 22
def replace_template_with_value(query, values)
  query = query.dup
  return replace_template_with_hash_values(query, values) if values.first.is_a?(Hash)
  replace_template_with_array_values(query, values)
end