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