Class: Bisu::Dictionary

Inherits:
Object
  • Object
show all
Defined in:
lib/bisu/dictionary.rb

Instance Method Summary collapse

Constructor Details

#initialize(keys) ⇒ Dictionary

Returns a new instance of Dictionary.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/bisu/dictionary.rb', line 3

def initialize(keys)
  unless keys.is_a?(Hash)
    raise ArgumentError.new("keys: expected Hash, got #{keys.class}")
  end

  keys.each do |lang,v|
    unless v.is_a?(Hash)
      raise ArgumentError.new("keys['#{lang}']: expected Hash, got #{v.class}")
    end

    v.each do |key,v|
      unless v.is_a?(String) || v.nil?
        raise ArgumentError.new("keys['#{lang}']['#{key}']: expected String, got #{v.class}")
      end
    end
  end

  @keys = Hash[keys.map { |k,v| [k.downcase, v] }]
end

Instance Method Details

#has_language?(language) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/bisu/dictionary.rb', line 23

def has_language?(language)
  @keys.include?(language&.downcase)
end

#localize(language, key) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/bisu/dictionary.rb', line 27

def localize(language, key)
  if has_language?(language)
    @keys[language&.downcase][key]
  else
    nil
  end
end