class String

Public Instance Methods

chars() click to toggle source
# File lib/ext/string.rb, line 9
def chars
  self.split("")
end
integer?() click to toggle source
# File lib/ext/string.rb, line 13
def integer?
  !! Integer(self)
rescue ArgumentError => e
  if e.message[-19..-1] == "too big for integer" || (self[0] == "0" && !self.match(/[a-zA-Z]/))
    begin
      self.to_f
      return true
    rescue
      false
    end
  end
  false
end
snakecase() click to toggle source
# File lib/ext/string.rb, line 58
def snakecase
  dup.bytes.inject("") do |str, ch|
    if ch <= 90 && ! str.empty?
      str << "_"
    end
    str << ch.chr.downcase
  end
end
to_big(*args) click to toggle source
# File lib/ext/string.rb, line 44
def to_big(*args)
  if args.first == 16
    self.chars.reverse.each_with_index.inject(0) do |t, v|
      t += (v[0].hex * (16 ** v[1]))
    end
  elsif args.first == 10
    self.chars.reverse.each_with_index.inject(0) do |t, v|
      t += (v[0].hex * (10 ** v[1]))
    end
  else
    to_i(*args)
  end
end
to_i(*args) click to toggle source
# File lib/ext/string.rb, line 27
def to_i(*args)
  case args.first
  when 16
    to_big(16)
  else
    begin
      Integer(self, args.first || 10)
    rescue => e
      if e.message[-19..-1] == "too big for integer"
        self.to_f(*args)
      else
        raise
      end
    end
  end
end
to_mask(mask_string) click to toggle source
# File lib/ext/string.rb, line 2
def to_mask(mask_string)
  mask_clean = mask_string.chars.reject{|ch| ch.match(/[^0-9A-Za-z]/) }.join

  str = mask_string.chars.map{|s| s.match(/[0-9A-Za-z]/) ? "%s" : s }.join
  (str % self.ljust(mask_clean.size, " ").chars).strip
end