lib/wikilink/converter/site.rb in wikilink-converter-0.1.0 vs lib/wikilink/converter/site.rb in wikilink-converter-0.2.1

- old
+ new

@@ -16,16 +16,16 @@ is_current_site = @options[:name].to_s == CURRENT_SITE_NAME @options[:external] = !is_current_site unless @options.key?(:external) @options[:prefix] ||= '/' if is_current_site @namespace_converters = {} - on_namespace(DEFAULT_NAMESPACE) + namespace(DEFAULT_NAMESPACE) yield self if block_given? end - def on_namespace(*args, &block) + def namespace(*args, &block) namespace, converter, options = extract_arguments(*args) namespace = DEFAULT_NAMESPACE if namespace.to_s.empty? converter ||= namespace_converter(namespace) if converter.nil? @@ -48,39 +48,35 @@ end set_namespace_converter namespace, converter if converter self end - alias_method :on, :on_namespace - alias_method :namespace, :on_namespace - def on_default_namespace(*args, &block) - on_namespace(DEFAULT_NAMESPACE, *args, &block) + def default_namespace(*args, &block) + namespace(DEFAULT_NAMESPACE, *args, &block) end - alias_method :default_namespace, :on_default_namespace - def run(colon, namespace, path, name, current_page) + def run(namespace, run_options) if converter = namespace_converter(namespace) - converter.run(colon, path, name, current_page) + converter.run(run_options) elsif converter = instance_method_converter(namespace) - converter.call(colon, path, name, current_page) + converter.call(run_options) end end - protected - def html_class - [options[:class], ('external' if options[:external])] - end - private def namespace_converter(namespace) namespace = namespace.to_s.downcase @namespace_converters[namespace] end def instance_method_converter(namespace) namespace = namespace.to_s.downcase - try_message = "on_namespace_#{namespace}".to_sym + if namespace == DEFAULT_NAMESPACE + try_message = :run_default_namespace + else + try_message = "run_namespace_#{namespace}".to_sym + end method(try_message) if respond_to?(try_message) end def set_namespace_converter(namespace, converter) @namespace_converters[namespace] = converter