Sha256: 185a3f594cd4271d208e30705e06f47f4b75c35aa1322b8ea976b170df67b21b
Contents?: true
Size: 952 Bytes
Versions: 2
Compression:
Stored size: 952 Bytes
Contents
require 'yaml' module MultiDbMigration class Config DEFAULT_PATH = 'config/multi_db_migration.yml' DEFAULT_PARALLEL_NUM = 1 DEFAULT_DB_CONFIG_PATH = 'config/database.yml' def initialize(path = nil) @path = path.presence || DEFAULT_PATH end def parallel_num config.dig(:parallel_num)&.to_i || DEFAULT_PARALLEL_NUM end def db_config config.dig(:db, :config) || DEFAULT_DB_CONFIG_PATH end def shards config.dig(:shards)&.keys || [] end def shard_config(shard) config.dig(:shards, shard) end private def config @config ||= load_yaml end def load_yaml raise "#{@path} not found." unless ::File.exist?(@path) yaml = ::ERB.new(File.read(@path)).result ::YAML.safe_load( yaml, permitted_classes: [Symbol], permitted_symbols: [], aliases: true )&.with_indifferent_access end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
multi_db_migration-0.2.0 | lib/multi_db_migration/config.rb |
multi_db_migration-0.1.0 | lib/multi_db_migration/config.rb |