Module: CommonMarker::Config
- Defined in:
- lib/commonmarker/config.rb
Overview
For Ruby::Enum, these must be classes, not modules
Defined Under Namespace
Class Method Summary collapse
Class Method Details
.check_option(option, type) ⇒ Object
37 38 39 40 41 |
# File 'lib/commonmarker/config.rb', line 37 def self.check_option(option, type) unless type.keys.include?(option) raise TypeError, "option ':#{option}' does not exist for #{type}" end end |
.process_options(option, type) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/commonmarker/config.rb', line 23 def self.(option, type) type = Config.const_get(type.capitalize) if option.is_a?(Symbol) check_option(option, type) type.to_h[option] elsif option.is_a?(Array) option = [nil] if option.empty? # neckbearding around. the map will both check the opts and then bitwise-OR it option.map { |o| check_option(o, type); type.to_h[o] }.inject(0, :|) else raise TypeError, 'option type must be a valid symbol or array of symbols' end end |