Class: Mail::Sanitizer::String
- Inherits:
-
Object
- Object
- Mail::Sanitizer::String
- Defined in:
- lib/mail/sanitizer/string.rb
Constant Summary collapse
- ADDRESS_REGEXP =
/([a-zA-Z0-9_!#$%&`'"*+\-{|}~^\/=?\.]+@[a-zA-Z0-9][a-zA-Z0-9\.\-]+)/- SP =
"[[:space:]]"- DIGIT =
"[0-90-9]"- YEAR =
"(#{DIGIT}{4})#{SP}*年"- MONTH =
"(#{DIGIT}{1,2})#{SP}*月"- DAY =
"(#{DIGIT}{1,2})#{SP}*日"- HOUR =
"(#{DIGIT}+)#{SP}*時"- MIN =
"(#{DIGIT}+)#{SP}*分"- PATTERNS =
[ [/#{YEAR}#{MONTH}#{DAY}/, '\1/\2/\3'], [/#{HOUR}#{MIN}/, '\1:\2'] ]
Class Method Summary collapse
- .downcase(str) ⇒ Object
- .include_datetime?(str) ⇒ Boolean
- .include_datetime_and_email_address?(str) ⇒ Boolean
- .include_email_address?(str) ⇒ Boolean
- .quot_pattern?(str) ⇒ Boolean
- .remove_email_address(str) ⇒ Object
- .replace_jp_datetime(str) ⇒ Object
- .split_line(str) ⇒ Object
Class Method Details
.downcase(str) ⇒ Object
23 24 25 |
# File 'lib/mail/sanitizer/string.rb', line 23 def downcase(str) str.downcase.gsub(/[[:space:]]/, '') end |
.include_datetime?(str) ⇒ Boolean
38 39 40 41 42 43 44 |
# File 'lib/mail/sanitizer/string.rb', line 38 def include_datetime?(str) str = replace_jp_datetime(str) DateTime.parse(str) true rescue false end |
.include_datetime_and_email_address?(str) ⇒ Boolean
33 34 35 36 |
# File 'lib/mail/sanitizer/string.rb', line 33 def include_datetime_and_email_address?(str) s = Mail::Sanitizer::String.remove_email_address(str) Mail::Sanitizer::String.include_email_address?(str) && Mail::Sanitizer::String.include_datetime?(s) end |
.include_email_address?(str) ⇒ Boolean
46 47 48 |
# File 'lib/mail/sanitizer/string.rb', line 46 def include_email_address?(str) ADDRESS_REGEXP.match?(str) end |
.quot_pattern?(str) ⇒ Boolean
27 28 29 30 31 |
# File 'lib/mail/sanitizer/string.rb', line 27 def quot_pattern?(str) s = downcase(str) (s =~ Mail::Sanitizer::Constant::QUOT_PATTERN) || (s =~ Mail::Sanitizer::Constant::QUOT_DATETIME_PATTERN && Mail::Sanitizer::String.include_datetime?(str)) end |
.remove_email_address(str) ⇒ Object
50 51 52 |
# File 'lib/mail/sanitizer/string.rb', line 50 def remove_email_address(str) str.gsub(ADDRESS_REGEXP, '') end |
.replace_jp_datetime(str) ⇒ Object
54 55 56 57 58 59 |
# File 'lib/mail/sanitizer/string.rb', line 54 def replace_jp_datetime(str) return nil if str.nil? || str == '' fstr = str.dup PATTERNS.each { |pattern| fstr.gsub!(pattern[0], pattern[1]) } fstr end |
.split_line(str) ⇒ Object
19 20 21 |
# File 'lib/mail/sanitizer/string.rb', line 19 def split_line(str) str.split(/\r\n|\r|\n/) end |