mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
447b6a4e67
Selecting which key extensions to include in active_support/rails
made apparent the systematic usage of Object#in? in the code base.
After some discussion in
5ea6b0df9a
we decided to remove it and use plain Ruby, which seems enough
for this particular idiom.
In this commit the refactor has been made case by case. Sometimes
include? is the natural alternative, others a simple || is the
way you actually spell the condition in your head, others a case
statement seems more appropriate. I have chosen the one I liked
the most in each case.
67 lines
1.7 KiB
Ruby
67 lines
1.7 KiB
Ruby
module RedCloth::Formatters::HTML
|
|
def emdash(opts)
|
|
"--"
|
|
end
|
|
end
|
|
|
|
module RailsGuides
|
|
module TextileExtensions
|
|
def notestuff(body)
|
|
# The following regexp detects special labels followed by a
|
|
# paragraph, perhaps at the end of the document.
|
|
#
|
|
# It is important that we do not eat more than one newline
|
|
# because formatting may be wrong otherwise. For example,
|
|
# if a bulleted list follows the first item is not rendered
|
|
# as a list item, but as a paragraph starting with a plain
|
|
# asterisk.
|
|
body.gsub!(/^(TIP|IMPORTANT|CAUTION|WARNING|NOTE|INFO)[.:](.*?)(\n(?=\n)|\Z)/m) do |m|
|
|
css_class = case $1
|
|
when 'CAUTION', 'IMPORTANT'
|
|
'warning'
|
|
when 'TIP'
|
|
'info'
|
|
else
|
|
$1.downcase
|
|
end
|
|
%Q(<div class="#{css_class}"><p>#{$2.strip}</p></div>)
|
|
end
|
|
end
|
|
|
|
def plusplus(body)
|
|
body.gsub!(/\+(.*?)\+/) do |m|
|
|
"<notextile><tt>#{$1}</tt></notextile>"
|
|
end
|
|
|
|
# The real plus sign
|
|
body.gsub!('<plus>', '+')
|
|
end
|
|
|
|
def brush_for(code_type)
|
|
case code_type
|
|
when 'ruby', 'sql', 'plain'
|
|
code_type
|
|
when 'erb'
|
|
'ruby; html-script: true'
|
|
when 'html'
|
|
'xml' # html is understood, but there are .xml rules in the CSS
|
|
else
|
|
'plain'
|
|
end
|
|
end
|
|
|
|
def code(body)
|
|
body.gsub!(%r{<(yaml|shell|ruby|erb|html|sql|plain)>(.*?)</\1>}m) do |m|
|
|
<<HTML
|
|
<notextile>
|
|
<div class="code_container">
|
|
<pre class="brush: #{brush_for($1)}; gutter: false; toolbar: false">
|
|
#{ERB::Util.h($2).strip}
|
|
</pre>
|
|
</div>
|
|
</notextile>
|
|
HTML
|
|
end
|
|
end
|
|
end
|
|
end
|