module RediPress::Configuration
This module contains all configurations
Public Class Methods
all()
click to toggle source
Returns a Hash of all available configurations.
Example:
>> RediPress::Configuration.all => { "test" => #<RediPress::Configuration::Test:0x00000000000000> }
# File lib/redipress/configuration.rb, line 18 def self.all instances_of(*slugs) end
available?(*slugs)
click to toggle source
Check that the specified configurations are available.
Arguments:
slugs: (Splat)
Example:
>> RediPress::Configuration.available? :test => true
# File lib/redipress/configuration.rb, line 137 def self.available?(*slugs) slugs.each do |slug| return false unless self.slugs.include?(slug.to_s) end true end
class_for(slug)
click to toggle source
Get the class name for a configuration.
Arguments:
slug: (Symbol|String)
Example:
>> RediPress::Configuration.class_for :test => "RediPress::Configuration::Test"
# File lib/redipress/configuration.rb, line 64 def self.class_for(slug) klass = slug.to_s.capitalize klass.gsub!(/[-_.\s]([a-zA-Z0-9])/) { $1.upcase } klass.tr!("+", "x") "RediPress::Configuration::#{klass}" end
ensure_available!(*slugs)
click to toggle source
Ensure that the specified configurations are available.
Arguments:
slugs: (Splat)
Example:
>> RediPress::Configuration.ensure_available! :test => nil
Raises:
RediPress::ConfigurationNotAvailable: If one or more of the specified configurations are not available.
# File lib/redipress/configuration.rb, line 120 def self.ensure_available!(*slugs) slugs.each do |slug| raise RediPress::ConfigurationNotAvailable.new(slug) unless available?(slug) end nil end
gems()
click to toggle source
Get the all gems related to configurations
Example:
>> RediPress::Configuration.gems => { "test" => "redipress/configuration/test" }
# File lib/redipress/configuration.rb, line 161 def self.gems all_gems = Gem::Specification.select do |gem| gem.name.downcase =~ /^redipress-configuration-[a-z0-9-]+$/ end gems = Hash.new all_gems.each do |gem| slug = gem.name.downcase.sub("redipress-configuration-", "").gsub("-", "_") gems[slug] = "redipress/configuration/#{slug}" end gems end
instance_of(slug)
click to toggle source
Returns an instance of the specified configuration.
Arguments:
slug: (Symbol|String)
Example:
>> RediPress::Configuration.instance_of :test => #<RediPress::Configuration::Test:0x00000000000000>
# File lib/redipress/configuration.rb, line 47 def self.instance_of(slug) load_by_slugs(slug) klass = class_for(slug) klass = Object.const_get(klass) klass.new end
instances_of(*slugs)
click to toggle source
Returns a Hash containing instances of the specified configurations.
Arguments:
slugs: (Splat)
Example:
>> RediPress::Configuration.instances_of :test => { "test" => #<RediPress::Configuration::Test:0x00000000000000> }
# File lib/redipress/configuration.rb, line 31 def self.instances_of(*slugs) slugs.sort_by! { |slug| slug } slugs.map! { |slug| [slug.to_s, instance_of(slug.to_s)] } Hash[*slugs.flatten] end
set_ssh_key_paths(*keys)
click to toggle source
Set the paths to the private SSH Keys to use
Arguments:
keys: (Splat)
Example:
>> RediPress::Configuration.set_ssh_key_paths('/home/rediwebhosting/.ssh/id_rsa') => nil
# File lib/redipress/configuration.rb, line 186 def self.set_ssh_key_paths(*keys) SSHKit::Backend::Netssh.configure do |ssh| ssh.connection_timeout = 60 ssh.ssh_options = { keys: keys, forward_agent: false, auth_methods: %w(publickey password) } end end
slug_for(klass)
click to toggle source
Get the slug for a configuration class.
Arguments:
klass: (Class)
Example:
>> RediPress::Configuration.slug_for RediPress::Configuration::Test => "test"
# File lib/redipress/configuration.rb, line 80 def self.slug_for(klass) slug = klass.to_s.split("::").last slug.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2') slug.gsub!(/([a-z\d])([A-Z])/,'\1_\2') slug.tr!("-", "_") slug.downcase! slug end
slugs()
click to toggle source
Get the slugs of all configurations
Example:
>> RediPress::Configuration.slugs => ["test"]
# File lib/redipress/configuration.rb, line 151 def self.slugs gems.keys end
Private Class Methods
load_by_slugs(*slugs)
click to toggle source
Load a configuration from the configurations directory.
Arguments:
slugs: (Splat)
Example:
>> RediPress::Configuration.load_by_slugs :test => nil
# File lib/redipress/configuration.rb, line 98 def self.load_by_slugs(*slugs) ensure_available!(*slugs) slugs.each do |slug| require gems[slug.to_s] end nil end