<p><%= setting_select :protocol, [['HTTP', 'http'], ['HTTPS', 'https']] %></p>
-<p><%= setting_select :text_formatting, Redmine::WikiFormatting.format_names.collect{|name| [name, name.to_s]}, :blank => :label_none %></p>
+<p><%= setting_select :text_formatting, Redmine::WikiFormatting.formats_for_select, :blank => :label_none %></p>
<p><%= setting_check_box :cache_formatted_text %></p>
yield self
end
- def register(name, formatter, helper)
- raise ArgumentError, "format name '#{name}' is already taken" if @@formatters[name.to_s]
- @@formatters[name.to_s] = {:formatter => formatter, :helper => helper}
+ def register(name, formatter, helper, options={})
+ name = name.to_s
+ raise ArgumentError, "format name '#{name}' is already taken" if @@formatters[name]
+ @@formatters[name] = {
+ :formatter => formatter,
+ :helper => helper,
+ :label => options[:label] || name.humanize
+ }
end
def formatter
@@formatters.keys.map
end
+ def formats_for_select
+ @@formatters.map {|name, options| [options[:label], name]}
+ end
+
def to_html(format, text, options = {})
text = if Setting.cache_formatted_text? && text.size > 2.kilobyte && cache_store && cache_key = cache_key_for(format, text, options[:object], options[:attribute])
# Text retrieved from the cache store may be frozen
assert_equal Redmine::WikiFormatting::NullFormatter::Helper, Redmine::WikiFormatting.helper_for('')
end
+ def test_formats_for_select
+ assert_include ['Textile', 'textile'], Redmine::WikiFormatting.formats_for_select
+ end
+
def test_should_link_urls_and_email_addresses
raw = <<-DIFF
This is a sample *text* with a link: http://www.redmine.org