tinyatom 0.2.0 → 0.3.0

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.
data/README.textile CHANGED
@@ -40,17 +40,23 @@ feed.add_entry(
40
40
 
41
41
  :via_type => 'text/html',
42
42
  :via_href => 'http://anotherblog.com/posts/999',
43
- :via_title => 'Look at this photo'
43
+ :via_title => 'Look at this photo',
44
+
45
+
46
+ :media_thumbnail_url => 'http://mysite.com/thumbnails/1.jpg',
47
+ :media_thumbnail_width => 100,
48
+ :media_thumbnail_height => 100,
49
+ :media_thumbnail_time => '00:00:00.000'
44
50
  )
45
51
 
46
52
  puts feed.make(:indent => 2)
47
53
  # open('atom.xml', 'w') { |f| feed.make(:target => f) }
48
54
 
49
55
  <?xml version="1.0" encoding="UTF-8"?>
50
- <feed xmlns="http://www.w3.org/2005/Atom">
56
+ <feed xmlns:media="http://purl.org/syndication/atommedia" xmlns="http://www.w3.org/2005/Atom">
51
57
  <title>My Blog</title>
52
58
  <link rel="self" href="http://mysite.com/blog/atom.xml"/>
53
- <updated>2010-10-06T20:34:49-04:00</updated>
59
+ <updated>2010-11-14T10:15:25-05:00</updated>
54
60
  <id>http://mysite.com/blog/</id>
55
61
  <author>
56
62
  <name>me</name>
@@ -61,14 +67,15 @@ puts feed.make(:indent => 2)
61
67
  <entry>
62
68
  <title>post 1</title>
63
69
  <link href="http://mysite.com/blog/1"/>
64
- <id>tag:mysite.com,2010-10-06:1</id>
65
- <updated>2010-10-06T20:34:49-04:00</updated>
70
+ <id>tag:mysite.com,2010-11-14:1</id>
71
+ <updated>2010-11-14T10:15:25-05:00</updated>
66
72
  <author>
67
73
  <name>me</name>
68
74
  <email>me@mysite.com</email>
69
75
  <uri>http://mysite.com/</uri>
70
76
  </author>
71
- <link type="image/png" rel="enclosure" length="6227" title="photo" href="http://mysite.com/image.png"/>
77
+ <link type="image/png" rel="enclosure" title="photo" length="6227" href="http://mysite.com/image.png"/>
78
+ <media:thumbnail url="http://mysite.com/thumbnails/1.jpg" height="100" time="00:00:00.000" width="100"/>
72
79
  <link type="text/html" rel="via" title="Look at this photo" href="http://anotherblog.com/posts/999"/>
73
80
  </entry>
74
81
  </feed>
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
data/lib/tinyatom/feed.rb CHANGED
@@ -29,7 +29,8 @@ module TinyAtom
29
29
  xm = Builder::XmlMarkup.new(options)
30
30
  xm.instruct!(:xml)
31
31
 
32
- xm.feed(:xmlns => 'http://www.w3.org/2005/Atom') {
32
+ xm.feed(:xmlns => 'http://www.w3.org/2005/Atom',
33
+ :'xmlns:media' => 'http://purl.org/syndication/atommedia') {
33
34
  xm.title(title)
34
35
  xm.link(:href => feed_url, :rel => 'self')
35
36
  xm.updated(updated.xmlschema)
@@ -48,8 +49,11 @@ module TinyAtom
48
49
  xm.summary(e[:summary]) if e[:summary]
49
50
  xm.content(e[:content]) if e[:content]
50
51
 
51
- TinyAtom::author(xm, e)
52
- TinyAtom::enclosure(xm, e)
52
+ (e[:authors] || [e]).each { |h| TinyAtom::author(xm, h) }
53
+ (e[:enclosures] || [e]).each { |h| TinyAtom::enclosure(xm, h) }
54
+ (e[:media_thumbnails] || [e]).each do |h|
55
+ TinyAtom::media_thumbnail(xm, h)
56
+ end
53
57
  TinyAtom::via(xm, e)
54
58
  }
55
59
  end
@@ -94,7 +98,6 @@ module TinyAtom
94
98
  # Add enclosure tags if present
95
99
  def enclosure(markup, h)
96
100
  if h[:enclosure_type] and h[:enclosure_href] and h[:enclosure_title]
97
-
98
101
  options = {}
99
102
  h.each do |k,v|
100
103
  if EnclosureOptionalAttrs.include?(k)
@@ -107,6 +110,28 @@ module TinyAtom
107
110
  end
108
111
  end
109
112
 
113
+ # param name => tag name
114
+ MediaThumbnailOptionalAttrs = {
115
+ :media_thumbnail_height => :height,
116
+ :media_thumbnail_width => :width,
117
+ :media_thumbnail_time => :time,
118
+ }
119
+
120
+ # Add media:thumbnail tags if present.
121
+ def media_thumbnail(markup, h)
122
+ if h[:media_thumbnail_url]
123
+ options = {}
124
+ h.each do |k,v|
125
+ if MediaThumbnailOptionalAttrs.include?(k)
126
+ options[MediaThumbnailOptionalAttrs[k]] = v
127
+ end
128
+ end
129
+
130
+ markup.media(:thumbnail,
131
+ { :url => h[:media_thumbnail_url] }.merge(options))
132
+ end
133
+ end
134
+
110
135
  # Add via tags if present
111
136
  def via(markup, h)
112
137
  if h[:via_type] and h[:via_href] and h[:via_title]
data/tinyatom.gemspec CHANGED
@@ -1,33 +1,31 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{tinyatom}
8
- s.version = "0.2.0"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Matthew M. Boedicker"]
12
- s.date = %q{2010-10-06}
12
+ s.date = %q{2010-11-14}
13
13
  s.description = %q{Small and easy to use ruby Atom feed generator.}
14
14
  s.email = %q{matthewm@boedicker.org}
15
15
  s.extra_rdoc_files = [
16
16
  "README.textile"
17
17
  ]
18
18
  s.files = [
19
- ".gitignore",
20
- "COPYING",
21
- "README.textile",
22
- "Rakefile",
23
- "VERSION",
24
- "lib/tinyatom.rb",
25
- "lib/tinyatom/feed.rb",
26
- "lib/tinyatom/uri.rb",
27
- "tinyatom.gemspec"
19
+ "COPYING",
20
+ "README.textile",
21
+ "Rakefile",
22
+ "VERSION",
23
+ "lib/tinyatom.rb",
24
+ "lib/tinyatom/feed.rb",
25
+ "lib/tinyatom/uri.rb",
26
+ "tinyatom.gemspec"
28
27
  ]
29
28
  s.homepage = %q{http://github.com/mmb/tinyatom}
30
- s.rdoc_options = ["--charset=UTF-8"]
31
29
  s.require_paths = ["lib"]
32
30
  s.rubygems_version = %q{1.3.7}
33
31
  s.summary = %q{Small and easy to use ruby Atom feed generator.}
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tinyatom
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
8
+ - 3
9
9
  - 0
10
- version: 0.2.0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matthew M. Boedicker
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-06 00:00:00 -04:00
18
+ date: 2010-11-14 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -43,7 +43,6 @@ extensions: []
43
43
  extra_rdoc_files:
44
44
  - README.textile
45
45
  files:
46
- - .gitignore
47
46
  - COPYING
48
47
  - README.textile
49
48
  - Rakefile
@@ -57,8 +56,8 @@ homepage: http://github.com/mmb/tinyatom
57
56
  licenses: []
58
57
 
59
58
  post_install_message:
60
- rdoc_options:
61
- - --charset=UTF-8
59
+ rdoc_options: []
60
+
62
61
  require_paths:
63
62
  - lib
64
63
  required_ruby_version: !ruby/object:Gem::Requirement
data/.gitignore DELETED
@@ -1 +0,0 @@
1
- *~