Module: Flipper::UI::Util

Defined in:
lib/flipper/ui/util.rb

Constant Summary collapse

NON_WHITESPACE_REGEXP =

Private: 0x3000: fullwidth whitespace

/[^\s#{[0x3000].pack("U")}]/

Class Method Summary collapse

Class Method Details

.blank?(str) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/flipper/ui/util.rb', line 17

def self.blank?(str)
  str.to_s !~ NON_WHITESPACE_REGEXP
end

.escape(str) ⇒ Object



9
10
11
# File 'lib/flipper/ui/util.rb', line 9

def self.escape(str)
  Rack::Utils.escape(str)
end

.pluralize(count, singular, plural) ⇒ Object



37
38
39
40
41
42
43
# File 'lib/flipper/ui/util.rb', line 37

def self.pluralize(count, singular, plural)
  if count == 1
    "#{count} #{singular}"
  else
    "#{count} #{plural}"
  end
end

.present?(str) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/flipper/ui/util.rb', line 21

def self.present?(str)
  !blank?(str)
end

.titleize(str) ⇒ Object



25
26
27
# File 'lib/flipper/ui/util.rb', line 25

def self.titleize(str)
  str.to_s.split('_').map(&:capitalize).join(' ')
end

.to_sentence(array, options = {}) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/flipper/ui/util.rb', line 45

def self.to_sentence(array, options = {})
  default_connectors = {
    words_connector: ", ",
    two_words_connector: " and ",
    last_word_connector: ", and "
  }
  options = default_connectors.merge!(options)

  case array.length
  when 0
    ""
  when 1
    "#{array[0]}"
  when 2
    "#{array[0]}#{options[:two_words_connector]}#{array[1]}"
  else
    "#{array[0...-1].join(options[:words_connector])}#{options[:last_word_connector]}#{array[-1]}"
  end
end

.truncate(str, length: 30) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/flipper/ui/util.rb', line 29

def self.truncate(str, length: 30)
  if str.length > length
    str[0..length]
  else
    str
  end
end

.unescape(str) ⇒ Object



13
14
15
# File 'lib/flipper/ui/util.rb', line 13

def self.unescape(str)
  Rack::Utils.unescape(str)
end