Class: String

Inherits:
Object show all
Defined in:
lib/nrser/core_ext/string.rb

Overview

Extension methods for String

Unicode Stylization collapse

Instance Method Summary collapse

Instance Method Details

#dedentObject



14
15
16
# File 'lib/nrser/core_ext/string.rb', line 14

def dedent
  NRSER.dedent self
end

#ellipsis(*args) ⇒ Object

Calls NRSER.ellipsis on self.



48
49
50
# File 'lib/nrser/core_ext/string.rb', line 48

def ellipsis *args
  NRSER.ellipsis self, *args
end

#indent(*args) ⇒ Object



19
20
21
# File 'lib/nrser/core_ext/string.rb', line 19

def indent *args
  NRSER.indent self, *args
end

#start_with?(*prefixes) ⇒ Boolean

Augment #start_with? to accept Regexp prefixes.

I guess I always just felt like this should work... so now it does (kinda, at least).

Everything should work the exact same for String prefixes.

Use Regexp ones at your own pleasure and peril.

Parameters:

  • *prefixes (String | Regexp)

    Strings behave as usual per the standard lib.

    Regexp sources are used to create a new Regexp with \A at the start - unless their source already starts with \A or ^ - and those Regexp are tested against the string.

    Regexp options are also copied over if a new Regexp is created. I can def imagine things getting weird with some exotic regular expression or another, but this feature is really indented for very simple patterns, for which it should suffice.

Returns:

  • (Boolean)

    true if self starts with any of the prefixes.



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/nrser/core_ext/string.rb', line 89

def start_with? *prefixes
  unless prefixes.any? { |x| Regexp === x }
    return stdlib_start_with? *prefixes
  end

  prefixes.any? { |prefix|
    case prefix
    when Regexp
      unless prefix.source.start_with? '\A', '^'
        prefix = Regexp.new( "\\A#{ prefix.source }", prefix.options )
      end
      
      prefix =~ self
    else
      stdlib_start_with? prefix
    end
  }
end

#stdlib_start_with?Object

Alias the stdlib #start_with? 'cause we'll need to use it when redefining the method below.



62
# File 'lib/nrser/core_ext/string.rb', line 62

alias_method :stdlib_start_with?, :start_with?

#to_constObject



24
25
26
# File 'lib/nrser/core_ext/string.rb', line 24

def to_const
  safe_constantize
end

#to_const!Object



29
30
31
# File 'lib/nrser/core_ext/string.rb', line 29

def to_const!
  constantize
end

#to_pnPathname

Returns Convert self into a Pathname.

Returns:



37
38
39
# File 'lib/nrser/core_ext/string.rb', line 37

def to_pn
  Pathname.new self
end

#u_boldObject

Calls NRSER.u_bold on self



119
120
121
# File 'lib/nrser/core_ext/string.rb', line 119

def u_bold
  NRSER.u_bold self
end

#u_bold_italicObject

Calls NRSER.u_bold_italic on self



125
126
127
# File 'lib/nrser/core_ext/string.rb', line 125

def u_bold_italic
  NRSER.u_bold_italic self
end

#u_italicObject

Calls NRSER.u_italic on self



113
114
115
# File 'lib/nrser/core_ext/string.rb', line 113

def u_italic
  NRSER.u_italic self
end

#u_monoObject

Calls NRSER.u_mono on self



131
132
133
# File 'lib/nrser/core_ext/string.rb', line 131

def u_mono
  NRSER.u_mono self
end

#unblockObject



9
10
11
# File 'lib/nrser/core_ext/string.rb', line 9

def unblock
  NRSER.unblock self
end

#whitespace?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/nrser/core_ext/string.rb', line 42

def whitespace?
  NRSER.whitespace? self
end

#words(*args, &block) ⇒ Object

Calls NRSER.words on self



54
55
56
# File 'lib/nrser/core_ext/string.rb', line 54

def words *args, &block
  NRSER::words self, *args, &block
end