Class: TwitterCldr::Localized::LocalizedString

Inherits:
LocalizedObject show all
Includes:
Enumerable
Defined in:
lib/twitter_cldr/localized/localized_string.rb

Instance Attribute Summary

Attributes inherited from LocalizedObject

#base_obj, #formatter, #locale

Instance Method Summary collapse

Methods inherited from LocalizedObject

#initialize, localize

Constructor Details

This class inherits a constructor from TwitterCldr::Localized::LocalizedObject

Instance Method Details

#%(args) ⇒ Object

Uses wrapped string object as a format specification and returns the result of applying it to args (see TwitterCldr::Utils.interpolate method for interpolation syntax).

If args is a Hash than pluralization is performed before interpolation (see PluralFormatter class for pluralization specification).



18
19
20
21
# File 'lib/twitter_cldr/localized/localized_string.rb', line 18

def %(args)
  pluralized = args.is_a?(Hash) ? @formatter.format(@base_obj, args) : @base_obj
  TwitterCldr::Utils.interpolate(pluralized, args)
end

#[](index) ⇒ Object



64
65
66
67
68
69
70
# File 'lib/twitter_cldr/localized/localized_string.rb', line 64

def [](index)
  if index.is_a?(Range)
    TwitterCldr::Utils::CodePoints.to_string(code_points[index])
  else
    TwitterCldr::Utils::CodePoints.to_char(code_points[index])
  end
end

#bytesizeObject



59
60
61
62
# File 'lib/twitter_cldr/localized/localized_string.rb', line 59

def bytesize
  # bytesize method available in ruby 1.9 only
  @base_obj.respond_to?(:bytesize) ? @base_obj.bytesize : @base_obj.size
end

#code_pointsObject



31
32
33
# File 'lib/twitter_cldr/localized/localized_string.rb', line 31

def code_points
  TwitterCldr::Utils::CodePoints.from_string(@base_obj)
end

#each_charObject Also known as: each



72
73
74
75
76
77
78
79
80
81
# File 'lib/twitter_cldr/localized/localized_string.rb', line 72

def each_char
  if block_given?
    code_points.each do |code_point|
      yield TwitterCldr::Utils::CodePoints.to_char(code_point)
    end
    @base_obj
  else
    code_points.map { |code_point| TwitterCldr::Utils::CodePoints.to_char(code_point) }.to_enum
  end
end

#formatter_constObject



23
24
25
# File 'lib/twitter_cldr/localized/localized_string.rb', line 23

def formatter_const
  TwitterCldr::Formatters::PluralFormatter
end

#normalize(options = {}) ⇒ Object



27
28
29
# File 'lib/twitter_cldr/localized/localized_string.rb', line 27

def normalize(options = {})
  TwitterCldr::Normalization.normalize(@base_obj, options).localize(@locale)
end

#sizeObject Also known as: length



53
54
55
# File 'lib/twitter_cldr/localized/localized_string.rb', line 53

def size
  code_points.size
end

#to_bidi(options = {}) ⇒ Object



89
90
91
# File 'lib/twitter_cldr/localized/localized_string.rb', line 89

def to_bidi(options = {})
  TwitterCldr::Shared::Bidi.from_string(@base_obj, options)
end

#to_f(options = {}) ⇒ Object



43
44
45
46
47
48
49
50
51
# File 'lib/twitter_cldr/localized/localized_string.rb', line 43

def to_f(options = {})
  if TwitterCldr::Parsers::NumberParser.is_numeric?(@base_obj)
    TwitterCldr::Parsers::NumberParser.new(@locale).try_parse(@base_obj, options) do |result|
      result || @base_obj.to_f
    end
  else
    @base_obj.to_f
  end
end

#to_i(options = {}) ⇒ Object



39
40
41
# File 'lib/twitter_cldr/localized/localized_string.rb', line 39

def to_i(options = {})
  to_f(options).to_i
end

#to_reordered_s(options = {}) ⇒ Object



93
94
95
# File 'lib/twitter_cldr/localized/localized_string.rb', line 93

def to_reordered_s(options = {})
  to_bidi(options).reorder_visually!.to_s
end

#to_sObject



35
36
37
# File 'lib/twitter_cldr/localized/localized_string.rb', line 35

def to_s
  @base_obj.dup
end

#to_yaml(options = {}) ⇒ Object



85
86
87
# File 'lib/twitter_cldr/localized/localized_string.rb', line 85

def to_yaml(options = {})
  TwitterCldr::Utils::YAML.dump(@base_obj, options)
end