Sha256: e1d6f653cdcf93253ef4db024cea159373d339b708d756d4155e6de1d2d0e6c6

Contents?: true

Size: 1.35 KB

Versions: 8

Compression:

Stored size: 1.35 KB

Contents

require 'set'

module Opal
  module Config
    def self.default_config
      {
        method_missing_enabled:    true,
        arity_check_enabled:       false,
        const_missing_enabled:     true,
        dynamic_require_severity:  :error, # :error, :warning or :ignore
        irb_enabled:               false,
        inline_operators_enabled:  true,
        source_map_enabled:        true,
      }
    end

    def self.config
      @config ||= default_config
    end

    def self.reset!
      @config = nil
    end

    COMPILER_KEYS = {
      method_missing:           :method_missing_enabled,
      arity_check:              :arity_check_enabled,
      const_missing:            :const_missing_enabled,
      dynamic_require_severity: :dynamic_require_severity,
      irb:                      :irb_enabled,
      inline_operators:         :inline_operators_enabled,
    }

    def self.compiler_options
      config = self.config
      compiler_options = {}
      COMPILER_KEYS.each do |compiler_option_name, option_name|
        compiler_options[compiler_option_name] = config[option_name]
      end
      compiler_options
    end

    default_config.keys.each do |config_option|
      define_singleton_method(config_option) { config[config_option] }
      define_singleton_method("#{config_option}=") { |value| config[config_option] = value }
    end
  end
end

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
opal-0.8.1 lib/opal/config.rb
opal-0.8.1.rc1 lib/opal/config.rb
opal-wedge-0.9.0.dev lib/opal/config.rb
opal-0.8.0 lib/opal/config.rb
opal-0.8.0.rc3 lib/opal/config.rb
opal-0.8.0.rc2 lib/opal/config.rb
opal-0.8.0.rc1 lib/opal/config.rb
opal-0.8.0.beta1 lib/opal/config.rb