link_header 0.0.4 → 0.0.5

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.
Files changed (4) hide show
  1. data/History.txt +8 -0
  2. data/README.rdoc +2 -2
  3. data/lib/link_header.rb +20 -2
  4. metadata +4 -4
@@ -1,3 +1,11 @@
1
+ == 0.0.5 2009-07-30
2
+
3
+ * Add #to_html methods
4
+
5
+ == 0.0.4 2009-07-27
6
+
7
+ * Add LinkHeader#find_link
8
+
1
9
  == 0.0.3 2009-07-24
2
10
 
3
11
  * RFC-compliant parsing and formatting; add example.rb
@@ -1,10 +1,10 @@
1
1
  = link_header README
2
2
 
3
- Parse and format HTTP link headers as described in the draft spec http://tools.ietf.org/id/draft-nottingham-http-link-header-06.txt
3
+ Parse and format HTTP link headers as described in the draft spec http://tools.ietf.org/id/draft-nottingham-http-link-header-06.txt, also the equivalent HTML link elements.
4
4
 
5
5
  == Description
6
6
 
7
- Converts conforming link headers to and from text, LinkHeader objects and corresponding (JSON-friendly) Array representations.
7
+ Converts conforming link headers to and from text, LinkHeader objects and corresponding (JSON-friendly) Array representations, also HTML link elements.
8
8
 
9
9
  == Installation
10
10
 
@@ -6,7 +6,7 @@ require "strscan"
6
6
  #
7
7
  class LinkHeader
8
8
  # rubygem version
9
- VERSION = "0.0.4"
9
+ VERSION = "0.0.5"
10
10
 
11
11
  # An array of Link objects
12
12
  attr_reader :links
@@ -99,6 +99,9 @@ class LinkHeader
99
99
  new(links)
100
100
  end
101
101
 
102
+ #
103
+ # Find a member link that has the given attributes
104
+ #
102
105
  def find_link(*attr_pairs)
103
106
  links.detect do |link|
104
107
  !attr_pairs.detect do |pair|
@@ -106,6 +109,13 @@ class LinkHeader
106
109
  end
107
110
  end
108
111
  end
112
+
113
+ #
114
+ # Render as a list of HTML link elements
115
+ #
116
+ def to_html(separator="\n")
117
+ links.map{|link| link.to_html}.join(separator)
118
+ end
109
119
 
110
120
  #
111
121
  # Represents a link - an href and a list of attributes (key value pairs)
@@ -173,7 +183,6 @@ class LinkHeader
173
183
  # Convert to string representation as per the link header spec. This includes backspace-escaping doublequote characters in
174
184
  # quoted attribute values.
175
185
  #
176
- #
177
186
  # Convert to string representation as per the link header spec
178
187
  #
179
188
  # LinkHeader::Link.new(["http://example.com/foo", [["rel", "self"]]]).to_s
@@ -182,5 +191,14 @@ class LinkHeader
182
191
  def to_s
183
192
  (["<#{href}>"] + attr_pairs.map{|k, v| "#{k}=\"#{v.gsub(/"/, '\"')}\""}).join('; ')
184
193
  end
194
+
195
+ #
196
+ # Bonus! Render as an HTML link element
197
+ #
198
+ # LinkHeader::Link.new(["http://example.com/foo", [["rel", "self"]]]).to_html
199
+ # #=> '<link href="http://example.com/foo" rel="self">'
200
+ def to_html
201
+ ([%Q(<link href="#{href}")] + attr_pairs.map{|k, v| "#{k}=\"#{v.gsub(/"/, '\"')}\""}).join(' ')
202
+ end
185
203
  end
186
204
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: link_header
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Burrows
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-07-27 00:00:00 +01:00
12
+ date: 2009-07-30 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,7 +32,7 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 2.3.2
34
34
  version:
35
- description: Converts conforming link headers to and from text, LinkHeader objects and corresponding (JSON-friendly) Array representations.
35
+ description: Converts conforming link headers to and from text, LinkHeader objects and corresponding (JSON-friendly) Array representations, also HTML link elements.
36
36
  email:
37
37
  - mjb@asplake.co.uk
38
38
  executables: []
@@ -85,7 +85,7 @@ rubyforge_project: link-header
85
85
  rubygems_version: 1.3.5
86
86
  signing_key:
87
87
  specification_version: 3
88
- summary: Converts conforming link headers to and from text, LinkHeader objects and corresponding (JSON-friendly) Array representations.
88
+ summary: Converts conforming link headers to and from text, LinkHeader objects and corresponding (JSON-friendly) Array representations, also HTML link elements.
89
89
  test_files:
90
90
  - test/test_helper.rb
91
91
  - test/test_link_header.rb