Please disable Adblockers and enable JavaScript for domain CEWebS.cs.univie.ac.at! We have NO ADS, but they may interfere with some of our course material.

Name: examples/flickr/Exif/exif.test 
1:
#!/usr/bin/ruby
2:
require 'digest/md5'
3:
require 'socket'
4:
require '../../../lib/ruby/riddl/client'
5:
require '../Helpers/flickr.rb'
6:
require 'pp'
7:
 
8:
t = Thread.new do
9:
  puts `rackup exif.ru`
10:
end  
11:
 
12:
up = false
13:
until up
14:
  begin
15:
    TCPSocket.new('localhost', 9292)
16:
    up = true
17:
  rescue => e
18:
    sleep 0.1
19:
  end  
20:
end
21:
 
22:
exif = Riddl::Client.new("http://localhost:9292/")
23:
 
24:
begin
25:
  fh = FlickrHelper.new("../Flickr/")
26:
  params = [
27:
    Riddl::Parameter::Simple.new("api_key", fh.api_key),
28:
    Riddl::Parameter::Simple.new("auth_token", fh.auth_token),
29:
    Riddl::Parameter::Complex.new("photo","image/jpeg",File.open('riddl.jpg','r'),'riddl.jpg'),
30:
    Riddl::Parameter::Simple.new("author", "Jürgen Mangler"),
31:
    Riddl::Parameter::Simple.new("title", "RIDDL Logo"),
32:
    Riddl::Parameter::Simple.new("description", "The official RIDDL logo, the first thing created for this project."),
33:
    Riddl::Parameter::Simple.new("tags", "RIDDL, REST, Composition, Evolution"),
34:
    Riddl::Parameter::Simple.new("longitude", 48.213736),
35:
    Riddl::Parameter::Simple.new("latitude", 16.357141),
36:
    Riddl::Parameter::Simple.new("is_public", 1),
37:
  ]
38:
  params <<  Riddl::Parameter::Simple.new("api_sig", fh.sign(params))
39:
 
40:
  status, res = exif.post params
41:
 
42:
  puts status
43:
  pp res
44:
  if status == 200
45:
    File.open('riddl.new.jpg','w') do |f|
46:
      f.write res.detect{ |e| e.name == 'photo' }.value.read
47:
    end  
48:
  end  
49:
 
50:
ensure
51:
  `pkill rackup`
52:
  t.join
53:
end