Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- lib/admiral-tools-figma/helper/system/system.rb,
lib/admiral-tools-figma/helper/figma/helpers/string_format.rb
Constant Summary collapse
- FORMAT_STYLE_CAMELCASE =
'camelcase'
- FORMAT_STYLE_SNAKECASE =
'snakecase'
- FORMAT_STYLE_KEBABCASE =
'kebabcase'
Instance Method Summary collapse
- #camelcase(*separators) ⇒ Object
- #default_format ⇒ Object
- #extract_by_regex(regex) ⇒ Object
- #kebabcase ⇒ Object
- #lowercase_first_letter ⇒ Object
- #snakecase ⇒ Object
- #uppercase_first_letter ⇒ Object
Instance Method Details
#camelcase(*separators) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/admiral-tools-figma/helper/figma/helpers/string_format.rb', line 31 def camelcase(*separators) case separators.first when Symbol, TrueClass, FalseClass, NilClass first_letter = separators.shift end separators = ['_', '\s'] if separators.empty? str = dup separators.each do |s| str = str.gsub(/(?:#{s}+)([a-zA-Z0-9])/) { Regexp.last_match(1).upcase } end case first_letter when :upper, true str = str.gsub(/(\A|\s)([a-z])/) { Regexp.last_match(1) + Regexp.last_match(2).upcase } when :lower, false str = str.gsub(/(\A|\s)([A-Z])/) { Regexp.last_match(1) + Regexp.last_match(2).downcase } end str end |
#default_format ⇒ Object
55 56 57 58 59 |
# File 'lib/admiral-tools-figma/helper/figma/helpers/string_format.rb', line 55 def default_format available_symbols_regex = /[^a-zA-Z0-9_]/ separator_symbols = [' ', '_', '-', '/'] camelcase(separator_symbols).gsub(available_symbols_regex, '').lowercase_first_letter end |
#extract_by_regex(regex) ⇒ Object
14 15 16 |
# File 'lib/admiral-tools-figma/helper/system/system.rb', line 14 def extract_by_regex(regex) (regex.match(self) || [])[0] end |
#kebabcase ⇒ Object
27 28 29 |
# File 'lib/admiral-tools-figma/helper/figma/helpers/string_format.rb', line 27 def kebabcase snakecase.gsub(/_/, '-') end |
#lowercase_first_letter ⇒ Object
12 13 14 15 16 |
# File 'lib/admiral-tools-figma/helper/figma/helpers/string_format.rb', line 12 def lowercase_first_letter return self unless length.positive? self[0, 1].downcase + self[1..-1] end |
#snakecase ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'lib/admiral-tools-figma/helper/figma/helpers/string_format.rb', line 18 def snakecase gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2') .gsub(/([a-z\d])([A-Z])/, '\1_\2') .tr('-', '_') .gsub(/\s/, '_') .gsub(/__+/, '_') .downcase end |
#uppercase_first_letter ⇒ Object
8 9 10 |
# File 'lib/admiral-tools-figma/helper/figma/helpers/string_format.rb', line 8 def uppercase_first_letter capitalize end |