gdata4ruby 0.1.0 → 0.1.1

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/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
1
  #=CHANGELOG
2
+ #==version 0.1.1
3
+ #* Added additional common attributes, including content, published, updated and author info
2
4
  #==version 0.1.0
3
5
  #* Initial Version
@@ -18,8 +18,11 @@
18
18
 
19
19
  require "net/http"
20
20
  require "net/https"
21
+ require 'time'
22
+ require 'cgi'
21
23
  require 'gdata4ruby/request'
22
24
  require 'gdata4ruby/utils/utils'
25
+ require 'rexml/document'
23
26
 
24
27
  Net::HTTP.version_1_2
25
28
 
@@ -112,8 +115,10 @@ module GData4Ruby
112
115
  end
113
116
 
114
117
  while ret.is_a?(Net::HTTPRedirection)
115
- puts "Redirect received, resending post" if @debug
118
+ puts "Redirect received, resending request" if @debug
119
+ request.parameters = nil
116
120
  request.url = ret['location']
121
+ puts "sending #{request.type} to url = #{request.url.to_s}" if @debug
117
122
  ret = do_request(request)
118
123
  end
119
124
  if not ret.is_a?(Net::HTTPSuccess)
@@ -17,6 +17,7 @@
17
17
  #++
18
18
 
19
19
  require 'gdata4ruby/service'
20
+ require 'time'
20
21
 
21
22
  module GData4Ruby
22
23
  #The GDataObject class represents any <entry> object returned by a Google Service. Includes
@@ -29,6 +30,18 @@ module GData4Ruby
29
30
  #The entry title.
30
31
  attr_accessor :title
31
32
 
33
+ #The raw date the document was published
34
+ attr_reader :published
35
+
36
+ #The raw date the document was last updated
37
+ attr_reader :updated
38
+
39
+ #The author/owner name
40
+ attr_reader :author_name
41
+
42
+ #The author/owner email
43
+ attr_reader :author_email
44
+
32
45
  #The current instance etag for the entry
33
46
  attr_reader :etag
34
47
 
@@ -54,6 +67,12 @@ module GData4Ruby
54
67
  #The feedLink that represents the entry's ACL feed.
55
68
  attr_reader :acl_uri
56
69
 
70
+ #The content uri for exporting the object content
71
+ attr_reader :content_uri
72
+
73
+ #The kind (type) of the object
74
+ attr_reader :kind
75
+
57
76
  #Indicates whether the object exists on the Google servers, i.e. has been created/saved.
58
77
  def exists?
59
78
  return @exists
@@ -66,7 +85,7 @@ module GData4Ruby
66
85
  @xml ||= ''
67
86
  @service ||= service
68
87
  @exists = false
69
- @title = @etag = @acl_uri = @edit_uri = @parent_uri = @feed_uri = nil
88
+ @title = @content_uri = @etag = @acl_uri = @edit_uri = @parent_uri = @feed_uri = @kind = nil
70
89
  @categories = @feed_links = []
71
90
  @include_etag = true
72
91
  attributes.each do |key, value|
@@ -87,6 +106,8 @@ module GData4Ruby
87
106
  when "id"
88
107
  puts 'setting id' if service.debug
89
108
  @feed_uri = ele.text
109
+ when 'content'
110
+ @content_uri = ele.attributes['src'] if ele.attributes['src']
90
111
  when 'resourceId'
91
112
  @id = ele.text
92
113
  when 'title'
@@ -95,16 +116,32 @@ module GData4Ruby
95
116
  @categories << {:label => ele.attributes['label'],
96
117
  :scheme => ele.attributes['scheme'],
97
118
  :term => ele.attributes['term']}
119
+ if ele.attributes['scheme'] and ele.attributes['scheme'] == 'http://schemas.google.com/g/2005#kind'
120
+ @kind = if ele.attributes['label']
121
+ ele.attributes['label']
122
+ else
123
+ ele.attributes['term']
124
+ end
125
+ end
98
126
  when 'link'
99
127
  case ele.attributes['rel']
100
128
  when 'http://schemas.google.com/docs/2007#parent'
101
129
  @parent_uri = ele.attributes['href']
102
130
  when 'edit'
103
131
  @edit_uri = ele.attributes['href']
132
+ when 'http://schemas.google.com/acl/2007#accessControlList'
133
+ @acl_uri = ele.attributes['href'] if not @acl_uri
104
134
  end
105
135
  when 'feedLink'
106
136
  @feed_links << {:rel => ele.attributes['rel'], :href => ele.attributes['href']}
107
- @acl_uri = ele.attributes['href'] if ele.attributes['rel'].include? 'accessControlList'
137
+ @acl_uri = ele.attributes['href'] if ele.attributes['rel'].include? 'accessControlList' and not @acl_uri
138
+ when 'author'
139
+ ele.elements.each('name'){}.map {|e| @author_name = e.text}
140
+ ele.elements.each('email'){}.map {|e| @author_email = e.text}
141
+ when 'published'
142
+ @published = Time.parse(ele.text)
143
+ when 'updated'
144
+ @updated = Time.parse(ele.text)
108
145
  end
109
146
  end
110
147
  return xml.root
@@ -133,7 +170,7 @@ module GData4Ruby
133
170
  #Deletes the object.
134
171
  def delete
135
172
  if @exists
136
- service.send_request(Request.new(:delete, @feed_uri, nil, {"If-Match" => "*"}))
173
+ service.send_request(Request.new(:delete, @edit_uri, nil, {"If-Match" => "*"}))
137
174
  end
138
175
  @exists = false
139
176
  return true
@@ -49,8 +49,8 @@ module GData4Ruby
49
49
 
50
50
  #A hash of additional query parameters (i.e. {'param' => 'value') to append to the request url
51
51
  def parameters=(query_parameters)
52
- raise ArgumentError, 'Query parameters must be a Hash' if query_parameters and not query_parameters.is_a? Hash
53
- @parameters = "?#{query_parameters.to_a.collect{|a| a.join("=")}.join("&")}" if query_parameters
52
+ raise ArgumentError, 'Query parameters must be a Hash' if query_parameters != nil and not query_parameters.is_a? Hash
53
+ @parameters = query_parameters.is_a?(Hash) ? "?#{query_parameters.to_a.collect{|a| a.join("=")}.join("&")}" : nil
54
54
  end
55
55
 
56
56
  #The HTTP url to send the request to
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gdata4ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Reich
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-04-28 00:00:00 +10:00
12
+ date: 2010-04-29 00:00:00 +10:00
13
13
  default_executable:
14
14
  dependencies: []
15
15