flickraw 0.4.5 → 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 (3) hide show
  1. data/lib/flickraw.rb +14 -14
  2. data/rakefile +2 -1
  3. metadata +45 -44
data/lib/flickraw.rb CHANGED
@@ -22,11 +22,11 @@
22
22
 
23
23
  require 'net/http'
24
24
  require 'md5'
25
- require 'yaml'
25
+ require 'json'
26
26
  require 'cgi'
27
27
 
28
28
  module FlickRaw
29
- VERSION='0.4.5'
29
+ VERSION='0.5'
30
30
 
31
31
  FLICKR_HOST='api.flickr.com'.freeze
32
32
 
@@ -58,15 +58,12 @@ module FlickRaw
58
58
  def self.structify(obj, name = '')
59
59
  if obj.is_a? Hash
60
60
  if name =~ /s$/ and obj[$`].is_a? Array
61
- list = structify obj[$`]
61
+ list = structify obj.delete($`)
62
62
  list.extend SimpleOStruct
63
63
  list.instance_eval { obj.each {|kv, vv| __attr_define kv, vv } }
64
64
  list
65
- elsif obj['_content']
66
- content = obj['_content'].to_s
67
- content.extend SimpleOStruct
68
- content.instance_eval { obj.each {|kv, vv| __attr_define kv, vv } }
69
- content
65
+ elsif obj.keys == ['_content']
66
+ obj['_content'].to_s
70
67
  else
71
68
  Response.new obj
72
69
  end
@@ -76,6 +73,8 @@ module FlickRaw
76
73
  obj
77
74
  end
78
75
  end
76
+
77
+ def to_s; @_content || super end
79
78
  end
80
79
 
81
80
  class FailedResponse < StandardError
@@ -183,16 +182,16 @@ module FlickRaw
183
182
  code = xml[/code="([^"]+)"/, 1]
184
183
  raise FailedResponse.new(msg, code, 'flickr.upload')
185
184
  end
186
- Response.structify( {:stat => 'ok', :photoid => xml[/<photoid>(\w+)<\/photoid>/, 1], :ticketid => xml[/<ticketid>(\w+)<\/ticketid>/, 1]})
185
+ Response.structify( {:stat => 'ok', :photoid => xml[/<photoid>(\w+)<\/photoid>/, 1], :ticketid => xml[/<ticketid>([^<]+)<\/ticketid>/, 1]})
187
186
  end
188
187
 
189
188
  private
190
189
  def parse_response(response, req = nil)
191
- yaml = YAML.load(response.body.gsub(/:([^\s])/, ': \1'))
192
- raise FailedResponse.new(yaml['message'], yaml['code'], req) if yaml.delete('stat') == 'fail'
193
- name, yaml = yaml.to_a.first if yaml.size == 1
190
+ json = JSON.load(response.body.gsub(/:([^\s])/, ': \1'))
191
+ raise FailedResponse.new(json['message'], json['code'], req) if json.delete('stat') == 'fail'
192
+ name, json = json.to_a.first if json.size == 1
194
193
 
195
- res = Response.structify yaml, name
194
+ res = Response.structify json, name
196
195
  lookup_token(req, res)
197
196
  res
198
197
  end
@@ -244,4 +243,5 @@ end
244
243
  #
245
244
  # recent_photos = flickr.photos.getRecent
246
245
  # puts recent_photos[0].title
247
- def flickr; $flickr ||= FlickRaw::Flickr.new end
246
+ def flickr; $flickraw ||= FlickRaw::Flickr.new end
247
+
data/rakefile CHANGED
@@ -11,13 +11,14 @@ PKG_FILES = FileList["lib/flickraw.rb", "flickraw_rdoc.rb", "copying.txt", "READ
11
11
  spec = Gem::Specification.new do |s|
12
12
  s.summary = "Flickr library with a syntax close to the syntax described on http://www.flickr.com/services/api"
13
13
  s.name = "flickraw"
14
- s.author = "Hank Lords"
14
+ s.author = "Mael Clerambault"
15
15
  s.email = "maelclerambault@yahoo.fr"
16
16
  s.homepage = "http://flickraw.rubyforge.org"
17
17
  s.rubyforge_project = "flickraw"
18
18
  s.version = FlickRaw::VERSION
19
19
  s.files = PKG_FILES
20
20
  s.test_files = FileList["test/*.rb"].to_a
21
+ s.add_dependency 'json'
21
22
  end
22
23
 
23
24
  Rake::RDocTask.new do |rd|
metadata CHANGED
@@ -1,26 +1,33 @@
1
1
  --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
2
4
  name: flickraw
3
5
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
5
- platform: ruby
6
- authors:
7
- - Hank Lords
6
+ version: "0.5"
7
+ date: 2008-11-10 00:00:00 +01:00
8
+ summary: Flickr library with a syntax close to the syntax described on http://www.flickr.com/services/api
9
+ require_paths:
10
+ - lib
11
+ email: maelclerambault@yahoo.fr
12
+ homepage: http://flickraw.rubyforge.org
13
+ rubyforge_project: flickraw
14
+ description:
8
15
  autorequire:
9
- bindir: bin
10
- cert_chain: []
11
-
12
- date: 2008-04-24 00:00:00 +02:00
13
16
  default_executable:
14
- dependencies: []
15
-
16
- description:
17
- email: maelclerambault@yahoo.fr
18
- executables: []
19
-
20
- extensions: []
21
-
22
- extra_rdoc_files: []
23
-
17
+ bindir: bin
18
+ has_rdoc: false
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Mael Clerambault
24
31
  files:
25
32
  - lib/flickraw.rb
26
33
  - flickraw_rdoc.rb
@@ -28,36 +35,30 @@ files:
28
35
  - README
29
36
  - TODO
30
37
  - rakefile
31
- - examples/flickr_KDE.rb
38
+ - examples/interestingness.rb
32
39
  - examples/upload.rb
40
+ - examples/flickr_KDE.rb
33
41
  - examples/auth.rb
34
- - examples/interestingness.rb
35
42
  - test/test.rb
36
- has_rdoc: false
37
- homepage: http://flickraw.rubyforge.org
38
- post_install_message:
43
+ test_files:
44
+ - test/test.rb
39
45
  rdoc_options: []
40
46
 
41
- require_paths:
42
- - lib
43
- required_ruby_version: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: "0"
48
- version:
49
- required_rubygems_version: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: "0"
54
- version:
47
+ extra_rdoc_files: []
48
+
49
+ executables: []
50
+
51
+ extensions: []
52
+
55
53
  requirements: []
56
54
 
57
- rubyforge_project: flickraw
58
- rubygems_version: 1.0.1
59
- signing_key:
60
- specification_version: 2
61
- summary: Flickr library with a syntax close to the syntax described on http://www.flickr.com/services/api
62
- test_files:
63
- - test/test.rb
55
+ dependencies:
56
+ - !ruby/object:Gem::Dependency
57
+ name: json
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Version::Requirement
60
+ requirements:
61
+ - - ">"
62
+ - !ruby/object:Gem::Version
63
+ version: 0.0.0
64
+ version: