Class: Pandoru::ClientBuilders::PianobarConfigFileBuilder

Inherits:
FileBasedClientBuilder show all
Defined in:
lib/pandoru/client_builder.rb

Overview

Pianobar Config File Client Builder Builds an API client from a Pianobar config file.

Constant Summary collapse

DEFAULT_CONFIG_FILE =
"~/.config/pianobar/config"

Constants inherited from APIClientBuilder

APIClientBuilder::DEFAULT_CLIENT_CLASS

Instance Attribute Summary

Attributes inherited from FileBasedClientBuilder

#authenticate, #path

Instance Method Summary collapse

Methods inherited from FileBasedClientBuilder

#build, #config, #initialize

Methods inherited from APIClientBuilder

#build_from_settings_hash, #initialize

Constructor Details

This class inherits a constructor from Pandoru::ClientBuilders::FileBasedClientBuilder

Instance Method Details

#parse_configObject



281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
# File 'lib/pandoru/client_builder.rb', line 281

def parse_config
  config_path = config_file_path
  
  unless File.exist?(config_path)
    raise ArgumentError, "Config file not found: #{config_path}"
  end

  settings = PianobarSettingsDict.new
  
  File.readlines(config_path).each do |line|
    line = line.strip
    next if line.empty? || line.start_with?('#')
    
    if line.include?('=')
      key, value = line.split('=', 2)
      settings.put(key.strip, value.strip)
    end
  end

  # Extract user credentials
   = {
    "USERNAME" => settings.delete("USER"),
    "PASSWORD" => settings.delete("PASSWORD")
  }
  
  settings["USER"] = 
  settings
end