Class: String

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

Overview

Extension methods for String

Unicode Stylization collapse

Inflection Instance Methods collapse

Instance Method Summary collapse

Instance Method Details

#dedentObject



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

def dedent
  NRSER.dedent self
end

#ellipsis(*args) ⇒ Object

Calls NRSER.ellipsis on ‘self`.



76
77
78
# File 'lib/nrser/core_ext/string.rb', line 76

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

#env_varizenil, String

Attempt to convert ‘self` into an ENV var name.

Returns:

  • (nil)

    If we didn’t end up with a legal ENV var name.

  • (String)

    If we were able to munge a legal ENV var name.

See Also:



175
176
177
# File 'lib/nrser/core_ext/string.rb', line 175

def env_varize
  NRSER::Sys::Env.varize self
end

#indent(*args) ⇒ Object



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

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

#squiggleString Also known as: ~@

The method I alias as unary ‘~`, with a full-name so I can find it and such, I guess.

It’s a string formatter. Right now, it just calls #squish, but I would like to make it a bit smarter soon so it can be used on paragraph-structured text too.

It’s meant to be used with the ‘%{}` string quote form, because that allows multi-line strings, but nothing stopping it from being used elsewhere too.

Examples:


~%{
  Hey there, here's some "stuff",
  and here's some MORE!
}
# => "Hey there, here's some \"stuff\", and here's some MORE!"

Returns:



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

def squiggle
  squish
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`.



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/nrser/core_ext/string.rb', line 117

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.



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

alias_method :stdlib_start_with?, :start_with?

#to_constObject



52
53
54
# File 'lib/nrser/core_ext/string.rb', line 52

def to_const
  safe_constantize
end

#to_const!Object



57
58
59
# File 'lib/nrser/core_ext/string.rb', line 57

def to_const!
  constantize
end

#to_pnPathname

Returns Convert self into a Pathname.

Returns:



65
66
67
# File 'lib/nrser/core_ext/string.rb', line 65

def to_pn
  Pathname.new self
end

#u_boldObject

Calls NRSER.u_bold on ‘self`



147
148
149
# File 'lib/nrser/core_ext/string.rb', line 147

def u_bold
  NRSER.u_bold self
end

#u_bold_italicObject

Calls NRSER.u_bold_italic on ‘self`



153
154
155
# File 'lib/nrser/core_ext/string.rb', line 153

def u_bold_italic
  NRSER.u_bold_italic self
end

#u_italicObject

Calls NRSER.u_italic on ‘self`



141
142
143
# File 'lib/nrser/core_ext/string.rb', line 141

def u_italic
  NRSER.u_italic self
end

#u_monoObject

Calls NRSER.u_mono on ‘self`



159
160
161
# File 'lib/nrser/core_ext/string.rb', line 159

def u_mono
  NRSER.u_mono self
end

#unblockObject



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

def unblock
  NRSER.unblock self
end

#whitespace?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/nrser/core_ext/string.rb', line 70

def whitespace?
  NRSER.whitespace? self
end

#words(*args, &block) ⇒ Object

Calls NRSER.words on ‘self`



82
83
84
# File 'lib/nrser/core_ext/string.rb', line 82

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