Class: String

Inherits:
Object show all
Defined in:
lib/under_os/core/string.rb

Constant Summary collapse

ENCODINGS =
{
  'utf-8'  => NSUTF8StringEncoding,
  'utf-16' => NSUTF16StringEncoding,
  'utf-32' => NSUTF32StringEncoding,
  'ascii'  => NSASCIIStringEncoding,
  'latin1' => NSISOLatin1StringEncoding,
  'latin2' => NSISOLatin2StringEncoding,
  'cp1250' => NSWindowsCP1250StringEncoding,
  'cp1251' => NSWindowsCP1251StringEncoding,
  'cp1252' => NSWindowsCP1252StringEncoding,
  'cp1253' => NSWindowsCP1253StringEncoding,
  'cp1254' => NSWindowsCP1254StringEncoding,


  # NSNEXTSTEPStringEncoding = 2,
  # NSJapaneseEUCStringEncoding = 3,
  # NSSymbolStringEncoding = 6,
  # NSNonLossyASCIIStringEncoding = 7,
  # NSShiftJISStringEncoding = 8,
  # NSISO2022JPStringEncoding = 21,
  # NSMacOSRomanStringEncoding = 30,
  # NSUTF16BigEndianStringEncoding = 0x90000100,
  # NSUTF16LittleEndianStringEncoding = 0x94000100,
  # NSUTF32BigEndianStringEncoding = 0x98000100,
  # NSUTF32LittleEndianStringEncoding = 0x9c000100,
  # NSProprietaryStringEncoding = 65536
}

Instance Method Summary collapse

Instance Method Details

#blank?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/under_os/core/string.rb', line 26

def blank?
  self !~ /[^[:space:]]/
end

#camelizeObject



6
7
8
# File 'lib/under_os/core/string.rb', line 6

def camelize
  gsub(/(\-|_)+([a-z])?/){|m| $2 ? $2.upcase : ''}
end

#capitalizeObject



14
15
16
# File 'lib/under_os/core/string.rb', line 14

def capitalize
  self[0].upcase + slice(1, size)
end

#constantizeObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/under_os/core/string.rb', line 30

def constantize
  names = self.split('::')
  names.shift if names.empty? || names.first.empty?

  constant = Object
  names.each do |name|
    constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
  end
  constant
end

#dasherizeObject



10
11
12
# File 'lib/under_os/core/string.rb', line 10

def dasherize
  underscore.gsub('_', '-')
end

#ends_with?(substr) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/under_os/core/string.rb', line 22

def ends_with?(substr)
  rindex(substr)  == size - substr.size
end

#starts_with?(substr) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/under_os/core/string.rb', line 18

def starts_with?(substr)
  index(substr) == 0
end

#to_data(encoding = nil) ⇒ Object



49
50
51
# File 'lib/under_os/core/string.rb', line 49

def to_data(encoding=nil)
  dataUsingEncoding ENCODINGS[encoding] || NSUTF8StringEncoding
end

#underscoreObject



2
3
4
# File 'lib/under_os/core/string.rb', line 2

def underscore
  gsub(/([a-z\d])([A-Z]+)/, '\1_\2').gsub('-', '_').downcase
end

#url_decode(encoding = nil) ⇒ Object



45
46
47
# File 'lib/under_os/core/string.rb', line 45

def url_decode(encoding=nil)
  stringByReplacingPercentEscapesUsingEncoding ENCODINGS[encoding] || NSUTF8StringEncoding
end

#url_encode(encoding = nil) ⇒ Object



41
42
43
# File 'lib/under_os/core/string.rb', line 41

def url_encode(encoding=nil)
  stringByAddingPercentEscapesUsingEncoding ENCODINGS[encoding] || NSUTF8StringEncoding
end