module Refinements::Strings
Refinements for Strings.
Public Instance Methods
blank?()
click to toggle source
# File lib/refinements/strings.rb, line 37 def blank? match?(/\A\s*\z/) end
camelcase()
click to toggle source
# File lib/refinements/strings.rb, line 51 def camelcase if match?(self.class.delimiters) result = join_parts split(%r(\s*\-\s*|\s*\/\s*|\s*\:+\s*)), method: :up, delimiter: "::" join_parts result.split(/\s*\_\s*|\s+/), method: :up else up end end
delimiters()
click to toggle source
# File lib/refinements/strings.rb, line 6 def delimiters %r([a-z][A-Z]|\s*\-\s*|\s*\/\s*|\s*\:+\s*|\s*\_\s*|\s+) end
down()
click to toggle source
# File lib/refinements/strings.rb, line 46 def down return self if empty? first.downcase + self[1, size] end
first(number = 0)
click to toggle source
# File lib/refinements/strings.rb, line 13 def first number = 0 return self if empty? max = Integer number return self[0] if max.zero? return "" if max.negative? self[0..(max - 1)] end
join_parts(parts, method:, delimiter: "")
click to toggle source
:reek: DuplicateMethodCall :reek: UtilityFunction
# File lib/refinements/strings.rb, line 82 def join_parts parts, method:, delimiter: "" parts.reduce "" do |result, part| next part.__send__(method) if result.empty? "#{result}#{delimiter}#{part.__send__ method}" end end
last(number = 0)
click to toggle source
:reek: TooManyStatements
# File lib/refinements/strings.rb, line 25 def last number = 0 return self if empty? min = Integer number max = size - 1 return self[max] if min.zero? return "" if min.negative? self[(min + 1)..max] end
snakecase()
click to toggle source
# File lib/refinements/strings.rb, line 60 def snakecase if match?(self.class.delimiters) result = join_parts split(%r(\s*\-\s*|\s*\/\s*|\s*\:+\s*)), method: :down, delimiter: "/" join_parts result.split(/(?=[A-Z])|\s*\_\s*|\s+/), method: :down, delimiter: "_" else downcase end end
titleize()
click to toggle source
# File lib/refinements/strings.rb, line 69 def titleize if match?(self.class.delimiters) result = join_parts split(/(?=[A-Z])|\s*\_\s*|\s*\-\s*|\s+/), method: :up, delimiter: " " join_parts result.split(%r(\s*\/\s*|\s*\:+\s*)), method: :up, delimiter: "/" else capitalize end end
up()
click to toggle source
# File lib/refinements/strings.rb, line 41 def up return self if empty? first.upcase + self[1, size] end