mirror of
https://github.com/jimeh/redistat.git
synced 2026-02-19 13:26:39 +00:00
43 lines
826 B
Ruby
43 lines
826 B
Ruby
module Redistat
|
|
module Options
|
|
|
|
def self.included(base)
|
|
base.extend(ClassMethods)
|
|
end
|
|
|
|
class InvalidDefaultOptions < ArgumentError; end
|
|
|
|
module ClassMethods
|
|
def option_accessor(*opts)
|
|
opts.each do |option|
|
|
define_method(option) do |*args|
|
|
if !args.first.nil?
|
|
options[option.to_sym] = args.first
|
|
else
|
|
options[option.to_sym] || nil
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
def parse_options(opts)
|
|
opts ||= {}
|
|
@raw_options = opts
|
|
@options = default_options.merge(opts.reject { |k,v| v.nil? })
|
|
end
|
|
|
|
def default_options
|
|
{}
|
|
end
|
|
|
|
def options
|
|
@options ||= {}
|
|
end
|
|
|
|
def raw_options
|
|
@raw_options ||= {}
|
|
end
|
|
|
|
end
|
|
end |