Class: Fontisan::Cldr::Index
- Inherits:
-
Object
- Object
- Fontisan::Cldr::Index
- Includes:
- Enumerable
- Defined in:
- lib/fontisan/cldr/index.rb
Overview
In-memory per-language codepoint lookup.
Loads a YAML index of {language: [codepoint, ...]}. Each language's
codepoints are stored as a Set
Used by Aggregator to compute per-language coverage %.
Instance Attribute Summary collapse
Class Method Summary collapse
-
.load(path) ⇒ Index
Load from a YAML file previously written by #save.
Instance Method Summary collapse
- #each ⇒ Object
- #include?(language) ⇒ Boolean
-
#initialize(entries = {}) ⇒ Index
constructor
A new instance of Index.
- #languages ⇒ Object
- #lookup(language) ⇒ Set<Integer>?
-
#save(path) ⇒ void
Serialize to a YAML file.
- #size ⇒ Object
Constructor Details
#initialize(entries = {}) ⇒ Index
Returns a new instance of Index.
15 16 17 18 19 |
# File 'lib/fontisan/cldr/index.rb', line 15 def initialize(entries = {}) @entries = entries.transform_values do |cps| cps.is_a?(Set) ? cps : Set.new(cps) end end |
Instance Attribute Details
#entries ⇒ Hash{String=>Set<Integer>} (readonly)
22 23 24 |
# File 'lib/fontisan/cldr/index.rb', line 22 def entries @entries end |
Class Method Details
.load(path) ⇒ Index
Load from a YAML file previously written by #save.
58 59 60 61 |
# File 'lib/fontisan/cldr/index.rb', line 58 def self.load(path) hash = YAML.load_file(path) new(hash) end |
Instance Method Details
#each ⇒ Object
24 25 26 |
# File 'lib/fontisan/cldr/index.rb', line 24 def each(&) @entries.each(&) end |
#include?(language) ⇒ Boolean
42 43 44 |
# File 'lib/fontisan/cldr/index.rb', line 42 def include?(language) @entries.key?(language) end |
#languages ⇒ Object
32 33 34 |
# File 'lib/fontisan/cldr/index.rb', line 32 def languages @entries.keys.sort end |
#lookup(language) ⇒ Set<Integer>?
38 39 40 |
# File 'lib/fontisan/cldr/index.rb', line 38 def lookup(language) @entries[language] end |
#save(path) ⇒ void
This method returns an undefined value.
Serialize to a YAML file.
49 50 51 52 53 |
# File 'lib/fontisan/cldr/index.rb', line 49 def save(path) File.open(path, "w") do |file| YAML.dump(@entries.transform_values(&:sort), file) end end |
#size ⇒ Object
28 29 30 |
# File 'lib/fontisan/cldr/index.rb', line 28 def size @entries.size end |