ratom 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.6.2 2009-06-19
2
+
3
+ * Handle href and fixed on service doc categories.
4
+ * Use request_uri instead of path so that we get any query parameters too. [Wybo Wiersma]
5
+ * Doc Patches.
6
+
1
7
  == 0.6.1 2009-03-27
2
8
 
3
9
  Some minor exception fixes.
data/README.txt CHANGED
@@ -138,7 +138,15 @@ required to let us update to the entry. For example, lets change the content an
138
138
  published_entry.content = Atom::Content::Html.new("<p>rAtom lets me post to and edit my blog using Ruby, how cool!</p>")
139
139
  published_entry.updated = Time.now
140
140
  published_entry.save!
141
-
141
+
142
+ To update an existing Entry:
143
+
144
+ existing_entry = Entry.load_entry(URI.parse("http://example.org/afeedentry.atom"))
145
+
146
+ existing_entry.title = "I have discovered rAtom"
147
+ existing_entry.updated = Time.now
148
+ existing_entry.save!
149
+
142
150
  You can also delete an entry using the <tt>destroy!</tt> method, but we won't do that will we?.
143
151
 
144
152
  === Extension elements
@@ -260,7 +268,6 @@ As of version 0.5.1 rAtom also support authentication via HMAC request signing u
260
268
 
261
269
  * Support partial content responses from the server.
262
270
  * Support batching of protocol operations.
263
- * Examples of editing existing entries.
264
271
  * All my tests have been against internal systems, I'd really like feedback from those who have tried rAtom using existing blog software that supports APP.
265
272
  * Handle all base uri tests.
266
273
  * Add slug support.
data/lib/atom/pub.rb CHANGED
@@ -60,15 +60,22 @@ module Atom
60
60
  class Categories < DelegateClass(Array)
61
61
  include Atom::Xml::Parseable
62
62
  elements :categories, :class => Atom::Category
63
+ attribute :href, :fixed
63
64
 
64
65
  def initialize(o)
65
66
  super([])
67
+ parse(o, :once => true)
66
68
  o.read
67
69
  parse(o)
68
70
  end
69
71
 
70
72
  remove_method :categories
71
73
  def categories; self; end
74
+
75
+ # True true if fixed was 'yes' or 'true'
76
+ def fixed?
77
+ !self.fixed.nil? && %w(yes true).include?(self.fixed.downcase)
78
+ end
72
79
  end
73
80
 
74
81
  class Workspace
@@ -128,7 +135,7 @@ module Atom
128
135
  uri = URI.parse(href)
129
136
  response = nil
130
137
  Net::HTTP.start(uri.host, uri.port) do |http|
131
- request = Net::HTTP::Post.new(uri.path, headers)
138
+ request = Net::HTTP::Post.new(uri.request_uri, headers)
132
139
  if opts[:user] && opts[:pass]
133
140
  request.basic_auth(opts[:user], opts[:pass])
134
141
  elsif opts[:hmac_access_id] && opts[:hmac_secret_key]
@@ -179,7 +186,7 @@ module Atom
179
186
  uri = URI.parse(edit.href)
180
187
  response = nil
181
188
  Net::HTTP.start(uri.host, uri.port) do |http|
182
- request = Net::HTTP::Put.new(uri.path, headers)
189
+ request = Net::HTTP::Put.new(uri.request_uri, headers)
183
190
  if opts[:user] && opts[:pass]
184
191
  request.basic_auth(opts[:user], opts[:pass])
185
192
  elsif opts[:hmac_access_id] && opts[:hmac_secret_key]
@@ -208,7 +215,7 @@ module Atom
208
215
  uri = URI.parse(edit.href)
209
216
  response = nil
210
217
  Net::HTTP.start(uri.host, uri.port) do |http|
211
- request = Net::HTTP::Delete.new(uri.path, {'Accept' => 'application/atom+xml', 'User-Agent' => "rAtom #{Atom::VERSION::STRING}"})
218
+ request = Net::HTTP::Delete.new(uri.request_uri, {'Accept' => 'application/atom+xml', 'User-Agent' => "rAtom #{Atom::VERSION::STRING}"})
212
219
  if opts[:user] && opts[:pass]
213
220
  request.basic_auth(opts[:user], opts[:pass])
214
221
  elsif opts[:hmac_access_id] && opts[:hmac_secret_key]
data/lib/atom/version.rb CHANGED
@@ -8,7 +8,7 @@ module Atom #:nodoc:
8
8
  module VERSION #:nodoc:
9
9
  MAJOR = 0
10
10
  MINOR = 6
11
- TINY = 1
11
+ TINY = 2
12
12
 
13
13
  STRING = [MAJOR, MINOR, TINY].join('.')
14
14
  end
@@ -32,7 +32,12 @@ shared_examples_for 'parser of spec/app/service.xml' do
32
32
  it "should have categories" do
33
33
  @collection1.categories.should_not be_nil
34
34
  end
35
-
35
+
36
+ it "should have a href on categories" do
37
+ @collection1.categories.href.should == "http://example.com/cats/forMain.cats"
38
+ @collection1.categories.fixed?.should be_false
39
+ end
40
+
36
41
  it "should have a title" do
37
42
  @collection1.title.should == 'My Blog Entries'
38
43
  end
@@ -88,6 +93,14 @@ shared_examples_for 'parser of spec/app/service.xml' do
88
93
  it "should have categories" do
89
94
  @collection3.categories.should_not be_nil
90
95
  end
96
+
97
+ it "should have fixed == 'yes' on categories" do
98
+ @collection3.categories.fixed.should == "yes"
99
+ end
100
+
101
+ it "should have fixed? == true on categories" do
102
+ @collection3.categories.fixed?.should be_true
103
+ end
91
104
  end
92
105
 
93
106
  describe Atom::Pub do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ratom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peerworks
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-03-27 00:00:00 +10:30
13
+ date: 2009-06-19 00:00:00 +09:30
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -31,7 +31,7 @@ dependencies:
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: 1.8.2
34
+ version: 1.12.2
35
35
  version:
36
36
  description: Atom Syndication and Publication API
37
37
  email: sean@peerworks.org