Sha256: b2990a99b4728586e3ace5b0923a280cf28e002c8c42a35ece14c26fdfc9b1cd
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
module SwitchPoint class Config def initialize self.auto_writable = false end def define_switch_point(name, config) assert_valid_config!(config) switch_points[name] = config end def auto_writable=(val) @auto_writable = val end def auto_writable? @auto_writable end def switch_points @switch_points ||= {} end def database_name(name, mode) fetch(name)[mode] end def model_name(name, mode) if fetch(name)[mode] "#{name}_#{mode}".camelize else nil end end def fetch(name) switch_points.fetch(name) end def keys switch_points.keys end private def assert_valid_config!(config) unless config.has_key?(:readonly) || config.has_key?(:writable) raise ArgumentError.new(':readonly or :writable must be specified') end if config.has_key?(:readonly) unless config[:readonly].is_a?(Symbol) raise TypeError.new(":readonly's value must be Symbol") end end if config.has_key?(:writable) unless config[:writable].is_a?(Symbol) raise TypeError.new(":writable's value must be Symbol") end end nil end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
switch_point-0.6.0 | lib/switch_point/config.rb |