# frozen_string_literal: true module Moxml class << self def new(adapter = nil, &block) context = Context.new(adapter) context.config.instance_eval(&block) if block_given? context end def configure yield Config.default if block_given? end def with_config(adapter_name = nil, strict_parsing = nil, default_encoding = nil) original_config = Config.default.dup configure do |config| config.adapter = adapter_name unless adapter_name.nil? config.strict_parsing = strict_parsing unless strict_parsing.nil? config.default_encoding = default_encoding unless default_encoding.nil? end yield if block_given? # restore the original config configure do |config| config.adapter = original_config.adapter_name config.strict_parsing = original_config.strict_parsing config.default_encoding = original_config.default_encoding end original_config = nil end end end require_relative "moxml/version" require_relative "moxml/document" require_relative "moxml/document_builder" require_relative "moxml/error" require_relative "moxml/builder" require_relative "moxml/config" require_relative "moxml/context" require_relative "moxml/adapter"