1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/railties/guides/rails_guides/textile_extensions.rb
Prem Sichanugrist a9f3c9da01 Using Object#in? and Object#either? in various places
There're a lot of places in Rails source code which make a lot of sense to switching to Object#in? or Object#either? instead of using [].include?.
2011-04-11 03:17:09 +08:00

43 lines
1.1 KiB
Ruby

require 'active_support/core_ext/object/inclusion'
module RailsGuides
module TextileExtensions
def notestuff(body)
body.gsub!(/^(IMPORTANT|CAUTION|WARNING|NOTE|INFO)[.:](.*)$/) do |m|
css_class = $1.downcase
css_class = 'warning' if css_class.either?('caution', 'important')
result = "<div class='#{css_class}'><p>"
result << $2.strip
result << '</p></div>'
result
end
end
def tip(body)
body.gsub!(/^TIP[.:](.*)$/) do |m|
result = "<div class='info'><p>"
result << $1.strip
result << '</p></div>'
result
end
end
def plusplus(body)
body.gsub!(/\+(.*?)\+/) do |m|
"<notextile><tt>#{$1}</tt></notextile>"
end
# The real plus sign
body.gsub!('<plus>', '+')
end
def code(body)
body.gsub!(%r{<(yaml|shell|ruby|erb|html|sql|plain)>(.*?)</\1>}m) do |m|
es = ERB::Util.h($2)
css_class = $1.either?('erb', 'shell') ? 'html' : $1
%{<notextile><div class="code_container"><code class="#{css_class}">#{es}</code></div></notextile>}
end
end
end
end