今回のネタはRailsレシピより。 database.ymlはYAMLとしてパースされる前にERBで前処理されるので、ビューのテンプレートと同じようにRubyスクリプトをファイル内に埋め込むことが可能。 なのでdatabase.ymlの内容を以下のように動的に定義することができる。 < % socket = ["/tmp/mysqld.sock", "/tmp/mysql.sock", "/var/run/mysqld/mysqld.sock", "/var/lib/mysql/mysql.sock"].detect{|socket| File.exist?(socket)} %> development: adapter: mysql database: hoge_dev username: hogetarou password: password host: localhost soc