Class: Pgtk::Wire::Yaml

Inherits:
Object
  • Object
show all
Defined in:
lib/pgtk/wire.rb

Overview

Using configuration from YAML file.

Author

Yegor Bugayenko (yegor256@gmail.com)

Copyright

Copyright © 2019-2026 Yegor Bugayenko

License

MIT

Instance Method Summary collapse

Constructor Details

#initialize(file, node = 'pgsql') ⇒ Yaml

Constructor.

Parameters:

  • file (String)

    Path to the YAML configuration file

  • node (String) (defaults to: 'pgsql')

    The root node name in the YAML file containing PostgreSQL configuration

Raises:

  • (ArgumentError)


85
86
87
88
89
90
# File 'lib/pgtk/wire.rb', line 85

def initialize(file, node = 'pgsql')
  raise(ArgumentError, "The name of the file can't be nil") if file.nil?
  @file = file
  raise(ArgumentError, "The name of the node in the YAML file can't be nil") if node.nil?
  @node = node
end

Instance Method Details

#connectionObject

Create a new connection to PostgreSQL server.

Raises:

  • (ArgumentError)


93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/pgtk/wire.rb', line 93

def connection
  raise(ArgumentError, "The file #{@file.inspect} not found") unless File.exist?(@file)
  cfg = YAML.load_file(@file)
  raise(ArgumentError, "The node '#{@node}' not found in YAML file #{@file.inspect}") unless cfg[@node]
  Pgtk::Wire::Direct.new(
    host: cfg[@node]['host'],
    port: cfg[@node]['port'],
    dbname: cfg[@node]['dbname'],
    user: cfg[@node]['user'],
    password: cfg[@node]['password']
  ).connection
end