Permalink
Browse files

no more text-format for Ruby 1.9 compatibility

  • Loading branch information...
1 parent 4433b50 commit cab7cb4aa09ca75b3c74cdfeaea380f3524cf230 @tenderlove tenderlove committed Feb 11, 2011
Showing with 18 additions and 14 deletions.
  1. +0 −3 Gemfile
  2. +18 −10 actionmailer/lib/action_mailer/mail_helper.rb
  3. +0 −1 actionmailer/test/abstract_unit.rb
View
@@ -19,9 +19,6 @@ gem "addressable"
# AS
gem "memcache-client", ">= 1.8.5"
-# AM
-gem "text-format", "~> 1.0.0"
-
platforms :mri_18 do
gem "system_timer"
gem "ruby-debug", ">= 0.10.3"
@@ -3,17 +3,8 @@ module MailHelper
# Uses Text::Format to take the text and format it, indented two spaces for
# each line, and wrapped at 72 columns.
def block_format(text)
- begin
- require 'text/format'
- rescue LoadError => e
- $stderr.puts "You don't have text-format installed in your application. Please add it to your Gemfile and run bundle install"
- raise e
- end unless defined?(Text::Format)
-
formatted = text.split(/\n\r\n/).collect { |paragraph|
- Text::Format.new(
- :columns => 72, :first_indent => 2, :body_indent => 2, :text => paragraph
- ).format
+ simple_format(paragraph)
}.join("\n")
# Make list points stand on their own line
@@ -37,5 +28,22 @@ def message
def attachments
@_message.attachments
end
+
+ private
+ def simple_format(text, len = 72, indent = 2)
+ sentences = [[]]
+
+ text.split.each do |word|
+ if (sentences.last + [word]).join(' ').length > len
+ sentences << [word]
+ else
+ sentences.last << word
+ end
+ end
+
+ sentences.map { |sentence|
+ "#{" " * indent}#{sentence.join(' ')}"
+ }.join "\n"
+ end
end
end
@@ -25,7 +25,6 @@
silence_warnings do
# These external dependencies have warnings :/
- require 'text/format'
require 'mail'
end

0 comments on commit cab7cb4

Please sign in to comment.