module PactBroker::StringRefinements
Public Instance Methods
Source
# 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
ripped from rubyworks/facets, thank you
Source
# File lib/pact_broker/string_refinements.rb, line 66 def dasherize snakecase.tr("_", "-") end
Source
# 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
Adopt from stackoverflow.com/questions/1451384/how-can-i-center-truncate-a-string
Source
# File lib/pact_broker/string_refinements.rb, line 40 def integer? self =~ /^\d+$/ end
Source
# File lib/pact_broker/string_refinements.rb, line 48 def not_blank? !blank? end
Source
# 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
ripped from rubyworks/facets, thank you