Class: String
Direct Known Subclasses
Class Method Summary collapse
-
.random(length) ⇒ Object
Generates string of random text of the specified length.
Instance Method Summary collapse
- #adjective ⇒ Object (also: #adjectivize)
- #blank? ⇒ Boolean
- #capitalize ⇒ Object
- #commaize(places = 3) ⇒ Object
- #content_length ⇒ Object
- #headercase ⇒ Object (also: #headerize)
- #html_escape ⇒ Object
-
#original_sequel_titlecase ⇒ Object
adapt titlecase method to downcase short prepositions in middle.
-
#original_sequel_underscore ⇒ Object
adapt underscore method to convert whitespace to underscores.
-
#prepend_html(addition, tag) ⇒ Object
Prepend addition just inside the specified tag of document.
- #remove_tags ⇒ Object (also: #strip_tags)
- #titlecase ⇒ Object (also: #titleize)
- #to_const(klass = Kernel) ⇒ Object
- #underscore ⇒ Object
- #unless_blank(alt_value = nil) ⇒ Object
- #unless_equal_to(value, alt_value = nil) ⇒ Object
- #url_escape ⇒ Object (also: #url_encode)
-
#url_unescape ⇒ Object
Adapted from Rack::Utils.unescape.
-
#validate(format, options = {}) ⇒ Object
Validates value against specified format.
Class Method Details
.random(length) ⇒ Object
Generates string of random text of the specified length.
553 554 555 556 557 558 559 560 561 |
# File 'lib/kiss/ext/core.rb', line 553 def random(length) chars = [('A'..'H'), ('J'..'N'), ('P'..'R'), ('T'..'Y'), ('3'..'4'), ('6'..'9')].map {|r| r.to_a }.flatten # array text = '' size = chars.size length.times { text += chars[rand(size)] } text end |
Instance Method Details
#adjective ⇒ Object Also known as: adjectivize
621 622 623 |
# File 'lib/kiss/ext/core.rb', line 621 def adjective gsub(/\s/, '-') end |
#blank? ⇒ Boolean
571 572 573 |
# File 'lib/kiss/ext/core.rb', line 571 def blank? self !~ /\S/ end |
#capitalize ⇒ Object
603 604 605 606 607 |
# File 'lib/kiss/ext/core.rb', line 603 def capitalize result = self.downcase result[0,1] = result[0,1].upcase result end |
#commaize(places = 3) ⇒ Object
564 565 566 567 568 569 570 |
# File 'lib/kiss/ext/core.rb', line 564 def commaize(places = 3) s = reverse while s.sub!(/(\d{3})(\d)/, '\1,\2') next end s.reverse end |
#content_length ⇒ Object
588 589 590 |
# File 'lib/kiss/ext/core.rb', line 588 def content_length bytesize rescue length end |
#headercase ⇒ Object Also known as: headerize
616 617 618 |
# File 'lib/kiss/ext/core.rb', line 616 def headercase original_sequel_underscore.capitalize.gsub('_', '-') end |
#html_escape ⇒ Object
639 640 641 |
# File 'lib/kiss/ext/core.rb', line 639 def html_escape Rack::Utils.escape_html(self) end |
#original_sequel_titlecase ⇒ Object
adapt titlecase method to downcase short prepositions in middle
610 |
# File 'lib/kiss/ext/core.rb', line 610 alias_method :original_sequel_titlecase, :titlecase |
#original_sequel_underscore ⇒ Object
adapt underscore method to convert whitespace to underscores
598 |
# File 'lib/kiss/ext/core.rb', line 598 alias_method :original_sequel_underscore, :underscore |
#prepend_html(addition, tag) ⇒ Object
Prepend addition just inside the specified tag of document.
634 635 636 637 |
# File 'lib/kiss/ext/core.rb', line 634 def prepend_html(addition, tag) regexp = /(\<#{tag}[^\>]*\>)/i self =~ regexp ? sub(regexp, '\1' + addition) : (addition + self) end |
#remove_tags ⇒ Object Also known as:
592 593 594 |
# File 'lib/kiss/ext/core.rb', line 592 def gsub(/<\/?[^>]*>/, "") end |
#titlecase ⇒ Object Also known as: titleize
611 612 613 |
# File 'lib/kiss/ext/core.rb', line 611 def titlecase original_sequel_titlecase.gsub(/(\S)( +)(at|for|in|of|on|to)( +)(\S)/i) {"#{$1}#{$2}#{$3.downcase}#{$4}#{$5}"} end |
#to_const(klass = Kernel) ⇒ Object
575 576 577 578 579 580 581 582 583 584 585 586 |
# File 'lib/kiss/ext/core.rb', line 575 def to_const(klass = Kernel) begin parts = self.split(/::/) while (next_part = parts.shift) klass = klass.const_get(next_part) end klass rescue raise "Constant '#{self}' not defined" end end |
#underscore ⇒ Object
599 600 601 |
# File 'lib/kiss/ext/core.rb', line 599 def underscore original_sequel_underscore.gsub(/\W+/, '_').sub(/_\Z/, '') end |
#unless_blank(alt_value = nil) ⇒ Object
626 627 628 |
# File 'lib/kiss/ext/core.rb', line 626 def unless_blank(alt_value = nil) self.blank? ? alt_value : self end |
#unless_equal_to(value, alt_value = nil) ⇒ Object
629 630 631 |
# File 'lib/kiss/ext/core.rb', line 629 def unless_equal_to(value, alt_value = nil) (self == value) ? alt_value : self end |
#url_escape ⇒ Object Also known as: url_encode
643 644 645 646 |
# File 'lib/kiss/ext/core.rb', line 643 def url_escape # encode space to '+'; don't encode letters, numbers, periods gsub(/([^\w\.])/) { sprintf("%%%02X", $&.unpack("C")[0]) } end |
#url_unescape ⇒ Object
Adapted from Rack::Utils.unescape.
650 651 652 653 654 |
# File 'lib/kiss/ext/core.rb', line 650 def url_unescape self.tr('+', ' ').gsub(/((?:%[0-9a-fA-F]{2})+)/n) do [$1.delete('%')].pack('H*') end end |
#validate(format, options = {}) ⇒ Object
Validates value against specified format. If required is true, value must contain a non-whitespace character. If required is false, value need not match format if and only if value contains only whitespace.
659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 |
# File 'lib/kiss/ext/core.rb', line 659 def validate(format, = {}) label = [:label] || 'value' if [:required] && (self.blank?) # value required raise "#{label} required and missing" elsif format && !self.blank? format_class = Kiss::Format.lookup(format) begin format_class.validate(self, [:context] || {}) rescue Kiss::Format::ValidateError => e raise "validation error on #{label}: #{e.}" end end end |