Class: String

Inherits:
Object show all
Includes:
Doing::ChronifyString, Doing::Color, Doing::Completion::StringUtils, Doing::StringHighlight, Doing::StringNormalize, Doing::StringQuery, Doing::StringTags, Doing::StringTransform, Doing::StringTruncate, Doing::StringURL
Defined in:
lib/doing/good.rb,
lib/doing/colors.rb,
lib/doing/normalize.rb,
lib/doing/string/string.rb,
lib/doing/chronify/chronify.rb,
lib/doing/completion/fig_completion.rb,
lib/doing/completion/zsh_completion.rb,
lib/doing/completion/completion_string.rb

Overview

Template coloring

Direct Known Subclasses

Doing::TemplateString

Constant Summary

Constants included from Doing::Color

Doing::Color::ATTRIBUTES, Doing::Color::ATTRIBUTE_NAMES, Doing::Color::COLORED_REGEXP

Instance Method Summary collapse

Methods included from Doing::Completion::StringUtils

#ltrunc, #ltrunc!, #short_desc

Methods included from Doing::ChronifyString

#chronify, #chronify_qty, #expand_date_tags, #is_range?, #split_date_range, #time_string, #to_seconds

Methods included from Doing::StringURL

#clean_unlinked_urls, #link_urls, #link_urls!, #remove_self_links, #replace_qualified_urls

Methods included from Doing::StringTruncate

#trunc, #trunc!, #truncend, #truncend!, #truncmiddle, #truncmiddle!

Methods included from Doing::StringTransform

#cap_first, #compress, #compress!, #set_type, #simple_wrap, #titlecase, #to_p, #wrap

Methods included from Doing::StringTags

#add_at, #add_tags, #add_tags!, #dedup_tags, #dedup_tags!, #remove_at, #split_tags, #tag, #tag!, #to_tags

Methods included from Doing::StringQuery

#ignore?, #ignore_case, #rx?, #to_bool, #to_phrase_query, #to_query, #to_rx, #truthy?, #wildcard_to_rx

Methods included from Doing::StringHighlight

#highlight_search, #highlight_search!, #highlight_tags, #highlight_tags!, #last_color, #uncolor, #uncolor!

Methods included from Doing::Color

#attributes, coloring?, #support?, template, #uncolor

Methods included from Doing::StringNormalize

#normalize_age, #normalize_age!, #normalize_bool, #normalize_bool!, #normalize_case, #normalize_case!, #normalize_change_type, #normalize_matching, #normalize_matching!, #normalize_order, #normalize_order!, #normalize_tag_sort, #normalize_tag_sort!, #normalize_trigger, #normalize_trigger!

Instance Method Details

#good?Boolean

Tests if object is nil or empty

Returns:

  • (Boolean)

    true if object is defined and has content



46
47
48
# File 'lib/doing/good.rb', line 46

def good?
  !strip.empty?
end

#normalize_colorString

Normalize a color name, removing underscores, replacing "bright" with "bold", and converting bgbold to boldbg

Returns:

  • (String)

    Normalized color name



125
126
127
# File 'lib/doing/colors.rb', line 125

def normalize_color
  gsub(/_/, '').sub(/bright/i, 'bold').sub(/bgbold/, 'boldbg')
end

#sanitizeObject



6
7
8
# File 'lib/doing/completion/fig_completion.rb', line 6

def sanitize
  gsub(/"/, '\"')
end

#utf8String

Force UTF-8 encoding if available

Returns:

  • (String)

    UTF-8 encoded string



33
34
35
36
37
38
39
# File 'lib/doing/string/string.rb', line 33

def utf8
  if String.method_defined? :force_encoding
    dup.force_encoding('utf-8')
  else
    self
  end
end

#valid_id?Boolean

Test if string is a valid 32-character MD5 id

Returns:

  • (Boolean)

    string is valid identifier



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

def valid_id?
  strip =~ /^[a-z0-9]{32}$/ ? true : false
end

#validate_colorString

Extract the longest valid %color name from a string.

Allows %colors to bleed into other text and still be recognized, e.g. %greensomething still finds %green.

Returns:

  • (String)

    a valid color name



107
108
109
110
111
112
113
114
115
116
# File 'lib/doing/colors.rb', line 107

def validate_color
  valid_color = nil
  compiled = ''
  normalize_color.split('').each do |char|
    compiled += char
    valid_color = compiled if Color.attributes.include?(compiled.to_sym)
  end

  valid_color
end