module NiceHttpUtils

Public Class Methods

basic_authentication(user:, password:, strict: false) click to toggle source

returns the seed for Basic authentication @param user [String] @param password [String] @param strict [Boolean] (default: false) use strict_encode64 if true, if not encode64 @return [String] seed string to be used on Authorization key header on a get request

# File lib/nice_http/utils.rb, line 99
def self.basic_authentication(user:, password:, strict: false)
  require "base64"
  if strict
    seed = "Basic " + Base64.strict_encode64(user + ":" + password)
  else
    seed = "Basic " + Base64.encode64(user + ":" + password)
  end
  return seed
end
get_value_xml_tag(tag_name, xml_string, take_off_prefix = false) click to toggle source

get a value of xml tag @param tag_name [String] @param xml_string [String] @param take_off_prefix [Boolean] (optional). true, false(default) @return [String, Array] the value or an array of all values found with this tag_name

# File lib/nice_http/utils.rb, line 9
def self.get_value_xml_tag(tag_name, xml_string, take_off_prefix = false)
  return nil if xml_string.nil?
  xml_string2 = xml_string.dup()
  if take_off_prefix
    i = tag_name.index(":")
    if !i.nil?
      tag_name = tag_name[i + 1..tag_name.length]
    end
  end

  ret = Array.new()
  if xml_string2.to_s() != ""
    if take_off_prefix
      xml_string2.gsub!(/<[a-zA-Z0-9]+:#{tag_name} [^>]*>/i, "<" + tag_name + ">")
      xml_string2.gsub!(/<\/[a-zA-Z0-9]+:#{tag_name}>/i, "</" + tag_name + ">")
      xml_string2.gsub!(/<[a-zA-Z0-9]+:#{tag_name}>/i, "<" + tag_name + ">")
    end

    xml_string2.gsub!(/<#{tag_name} [^>]*>/i, "<" + tag_name + ">")

    tag1 = "<" + tag_name + ">"
    tag2 = "</" + tag_name + ">"

    x = xml_string2.index(tag1)
    if !x.nil?
      x += tag1.size
      begin
        y = xml_string2.index(tag2)
        if y.nil?
          ret.push("")
          x = nil
        else
          y -= 1
          value = xml_string2[x..y]
          ret.push(value)
          xml_string2 = xml_string2[y + tag2.size..xml_string2.length]
          x = xml_string2.index(tag1)
          if !x.nil?
            x += tag1.size
          end
        end
      end while !x.nil?
    else
      ret.push("")
    end
  else
    ret.push("")
  end
  if ret.size == 1
    return ret[0].to_s()
  else
    return ret
  end
end
set_value_xml_tag(tag_name, xml_string, value, take_off_prefix = false) click to toggle source

set a value on xml tag @param tag_name [String] @param xml_string [String] @param value [String] @param take_off_prefix [Boolean] (optional). true, false(default) @return [String] with the new value

# File lib/nice_http/utils.rb, line 72
def self.set_value_xml_tag(tag_name, xml_string, value, take_off_prefix = false)
  tag_name = tag_name.to_s
  if take_off_prefix
    i = tag_name.index(":")
    tag_name = tag_name[i + 1..tag_name.length] unless i.nil?
  end
  if xml_string.to_s != ""
    if take_off_prefix
      old_value = NiceHttpUtils.get_value_xml_tag(tag_name, xml_string.dup, true)
      xml_string.gsub!(/:#{tag_name}>#{Regexp.escape(old_value)}<\//i, ":" + tag_name + ">" + value + "</")
      xml_string.gsub!(/<#{tag_name}>#{Regexp.escape(old_value)}<\//i, "<" + tag_name + ">" + value + "</")
    else
      xml_string.gsub!(/<#{tag_name}>.*<\/#{tag_name}>/i, "<" + tag_name + ">" + value + "</" + tag_name + ">")
    end
    return xml_string
  else
    return ""
  end
end