aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--railties/guides/rails_guides/textile_extensions.rb3
-rw-r--r--railties/guides/source/getting_started.textile9
-rw-r--r--railties/test/guides/textile_extionsions_test.rb37
3 files changed, 43 insertions, 6 deletions
diff --git a/railties/guides/rails_guides/textile_extensions.rb b/railties/guides/rails_guides/textile_extensions.rb
index 352c5e91dd..0887ebf76b 100644
--- a/railties/guides/rails_guides/textile_extensions.rb
+++ b/railties/guides/rails_guides/textile_extensions.rb
@@ -15,10 +15,11 @@ module RailsGuides
end
def tip(body)
- body.gsub!(/^TIP[.:](.*)$/) do |m|
+ body.gsub!(/^TIP[.:](.*?)(\n\Z|\n\n+|\Z)/m) do |m|
result = "<div class='info'><p>"
result << $1.strip
result << '</p></div>'
+ result << $2 if $2
result
end
end
diff --git a/railties/guides/source/getting_started.textile b/railties/guides/source/getting_started.textile
index c2c8ee02ad..41af90e720 100644
--- a/railties/guides/source/getting_started.textile
+++ b/railties/guides/source/getting_started.textile
@@ -193,14 +193,13 @@ principles:
* Using resource identifiers such as URLs to represent resources.
* Transferring representations of the state of that resource between system components.
-For example, to a Rails application a request such as this:
+For example, the following HTTP request:
<tt>DELETE /photos/17</tt>
-would be understood to refer to a photo resource with the ID of 17, and to
-indicate a desired action - deleting that resource. REST is a natural style for
-the architecture of web applications, and Rails hooks into this shielding you
-from many of the RESTful complexities and browser quirks.
+refers to a photo resource with an ID of 17 and indicates an action to be taken
+upon it: deletion. REST is a natural web application architecture which Rails
+abstracts, shielding you from RESTful complexities and browser quirks.
If you'd like more details on REST as an architectural style, these resources
are more approachable than Fielding's thesis:
diff --git a/railties/test/guides/textile_extionsions_test.rb b/railties/test/guides/textile_extionsions_test.rb
new file mode 100644
index 0000000000..9f1068d9be
--- /dev/null
+++ b/railties/test/guides/textile_extionsions_test.rb
@@ -0,0 +1,37 @@
+require 'isolation/abstract_unit'
+require 'guides/rails_guides/textile_extensions'
+
+class TextileExtensionsTest < Test::Unit::TestCase
+ include ActiveSupport::Testing::Isolation
+ include RailsGuides::TextileExtensions
+
+ test "tips can handle a single line" do
+ expected_output = "<div class='info'><p>this is a single line tip</p></div>"
+ assert_equal expected_output, tip('TIP. this is a single line tip')
+ end
+
+ def setup
+ @multi_line_tip = "This is a multi-line tip.\n" +
+ "Isn't it fantastic?"
+ end
+
+ test "tips can handle a multi-line tip" do
+ expected_output = "<div class='info'><p>#{@multi_line_tip}</p></div>"
+
+ assert_equal expected_output, tip("TIP. #{@multi_line_tip}")
+ end
+
+ test "muli-line tips handles text before and after the tip" do
+ pre_line = "This is text before hand.\n\n"
+ post_line = "\n\nThis is some text after"
+ input_text = pre_line +
+ "TIP. #{@multi_line_tip}" +
+ post_line
+
+ expected_output = pre_line +
+ "<div class='info'><p>#{@multi_line_tip}</p></div>" +
+ post_line
+
+ assert_equal expected_output, tip(input_text)
+ end
+end \ No newline at end of file