Module: Artifactory::Util

Extended by:
Util
Included in:
Util
Defined in:
lib/artifactory/util.rb

Instance Method Summary collapse

Instance Method Details

#camelize(string, lowercase = false) ⇒ String

Convert an underscored string to it’s camelcase equivalent constant.

Parameters:

  • string (String)

    the string to convert

Returns:

  • (String)


32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/artifactory/util.rb', line 32

def camelize(string, lowercase = false)
  result = string
    .to_s
    .split('_')
    .map { |e| e.capitalize }
    .join

  if lowercase
    result[0,1].downcase + result[1..-1]
  else
    result
  end
end

#rename_keys(options, map = {}) ⇒ Hash

Rename a list of keys to the given map.

Examples:

Rename the given keys

rename_keys(hash, foo: :bar, zip: :zap)

Parameters:

  • options (Hash)

    the options to map

  • map (Hash) (defaults to: {})

    the map of keys to map

Returns:

  • (Hash)


77
78
79
# File 'lib/artifactory/util.rb', line 77

def rename_keys(options, map = {})
  Hash[options.map { |k, v| [map[k] || k, v] }]
end

#slice(options, *keys) ⇒ Hash

Slice the given list of options with the given keys.

Parameters:

  • options (Hash)

    the list of options to slice

  • keys (Array<Object>)

    the keys to slice

Returns:

  • (Hash)

    the sliced hash



92
93
94
95
96
97
# File 'lib/artifactory/util.rb', line 92

def slice(options, *keys)
  keys.inject({}) do |hash, key|
    hash[key] = options[key] if options[key]
    hash
  end
end

#to_type(string) ⇒ Object



127
128
129
130
131
132
# File 'lib/artifactory/util.rb', line 127

def to_type(string)
  return true if string.eql?('true')
  return false if string.eql?('false')
  return string.to_i if numeric?(string)
  return string
end

#truncate(string, options = {}) ⇒ Object

Truncate the given string to a certain number of characters.

Parameters:

  • string (String)

    the string to truncate

  • options (Hash) (defaults to: {})

    the list of options (such as length)



54
55
56
57
58
59
60
61
62
# File 'lib/artifactory/util.rb', line 54

def truncate(string, options = {})
  length = options[:length] || 30

  if string.length > length
    string[0..length-3] + '...'
  else
    string
  end
end

#underscore(string) ⇒ String

Covert the given CaMelCaSeD string to under_score. Graciously borrowed from stackoverflow.com/questions/1509915.

Parameters:

  • string (String)

    the string to use for transformation

Returns:

  • (String)


14
15
16
17
18
19
20
21
22
# File 'lib/artifactory/util.rb', line 14

def underscore(string)
  string
    .to_s
    .gsub(/::/, '/')
    .gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
    .gsub(/([a-z\d])([A-Z])/,'\1_\2')
    .tr('-', '_')
    .downcase
end

#xml_to_hash(element, child_with_children = '', unique_children = true) ⇒ Object

Flatten an xml element with at most one child node with children into a hash.

Parameters:

  • element (REXML)

    xml element



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/artifactory/util.rb', line 106

def xml_to_hash(element, child_with_children = '', unique_children = true)
  properties = {}
  element.each_element_with_text do |e|
    if e.name.eql?(child_with_children)
      if unique_children
        e.each_element_with_text do |t|
          properties[t.name] = to_type(t.text)
        end
      else
        children = []
        e.each_element_with_text do |t|
          properties[t.name] = children.push(to_type(t.text))
        end
      end
    else
      properties[e.name] = to_type(e.text)
    end
  end
  properties
end