Class: AcpcTableManager::ExhibitionConfig
- Inherits:
-
NilDefaultConfig
- Object
- NilDefaultConfig
- AcpcTableManager::ExhibitionConfig
- Includes:
- SimpleLogging
- Defined in:
- lib/acpc_table_manager/config.rb
Instance Attribute Summary collapse
-
#file ⇒ Object
readonly
Returns the value of attribute file.
Instance Method Summary collapse
-
#bots(game_def_key, *player_names) ⇒ Array<Class>
Returns only the names that correspond to bot runner classes as those classes.
-
#initialize(file_path, interpolation_hash, logger = Logger.new(STDOUT)) ⇒ ExhibitionConfig
constructor
A new instance of ExhibitionConfig.
Methods included from SimpleLogging
Methods inherited from NilDefaultConfig
Constructor Details
#initialize(file_path, interpolation_hash, logger = Logger.new(STDOUT)) ⇒ ExhibitionConfig
Returns a new instance of ExhibitionConfig.
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/acpc_table_manager/config.rb', line 60 def initialize( file_path, interpolation_hash, logger = Logger.new(STDOUT) ) @logger = logger @file = file_path JSON.parse(File.read(file_path)).each do |constant, val| interpolated_val = ::AcpcTableManager.interpolate_all_strings(val, interpolation_hash) log(__method__, {adding: {method: constant, value: interpolated_val}}) instance_variable_set("@#{constant}".to_sym, interpolated_val) define_singleton_method(constant.to_sym) do instance_variable_get("@#{constant}".to_sym) end end unless special_ports_to_dealer @special_ports_to_dealer = [] log(__method__, {adding: {method: 'special_ports_to_dealer', value: @special_ports_to_dealer}}) define_singleton_method(:special_ports_to_dealer) do instance_variable_get(:@special_ports_to_dealer) end end end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class AcpcTableManager::NilDefaultConfig
Instance Attribute Details
#file ⇒ Object (readonly)
Returns the value of attribute file.
58 59 60 |
# File 'lib/acpc_table_manager/config.rb', line 58 def file @file end |
Instance Method Details
#bots(game_def_key, *player_names) ⇒ Array<Class>
Returns only the names that correspond to bot runner classes as those classes.
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/acpc_table_manager/config.rb', line 87 def bots(game_def_key, *player_names) game_def_key = game_def_key.to_s if @games[game_def_key] if @games[game_def_key]['opponents'] player_names.reduce({}) do |bot_map, name| bot_map[name] = @games[game_def_key]['opponents'][name] if @games[game_def_key]['opponents'][name] bot_map end else log( __method__, {warning: "Game '#{game_def_key}' has no opponents."}, Logger::Severity::WARN ) {} end else log( __method__, {warning: "Unrecognized game, '#{game_def_key}'."}, Logger::Severity::WARN ) {} end end |