Awakened2069/primitive_adds.rb

59 lines
946 B
Ruby
Raw Normal View History

2019-06-16 15:12:18 -04:00
class String
PUNCTUATION_MARKS = [".", "!", "?"]
def titleize
gsub(/\w+/i) do |match|
ret = match.downcase
ret[0] = ret[0].upcase
ret
end
end
def titleize!
replace titleize
end
def punctuated?
PUNCTUATION_MARKS.include?(self[-1])
end
def unpunctuated?
!punctuated?
end
end
class Integer
def to_dots
"" * self
end
end
class Object
def arrayify
[self]
end
end
class Array
def arrayify
self
end
def to_list(separator: nil)
separator = "and" if separator.nil?
if self.length == 0
nil
elsif self.length == 1
self.first
elsif self.length == 2
"#{self.first} #{separator} #{self.last}"
else
ret = clone
ret[ret.length - 1] = "#{separator} #{ret[ret.length - 1]}"
ret.join(", ")
end
end
def to_arcanum_with_dots
"#{self[0].to_s.titleize} #{self[1].to_dots}"
end
end