Sha256: 9e3aef3dbc0eb3f9c612fb024ddea840b5e95ba6e7b2b3afeb9bb82b9aacb23a
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
module RecordStore class Zone class Config include ActiveModel::Validations attr_reader :ignore_patterns, :providers, :supports_alias, :implicit_record_templates validate :validate_zone_config def initialize(ignore_patterns: [], providers: nil, supports_alias: nil, implicit_record_templates: []) @ignore_patterns = ignore_patterns.map do |ignore_pattern| Zone::Config::IgnorePattern.new(ignore_pattern) end @implicit_record_templates = implicit_record_templates.map do |filename| Zone::Config::ImplicitRecordTemplate.from_file(filename: filename) end @providers = providers @supports_alias = supports_alias end def supports_alias? if @supports_alias.nil? valid_providers? && providers.all? { |provider| Provider.const_get(provider).supports_alias? } else @supports_alias end end def empty_non_terminal_over_wildcard? valid_providers? && providers.any? { |provider| Provider.const_get(provider).empty_non_terminal_over_wildcard? } end def to_hash config_hash = { providers: providers, ignore_patterns: ignore_patterns.map(&:to_hash), } config_hash.merge!(supports_alias: supports_alias) if supports_alias config_hash end private def validate_zone_config errors.add(:providers, 'provider specified does not exist') unless valid_providers? end def valid_providers? providers.present? && providers.all? { |provider| Provider.constants.include?(provider.to_s.to_sym) } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
record_store-6.4.0 | lib/record_store/zone/config.rb |