Module: NiceHttpUtils

Defined in:
lib/nice_http/utils/get_value_xml_tag.rb,
lib/nice_http/utils/set_value_xml_tag.rb,
lib/nice_http/utils/basic_authentication.rb

Class Method Summary collapse

Class Method Details

.basic_authentication(user:, password:, strict: false) ⇒ String

returns the seed for Basic authentication

Parameters:

  • user (String)
  • password (String)
  • strict (Boolean) (defaults to: false)

    (default: false) use strict_encode64 if true, if not encode64

Returns:

  • (String)

    seed string to be used on Authorization key header on a get request



9
10
11
12
13
14
15
16
17
# File 'lib/nice_http/utils/basic_authentication.rb', line 9

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) ⇒ String, Array

get a value of xml tag

Parameters:

  • tag_name (String)
  • xml_string (String)
  • take_off_prefix (Boolean) (defaults to: false)

    (optional). true, false(default)

Returns:

  • (String, Array)

    the value or an array of all values found with this tag_name



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/nice_http/utils/get_value_xml_tag.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) ⇒ String

set a value on xml tag

Parameters:

  • tag_name (String)
  • xml_string (String)
  • value (String)
  • take_off_prefix (Boolean) (defaults to: false)

    (optional). true, false(default)

Returns:

  • (String)

    with the new value



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/nice_http/utils/set_value_xml_tag.rb', line 11

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