Module: Evil::Client::Dictionary
- Includes:
- Enumerable
- Defined in:
- lib/evil/client/dictionary.rb
Overview
Class-level methods
Constant Summary collapse
- Error =
Exception to be risen when item cannot be found in a dictionary
Class.new(ArgumentError)
Class Method Summary collapse
-
.[](path) ⇒ self
Loads [#raw] dictionary from YAML config file.
Instance Method Summary collapse
-
#[](item) ⇒ Evil::Client::Dictionary
Alias for [.call].
-
#all ⇒ Array<Evil::Client::Dictionary>
List of the dictionary items.
-
#call(item) ⇒ Evil::Client::Dictionary
Calls the item and raises when it is not in the dictionary.
-
#each(&block) ⇒ Enumerator<Evil::Client::Dictionary>
Iterates by dictionary items.
-
#raw ⇒ String
Raw data for the dictionary items.
Class Method Details
.[](path) ⇒ self
Loads [#raw] dictionary from YAML config file
55 56 57 58 59 60 61 |
# File 'lib/evil/client/dictionary.rb', line 55 def [](path) file, paths = path.to_s.split("#") list = YAML.load_file(file) keys = paths.to_s.split("/").map(&:to_sym) @raw = keys.any? ? Hash(list).dig(*keys) : list self end |
Instance Method Details
#[](item) ⇒ Evil::Client::Dictionary
Alias for [.call]
45 46 47 |
# File 'lib/evil/client/dictionary.rb', line 45 def [](item) call(item) end |
#all ⇒ Array<Evil::Client::Dictionary>
List of the dictionary items
17 18 19 |
# File 'lib/evil/client/dictionary.rb', line 17 def all @all ||= raw.map { |item| new(item) } end |
#call(item) ⇒ Evil::Client::Dictionary
Calls the item and raises when it is not in the dictionary
33 34 35 36 37 |
# File 'lib/evil/client/dictionary.rb', line 33 def call(item) return item if all.include? item raise Error, "#{item} is absent in the dictionary #{self}" end |
#each(&block) ⇒ Enumerator<Evil::Client::Dictionary>
Iterates by dictionary items
23 24 25 |
# File 'lib/evil/client/dictionary.rb', line 23 def each(&block) block_given? ? all.each(&block) : all.to_enum end |
#raw ⇒ String
Raw data for the dictionary items
11 12 13 |
# File 'lib/evil/client/dictionary.rb', line 11 def raw @raw ||= [] end |