peppercorn 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  Changelog
2
2
  ===
3
3
 
4
- * 0.0.1 2011/10/25 Initial Release
5
- * 0.0.2 2011/10/28 Some refactoring and Added Nokogiri::XML::Node#appendable_node
4
+ * 0.0.3 2011/11/04
5
+ * Renamed String#truncate to String#peppercorn_truncate so peppercorn will work with rails
6
+
7
+ * 0.0.2 2011/10/28
8
+ * Some refactoring and Added Nokogiri::XML::Node#appendable_node
9
+
10
+ * 0.0.1 2011/10/25
11
+ * Initial Release
data/README.md CHANGED
@@ -1,3 +1,23 @@
1
+ About Peppercorn
2
+ ================
3
+
4
+ Peppercorn aims to be a simple and easy to use library for truncating HTML properly. It works using the
5
+ fast Nokogiri ruby gem to parse a string of HTML into a document fragment. Then steppes through that document's
6
+ children until it has counted the desired number of words.
7
+
8
+ Usage
9
+ =====
10
+
11
+ The simple case is a simple string: "Hello World"
12
+ "Hello World".truncate_html(1) # => "Hello…"
13
+
14
+ Of course if you don't like "…" on the end you could use something else:
15
+ "Hello World".truncate_html(1, :tail => " All") # => "Hello All"
16
+
17
+
18
+
19
+ {include:file:CHANGELOG.md}
20
+
1
21
  License
2
22
  =======
3
23
 
@@ -5,12 +5,12 @@ module Peppercorn
5
5
  module String
6
6
 
7
7
  # Truncate a string to "length" words
8
- # @since 0.0.1
8
+ # @since 0.0.3
9
9
  # @param [Fixnum] length the number of word to truncate on
10
10
  # @param [Hash] opts hash of truncation options
11
11
  # @option opts [#to_s, nil] :tail ("…") the object to append to the truncated string
12
12
  # @return [String] the truncated string
13
- def truncate(length=30, opts={})
13
+ def peppercorn_truncate(length=30, opts={})
14
14
  opts = Peppercorn::DEFAULT_TRUNCATION_OPTIONS.merge(opts)
15
15
  tokens = scan(/\W*\w+\W*/)
16
16
  string_tokens = tokens[0...length]
@@ -24,12 +24,18 @@ module Peppercorn
24
24
  end
25
25
  return opts[:return_hash] ? {:text => string, :overran => overran, :count => [length, tokens.size].min} : string
26
26
  end
27
+
28
+ # Alias for #peppercorn_truncate
29
+ # @since 0.0.1
30
+ def truncate(length=30, opts={})
31
+ peppercorn_truncate(length, opts)
32
+ end
27
33
 
28
34
  # Strips all whitespaces from the end of the string
29
35
  # @since 0.0.1
30
36
  # @return [String] the stripped version of the string
31
37
  def strip_end
32
- return sub(/(\s+)$/, '')
38
+ return rstrip
33
39
  end
34
40
 
35
41
  # Returns the string with all HTML tags removed
@@ -1,4 +1,4 @@
1
1
  module Peppercorn
2
2
  # The current peppercorn version
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
@@ -17,7 +17,7 @@ module Peppercorn
17
17
  overran = false
18
18
 
19
19
  if doc.text?
20
- result = content.truncate(length, opts.merge(Peppercorn::TRUNCATE_CHILD_OPTS))
20
+ result = content.peppercorn_truncate(length, opts.merge(Peppercorn::TRUNCATE_CHILD_OPTS))
21
21
  target = result[:text]
22
22
  count = result[:count]
23
23
  overran = result[:overran]
@@ -38,7 +38,7 @@ module Peppercorn
38
38
 
39
39
  if opts[:strip]
40
40
  last_text_node = target.last_text_node
41
- last_text_node.content = last_text_node.content.sub(/(\s+)$/, '') if last_text_node
41
+ last_text_node.content = last_text_node.content.strip_end if last_text_node
42
42
  end
43
43
 
44
44
  if !opts[:tail].to_s.empty? and overran
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peppercorn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-28 00:00:00.000000000Z
12
+ date: 2011-11-04 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yard
16
- requirement: &70336758482100 !ruby/object:Gem::Requirement
16
+ requirement: &70250050848180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.7'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70336758482100
24
+ version_requirements: *70250050848180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70336758481140 !ruby/object:Gem::Requirement
27
+ requirement: &70250050847680 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '2.7'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70336758481140
35
+ version_requirements: *70250050847680
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: guard-rspec
38
- requirement: &70336758479500 !ruby/object:Gem::Requirement
38
+ requirement: &70250050847180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0.5'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70336758479500
46
+ version_requirements: *70250050847180
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: guard-yard
49
- requirement: &70336758478160 !ruby/object:Gem::Requirement
49
+ requirement: &70250050846720 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '1.0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70336758478160
57
+ version_requirements: *70250050846720
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rdiscount
60
- requirement: &70336758476840 !ruby/object:Gem::Requirement
60
+ requirement: &70250050846260 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '1.6'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70336758476840
68
+ version_requirements: *70250050846260
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: nokogiri
71
- requirement: &70336758475660 !ruby/object:Gem::Requirement
71
+ requirement: &70250050845800 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '1.5'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70336758475660
79
+ version_requirements: *70250050845800
80
80
  description: A simple gem to truncate HTML, with other features coming in the future.
81
81
  email:
82
82
  - wwest81@gmail.com