Sử dụng ERB trong file YAML

203
17-07-2017
Sử dụng ERB trong file YAML

Các file cấu hình YAML được sử dụng thường xuyên trong các ứng dụng Rails, ví dụ file config.yml thông thường

# config/config.yml
development:
key2: vccloud is awesome
key1: Bizfly Cloud
...

Theo Bizfly Cloud chia sẻ file này không tránh được việc bị lặp thông tin (vccloud). Với số lần lặp quá lớn đi kèm với các môi trường triển khai khác nhau, việc sửa đổi đoạn text Bizfly Cloud thành Cloud Solutions sẽ rất tốn thời gian và công sức. 

Một phương pháp mới đưa ra để giải quyết tình trạng này là sử dụng code ERB trong file YAML.

Cách thông thường:
# config/initializers/load_config.rb
APP_CONFIG = YAML.load_file("#{Rails.root}/config/config.yml")[Rails.env]
Cách mới:
# config/initializers/load_config.rb
APP_CONFIG = YAML.load(ERB.new(File.read("#{Rails.root}/config/config.yml")).result)[Rails.env]

Theo cách mới này, thay vì load file trực tiếp, module YAML sẽ load chuỗi trả về từ module ERB. Từ đó file config.yml có thể sửa lại như sau để tránh lặp thông tin:

# config/config.yml
<% name = vccloud %>
development:
key1: <%= name %>
key2: <%= name %> is awesome
...

Việc sử dụng ERB trong file YAML sẽ giúp nhiệm vụ quản lý và sửa đổi YAML cho từng trường hợp triển khai giờ đây đơn giản hơn bao giờ hết.

Theo Bizfly Cloud chia sẻ

>> Tìm hiểu thêm: Monitor System Logs với Logwatch

SHARE