From 689aeef276c890f1d06bf1eac4627337adb22021 Mon Sep 17 00:00:00 2001 From: YAEGASHI Takeshi Date: Mon, 7 Jan 2013 02:52:33 +0900 Subject: [PATCH] Preserve case of macro names shown by {{macro_list}}. --- lib/redmine/wiki_formatting/macros.rb | 12 ++++++++---- .../lib/redmine/wiki_formatting/macros_test.rb | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/redmine/wiki_formatting/macros.rb b/lib/redmine/wiki_formatting/macros.rb index 5bafd26..fb5bafd 100644 --- a/lib/redmine/wiki_formatting/macros.rb +++ b/lib/redmine/wiki_formatting/macros.rb @@ -147,10 +147,14 @@ module Redmine unless block_given? raise "Can not create a macro without a block!" end - name = name.to_s.downcase.to_sym - available_macros[name] = {:desc => @@desc || ''}.merge(options) + name_s = name.to_s + name_sym = name_s.downcase.to_sym + available_macros[name_sym] = { + :name => name_s, + :desc => @@desc || '' + }.merge(options) @@desc = nil - Definitions.send :define_method, "macro_#{name}", &block + Definitions.send :define_method, "macro_#{name_sym}", &block end # Sets description for the next macro to be defined @@ -172,7 +176,7 @@ module Redmine macro :macro_list do |obj, args| out = ''.html_safe @@available_macros.each do |macro, options| - out << content_tag('dt', content_tag('code', macro.to_s)) + out << content_tag('dt', content_tag('code', options[:name])) out << content_tag('dd', textilizable(options[:desc])) end content_tag('dl', out) diff --git a/test/unit/lib/redmine/wiki_formatting/macros_test.rb b/test/unit/lib/redmine/wiki_formatting/macros_test.rb index d014aa5..28bef05 100644 --- a/test/unit/lib/redmine/wiki_formatting/macros_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/macros_test.rb @@ -82,6 +82,7 @@ class Redmine::WikiFormatting::MacrosTest < ActionView::TestCase Redmine::WikiFormatting::Macros.macro(:UpperCase) {|obj, args| "Upper"} assert_equal "

Upper

", textilizable("{{UpperCase}}") + assert_match %r{
UpperCase
}, textilizable("{{macro_list}}") end def test_multiple_macros_on_the_same_line -- 1.7.2.5