module Opal::Config

def config_option(name, default_value, options = {})

Parameters:
  • default_value (Object) -- the option's default value
  • name (String) -- the option name
def config_option(name, default_value, options = {})
  compiler      = options.fetch(:compiler_option, nil)
  valid_values  = options.fetch(:valid_values, [true, false])
  config_options[name] = {
    default: default_value,
    compiler: compiler
  }
  define_singleton_method(name) { config.fetch(name, default_value) }
  define_singleton_method("#{name}=") do |value|
    unless valid_values.any? { |valid_value| valid_value === value }
      raise ArgumentError, "Not a valid value for option #{self}.#{name}, provided #{value.inspect}. "\
                           "Must be #{valid_values.inspect} === #{value.inspect}"
    end
    config[name] = value
  end
end