Module: Train::Options::ClassOptions
- Defined in:
- lib/train/options.rb
Instance Method Summary collapse
- #default_options ⇒ Object
- #include_options(other) ⇒ Object
- #option(name, conf = nil, &block) ⇒ Object
Instance Method Details
#default_options ⇒ Object
33 34 35 36 |
# File 'lib/train/options.rb', line 33 def @default_options = {} unless defined? @default_options @default_options end |
#include_options(other) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/train/options.rb', line 38 def (other) unless other.respond_to?(:default_options) fail "Trying to include options from module #{other.inspect}, "\ "which doesn't seem to support options." end .merge!(other.) end |
#option(name, conf = nil, &block) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/train/options.rb', line 14 def option(name, conf = nil, &block) d = conf || {} unless d.is_a? Hash fail Train::ClientError, "The transport plugin #{self} declared an option #{name} "\ "and didn't provide a valid configuration hash." end if !conf.nil? and !conf[:default].nil? and block_given? fail Train::ClientError, "The transport plugin #{self} declared an option #{name} "\ 'with both a default value and block. Only use one of these.' end d[:default] = block if block_given? [name] = d end |