module PactBroker::StringRefinements

Public Instance Methods

blank?() click to toggle source
# File lib/pact_broker/string_refinements.rb, line 4
def blank?
  false
end
camelcase(*separators) click to toggle source

ripped from rubyworks/facets, thank you

# File lib/pact_broker/string_refinements.rb, line 71
def camelcase(*separators)
  case separators.first
  when Symbol, TrueClass, FalseClass, NilClass
    first_letter = separators.shift
  end

  separators = ["_", "\\s"] if separators.empty?

  str = self.dup

  separators.each do |s|
    str = str.gsub(/(?:#{s}+)([a-z])/){ $1.upcase }
  end

  case first_letter
  when :upper, true
    str = str.gsub(/(\A|\s)([a-z])/){ $1 + $2.upcase }
  when :lower, false
    str = str.gsub(/(\A|\s)([A-Z])/){ $1 + $2.downcase }
  end

  str
end
dasherize() click to toggle source
# File lib/pact_broker/string_refinements.rb, line 66
def dasherize
  snakecase.tr("_", "-")
end
ellipsisize(minimum_length: 20, edge_length: 10) click to toggle source

Adopt from stackoverflow.com/questions/1451384/how-can-i-center-truncate-a-string

# File lib/pact_broker/string_refinements.rb, line 96
def ellipsisize(minimum_length: 20, edge_length: 10)
  return self if self.length < minimum_length || self.length <= edge_length * 2

  edge = "." * edge_length
  mid_length = self.length - edge_length * 2
  gsub(/(#{edge}).{#{mid_length},}(#{edge})/, '\1...\2')
end
integer?() click to toggle source
# File lib/pact_broker/string_refinements.rb, line 40
def integer?
  self =~ /^\d+$/
end
not_blank?() click to toggle source
# File lib/pact_broker/string_refinements.rb, line 48
def not_blank?
  !blank?
end
present?() click to toggle source
# File lib/pact_broker/string_refinements.rb, line 8
def present?
  true
end
snakecase() click to toggle source

ripped from rubyworks/facets, thank you

# File lib/pact_broker/string_refinements.rb, line 57
def snakecase
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
  .gsub(/([a-z\d])([A-Z])/,'\1_\2')
  .tr("-", "_")
  .gsub(/\s/, "_")
  .gsub(/__+/, "_")
  .downcase
end