refinerycms 0.9.5.10 → 0.9.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,53 +25,50 @@ module Refinery::HtmlTruncationHelper
25
25
 
26
26
  # Like the Rails _truncate_ helper but doesn't break HTML tags, entities, and optionally. words.
27
27
  def truncate(text, *args)
28
+ return super unless args.include?(:preserve_html_tags)
28
29
  return if text.nil?
30
+
29
31
  options = args.extract_options!
30
- unless (options[:preserve_html_tags] == true)
31
- return super
32
- else
33
- max_length = options[:length] || 30
34
- omission = options[:omission] || "..."
35
- # use :link => link_to('more', post_path), or something to that effect
36
-
37
- doc = Hpricot(text.to_s)
38
- omission_length = Hpricot(omission).inner_text.mb_chars.length
39
- content_length = doc.inner_text.mb_chars.length
40
- actual_length = max_length - omission_length
32
+ max_length = options[:length] || 30
33
+ omission = options[:omission] || "..."
34
+ # use :link => link_to('more', post_path), or something to that effect
41
35
 
42
- if content_length > max_length
43
- truncated_doc = doc.truncate(actual_length)
44
-
45
- if (options[:preserve_full_words] || false)
46
- word_length = actual_length - (truncated_doc.inner_html.mb_chars.length - truncated_doc.inner_html.rindex(' '))
47
- truncated_doc = doc.truncate(word_length)
48
- end
36
+ doc = Hpricot(text.to_s)
37
+ omission_length = Hpricot(omission).inner_text.mb_chars.length
38
+ content_length = doc.inner_text.mb_chars.length
39
+ actual_length = max_length - omission_length
49
40
 
50
- last_child = truncated_doc.children.last
41
+ if content_length > max_length
42
+ truncated_doc = doc.truncate(actual_length)
43
+
44
+ if (options[:preserve_full_words] || false)
45
+ word_length = actual_length - (truncated_doc.inner_html.mb_chars.length - truncated_doc.inner_html.rindex(' '))
46
+ truncated_doc = doc.truncate(word_length)
47
+ end
48
+
49
+ last_child = truncated_doc.children.last
50
+ if last_child.inner_html.nil?
51
+ truncated_doc.inner_html + omission + options[:link] if options[:link]
52
+ else
53
+ last_child.inner_html = last_child.inner_html.gsub(/\W.[^\s]+$/, "") + omission
54
+ last_child.inner_html += options[:link] if options[:link]
55
+ truncated_doc
56
+ end
57
+ else
58
+ if options[:link]
59
+ last_child = doc.children.last
51
60
  if last_child.inner_html.nil?
52
- truncated_doc.inner_html + omission + options[:link] if options[:link]
61
+ doc.inner_html + options[:link]
53
62
  else
54
- last_child.inner_html = last_child.inner_html.gsub(/\W.[^\s]+$/, "") + omission
55
- last_child.inner_html += options[:link] if options[:link]
56
- truncated_doc
57
- end
63
+ last_child.inner_html = last_child.inner_html.gsub(/\W.[^\s]+$/, "") + options[:link]
64
+ doc
65
+ end
58
66
  else
59
- if options[:link]
60
- last_child = doc.children.last
61
- if last_child.inner_html.nil?
62
- doc.inner_html + options[:link]
63
- else
64
- last_child.inner_html = last_child.inner_html.gsub(/\W.[^\s]+$/, "") + options[:link]
65
- doc
66
- end
67
- else
68
- text.to_s
69
- end
67
+ text.to_s
70
68
  end
71
69
  end
72
70
  end
73
-
74
-
71
+
75
72
  end
76
73
 
77
74
  module HpricotTruncator
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refinerycms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5.10
4
+ version: 0.9.5.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Resolve Digital
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2009-11-18 00:00:00 +13:00
14
+ date: 2009-11-19 00:00:00 +13:00
15
15
  default_executable: refinery
16
16
  dependencies: []
17
17