link_header 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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