Class: Cldr::Export::Data::Plurals

Inherits:
Hash
  • Object
show all
Defined in:
lib/cldr/export/data/plurals.rb,
lib/cldr/export/data/plurals/rules.rb,
lib/cldr/export/data/plurals/grammar.rb

Defined Under Namespace

Modules: Grammar Classes: Expression, Proposition, Rule, Rules

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Hash

#deep_merge, #deep_stringify_keys, #symbolize_keys

Constructor Details

#initialize(locale) ⇒ Plurals

Returns a new instance of Plurals.



26
27
28
29
# File 'lib/cldr/export/data/plurals.rb', line 26

def initialize(locale)
  @locale = locale
  self.merge!(rule ? to_hash : {})
end

Instance Attribute Details

#localeObject (readonly)

Returns the value of attribute locale.



24
25
26
# File 'lib/cldr/export/data/plurals.rb', line 24

def locale
  @locale
end

Class Method Details

.rulesObject



15
16
17
# File 'lib/cldr/export/data/plurals.rb', line 15

def rules
  @@rules ||= Rules.parse(source)
end

.sourceObject



19
20
21
# File 'lib/cldr/export/data/plurals.rb', line 19

def source
  File.read("#{Cldr::Export::Data.dir}/supplemental/plurals.xml")
end

Instance Method Details

#ruleObject



36
37
38
# File 'lib/cldr/export/data/plurals.rb', line 36

def rule
  @rule = Plurals.rules.rule(locale)
end

#to_hashObject



31
32
33
34
# File 'lib/cldr/export/data/plurals.rb', line 31

def to_hash
  rule_rb = rule ? rule.to_ruby : nil
  { :keys => (rule || {}).keys, :rule => rule_rb }
end