Class: TwitterCldr::Formatters::Rbnf::RbnfFormatter
- Inherits:
-
Object
- Object
- TwitterCldr::Formatters::Rbnf::RbnfFormatter
- Defined in:
- lib/twitter_cldr/formatters/numbers/rbnf.rb
Constant Summary collapse
- DEFAULT_SPELLOUT_OPTIONS =
{ :rule_group => "SpelloutRules", :rule_set => "spellout-numbering" }
Instance Attribute Summary collapse
-
#locale ⇒ Object
readonly
Returns the value of attribute locale.
Instance Method Summary collapse
- #format(number, options = {}) ⇒ Object
- #group_names ⇒ Object
-
#initialize(locale = TwitterCldr.locale) ⇒ RbnfFormatter
constructor
A new instance of RbnfFormatter.
- #rule_set_names_for_group(group_name) ⇒ Object
Constructor Details
#initialize(locale = TwitterCldr.locale) ⇒ RbnfFormatter
Returns a new instance of RbnfFormatter.
34 35 36 |
# File 'lib/twitter_cldr/formatters/numbers/rbnf.rb', line 34 def initialize(locale = TwitterCldr.locale) @locale = TwitterCldr.convert_locale(locale) end |
Instance Attribute Details
#locale ⇒ Object (readonly)
Returns the value of attribute locale.
32 33 34 |
# File 'lib/twitter_cldr/formatters/numbers/rbnf.rb', line 32 def locale @locale end |
Instance Method Details
#format(number, options = {}) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/twitter_cldr/formatters/numbers/rbnf.rb', line 38 def format(number, = {}) rule_group_name, rule_set_name = *if [:rule_group].nil? && [:rule_set].nil? [DEFAULT_CARDINAL_OPTIONS[:rule_group], DEFAULT_CARDINAL_OPTIONS[:rule_set]] else [[:rule_group], [:rule_set]] end if rule_group = rule_group_by_name(rule_group_name) if rule_set = rule_group.rule_set_for(rule_set_name) if rule_set.public? RuleFormatter.format(number, rule_set, rule_group, locale) else raise PrivateRuleSetError.new( "#{rule_set_name} is a private rule set and cannot be used directly." ) end end end end |
#group_names ⇒ Object
58 59 60 |
# File 'lib/twitter_cldr/formatters/numbers/rbnf.rb', line 58 def group_names @group_names ||= resource.map { |g| g[:type] } end |
#rule_set_names_for_group(group_name) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/twitter_cldr/formatters/numbers/rbnf.rb', line 62 def rule_set_names_for_group(group_name) cache_key = TwitterCldr::Utils.compute_cache_key(locale, group_name) rule_set_name_cache[cache_key] ||= begin if rule_group = rule_group_by_name(group_name) rule_group.rule_sets.inject([]) do |ret, rule_set| ret << rule_set.name if rule_set.public? ret end end end rule_set_name_cache[cache_key] || [] end |