class Stringex::Configuration::Base
Attributes
settings[RW]
Public Class Methods
configure() { |configurator| ... }
click to toggle source
# File lib/stringex/configuration/base.rb, line 29 def self.configure(&block) configurator = Stringex::Configuration::Configurator.new(self) yield configurator end
new(local_options = {})
click to toggle source
# File lib/stringex/configuration/base.rb, line 6 def initialize(local_options = {}) current_settings = default_settings.merge(system_wide_customizations) current_settings.merge! local_options @settings = OpenStruct.new(current_settings) end
system_wide_customizations()
click to toggle source
# File lib/stringex/configuration/base.rb, line 34 def self.system_wide_customizations @system_wide_customizations ||= {} end
unconfigure!()
click to toggle source
# File lib/stringex/configuration/base.rb, line 38 def self.unconfigure! @system_wide_customizations = {} end
Private Class Methods
valid_configuration_details()
click to toggle source
# File lib/stringex/configuration/base.rb, line 52 def self.valid_configuration_details default_settings.keys end
Public Instance Methods
adapter()
click to toggle source
NOTE: This does not cache itself so that instance and class can be cached on the adapter without worrying about thread safety or race conditions
# File lib/stringex/configuration/base.rb, line 15 def adapter adapter_name = settings.adapter || Stringex::ActsAsUrl::Adapter.first_available case adapter_name when Class adapter_name.send :new, self when :active_record Stringex::ActsAsUrl::Adapter::ActiveRecord.new self when :mongoid Stringex::ActsAsUrl::Adapter::Mongoid.new self else raise ArgumentError, "#{adapter_name} is not a defined ActsAsUrl adapter. Please feel free to implement your own and submit it back upstream." end end
Private Instance Methods
default_settings()
click to toggle source
# File lib/stringex/configuration/base.rb, line 44 def default_settings raise ArgumentError, "You shouldn't have hit default_settings on Stringex::Configuration::Base. Check your code." end
system_wide_customizations()
click to toggle source
# File lib/stringex/configuration/base.rb, line 48 def system_wide_customizations self.class.system_wide_customizations end