smugmugapi 0.9.0 → 0.9.2
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/History.txt +11 -1
 - data/lib/smugmug/core.rb +28 -5
 - data/lib/smugmug/xmlstruct.rb +3 -9
 - data/lib/smugmugapi.rb +1 -1
 - data.tar.gz.sig +5 -2
 - metadata +2 -2
 - metadata.gz.sig +0 -0
 
    
        data/History.txt
    CHANGED
    
    | 
         @@ -1,4 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            == 0.9.2 / 2007-12-04
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Fixed "automatic" URL endpoint for 1.2.1 api
         
     | 
| 
      
 4 
     | 
    
         
            +
            * Added gzip support on http transport
         
     | 
| 
      
 5 
     | 
    
         
            +
            * Added sftp backup utility
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            == 0.9.1 / 2007-12-03
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            * Fixed a bug in xmlstruct processing
         
     | 
| 
      
 10 
     | 
    
         
            +
              of "special" ids (ending in URL, etc)
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       1 
12 
     | 
    
         
             
            == 0.9.0 / 2007-12-03
         
     | 
| 
       2 
13 
     | 
    
         | 
| 
       3 
14 
     | 
    
         
             
            * Initial public release
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
    
        data/lib/smugmug/core.rb
    CHANGED
    
    | 
         @@ -1,6 +1,9 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "rexml/document"
         
     | 
| 
       2 
2 
     | 
    
         
             
            require "uri"
         
     | 
| 
       3 
3 
     | 
    
         
             
            require "net/https"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "zlib"
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            require "pp" if $DEBUG
         
     | 
| 
       4 
7 
     | 
    
         | 
| 
       5 
8 
     | 
    
         
             
            class SmugMugAPI
         
     | 
| 
       6 
9 
     | 
    
         
             
              class << self
         
     | 
| 
         @@ -21,7 +24,13 @@ class SmugMugAPI 
     | 
|
| 
       21 
24 
     | 
    
         
             
                end
         
     | 
| 
       22 
25 
     | 
    
         | 
| 
       23 
26 
     | 
    
         
             
                def api_path
         
     | 
| 
       24 
     | 
    
         
            -
                  @url 
     | 
| 
      
 27 
     | 
    
         
            +
                  if @url
         
     | 
| 
      
 28 
     | 
    
         
            +
                    @url
         
     | 
| 
      
 29 
     | 
    
         
            +
                  elsif api_version == '1.2.1'
         
     | 
| 
      
 30 
     | 
    
         
            +
                    "api.smugmug.com/services/api/rest/#{api_version}/" 
         
     | 
| 
      
 31 
     | 
    
         
            +
                  else 
         
     | 
| 
      
 32 
     | 
    
         
            +
                    "api.smugmug.com/hack/rest/#{api_version}/"
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
       25 
34 
     | 
    
         
             
                end
         
     | 
| 
       26 
35 
     | 
    
         | 
| 
       27 
36 
     | 
    
         
             
                def agent
         
     | 
| 
         @@ -44,7 +53,10 @@ class SmugMugAPI 
     | 
|
| 
       44 
53 
     | 
    
         
             
                  url = transport + "://" + api_path + "?" +
         
     | 
| 
       45 
54 
     | 
    
         
             
                    params.map { |k,v| URI.encode("#{SmugMugAPI.camelize(k)}=#{v}") }.join("&")
         
     | 
| 
       46 
55 
     | 
    
         
             
                  uri = URI.parse(url)
         
     | 
| 
       47 
     | 
    
         
            -
                  headers['User-Agent']  
     | 
| 
      
 56 
     | 
    
         
            +
                  headers['User-Agent'] ||= agent
         
     | 
| 
      
 57 
     | 
    
         
            +
                  headers['Accept-Encoding'] ||= 'gzip, deflate'
         
     | 
| 
      
 58 
     | 
    
         
            +
                  
         
     | 
| 
      
 59 
     | 
    
         
            +
                  pp [:smugapi, params, headers, uri] if $DEBUG
         
     | 
| 
       48 
60 
     | 
    
         | 
| 
       49 
61 
     | 
    
         
             
                  http = Net::HTTP.new(uri.host, uri.port)
         
     | 
| 
       50 
62 
     | 
    
         
             
                  if transport == 'https'
         
     | 
| 
         @@ -60,9 +72,20 @@ class SmugMugAPI 
     | 
|
| 
       60 
72 
     | 
    
         
             
                def parse_response(response)
         
     | 
| 
       61 
73 
     | 
    
         
             
                  puts "HTTP #{response.code}: #{response.message}" if $DEBUG
         
     | 
| 
       62 
74 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
                  raise SmugMugAPI::Error.new("HTTP #{response.code} 
     | 
| 
      
 75 
     | 
    
         
            +
                  raise SmugMugAPI::Error.new("HTTP #{response.code}") unless response.code.to_i == 200
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                  body = case response['content-encoding']
         
     | 
| 
      
 78 
     | 
    
         
            +
                    when 'gzip'
         
     | 
| 
      
 79 
     | 
    
         
            +
                      Zlib::GzipReader.new(StringIO.new(response.body)).read 
         
     | 
| 
      
 80 
     | 
    
         
            +
                    when 'deflate'
         
     | 
| 
      
 81 
     | 
    
         
            +
                      Zlib::Inflate.inflate(response.body)
         
     | 
| 
      
 82 
     | 
    
         
            +
                    when nil
         
     | 
| 
      
 83 
     | 
    
         
            +
                      response.body
         
     | 
| 
      
 84 
     | 
    
         
            +
                    else
         
     | 
| 
      
 85 
     | 
    
         
            +
                      raise "Unknown encoding #{response['content-encoding']}"
         
     | 
| 
      
 86 
     | 
    
         
            +
                  end
         
     | 
| 
       64 
87 
     | 
    
         | 
| 
       65 
     | 
    
         
            -
                  doc = REXML::Document.new( 
     | 
| 
      
 88 
     | 
    
         
            +
                  doc = REXML::Document.new(body)
         
     | 
| 
       66 
89 
     | 
    
         
             
                  if doc.root.attributes['stat'] != 'ok'
         
     | 
| 
       67 
90 
     | 
    
         
             
                    err = doc.root.elements['/rsp/err']
         
     | 
| 
       68 
91 
     | 
    
         
             
                    code = err.attributes['code']
         
     | 
| 
         @@ -81,7 +104,7 @@ class SmugMugAPI 
     | 
|
| 
       81 
104 
     | 
    
         
             
                  call(params, 'http')
         
     | 
| 
       82 
105 
     | 
    
         
             
                end
         
     | 
| 
       83 
106 
     | 
    
         | 
| 
       84 
     | 
    
         
            -
                def call(params={}, transport = "http")
         
     | 
| 
      
 107 
     | 
    
         
            +
                def call(params = {}, transport = "http")
         
     | 
| 
       85 
108 
     | 
    
         
             
                  parse_response(get(params, {}, transport))
         
     | 
| 
       86 
109 
     | 
    
         
             
                end
         
     | 
| 
       87 
110 
     | 
    
         
             
              end
         
     | 
    
        data/lib/smugmug/xmlstruct.rb
    CHANGED
    
    | 
         @@ -22,10 +22,7 @@ class SmugMugAPI 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  when Fixnum
         
     | 
| 
       23 
23 
     | 
    
         
             
                    key
         
     | 
| 
       24 
24 
     | 
    
         
             
                  else
         
     | 
| 
       25 
     | 
    
         
            -
                     
     | 
| 
       26 
     | 
    
         
            -
                    key = key.gsub(/ID$/i, "ID")
         
     | 
| 
       27 
     | 
    
         
            -
                    key = key.gsub(/EXIF/i, "EXIF")
         
     | 
| 
       28 
     | 
    
         
            -
                    key.gsub(/X(.?)Large/i) { "X#{$1}Large" }
         
     | 
| 
      
 25 
     | 
    
         
            +
                    SmugMugAPI.camelize(key)
         
     | 
| 
       29 
26 
     | 
    
         
             
                  end
         
     | 
| 
       30 
27 
     | 
    
         
             
                end
         
     | 
| 
       31 
28 
     | 
    
         | 
| 
         @@ -37,6 +34,7 @@ class SmugMugAPI 
     | 
|
| 
       37 
34 
     | 
    
         
             
                    result
         
     | 
| 
       38 
35 
     | 
    
         
             
                  else
         
     | 
| 
       39 
36 
     | 
    
         
             
                    # key = XMLStruct.attrib_key(attrib)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    # puts "Searching for #{key}"
         
     | 
| 
       40 
38 
     | 
    
         
             
                    @xml.attributes[XMLStruct.attrib_key(attrib)]
         
     | 
| 
       41 
39 
     | 
    
         
             
                  end
         
     | 
| 
       42 
40 
     | 
    
         
             
                end
         
     | 
| 
         @@ -68,7 +66,7 @@ class SmugMugAPI 
     | 
|
| 
       68 
66 
     | 
    
         
             
                end
         
     | 
| 
       69 
67 
     | 
    
         | 
| 
       70 
68 
     | 
    
         
             
                def method_missing(*args)
         
     | 
| 
       71 
     | 
    
         
            -
                  method =  
     | 
| 
      
 69 
     | 
    
         
            +
                  method = SmugMugAPI.camelize(args.shift)
         
     | 
| 
       72 
70 
     | 
    
         
             
                  path = "#{method}"
         
     | 
| 
       73 
71 
     | 
    
         
             
                  if node = @xml.elements[path]
         
     | 
| 
       74 
72 
     | 
    
         
             
                    XMLStruct.new(node)
         
     | 
| 
         @@ -77,10 +75,6 @@ class SmugMugAPI 
     | 
|
| 
       77 
75 
     | 
    
         
             
                  end
         
     | 
| 
       78 
76 
     | 
    
         
             
                end
         
     | 
| 
       79 
77 
     | 
    
         | 
| 
       80 
     | 
    
         
            -
                def self.camalize(str)
         
     | 
| 
       81 
     | 
    
         
            -
                  str.to_s.gsub(/(^|_)(.)/) { $2.upcase }
         
     | 
| 
       82 
     | 
    
         
            -
                end
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
78 
     | 
    
         
             
                def to_s
         
     | 
| 
       85 
79 
     | 
    
         
             
                  @xml.to_s
         
     | 
| 
       86 
80 
     | 
    
         
             
                end
         
     | 
    
        data/lib/smugmugapi.rb
    CHANGED
    
    
    
        data.tar.gz.sig
    CHANGED
    
    | 
         @@ -1,2 +1,5 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            ���3�s�$	
         
     | 
| 
      
 2 
     | 
    
         
            +
            *P
         
     | 
| 
      
 3 
     | 
    
         
            +
            9�{!�4��\
         
     | 
| 
      
 4 
     | 
    
         
            +
            (�L*�m��N�xl���eX3�5#g�R��8����������"��W���]��o�ި5��%�F'P�O벋z�6^X��:���w�U��gT���ɦ!�R���'@�^#Fb|.
         
     | 
| 
      
 5 
     | 
    
         
            +
            ��"���d��;�,�ܡ�*ޝ�*dx�S��Z/L!���ʬ��R�TY����^��%�M/c�Ż�P��P!�C*�t���/V�<�O{y
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ rubygems_version: 0.9.4 
     | 
|
| 
       3 
3 
     | 
    
         
             
            specification_version: 1
         
     | 
| 
       4 
4 
     | 
    
         
             
            name: smugmugapi
         
     | 
| 
       5 
5 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       6 
     | 
    
         
            -
              version: 0.9. 
     | 
| 
       7 
     | 
    
         
            -
            date: 2007-12- 
     | 
| 
      
 6 
     | 
    
         
            +
              version: 0.9.2
         
     | 
| 
      
 7 
     | 
    
         
            +
            date: 2007-12-05 00:00:00 -05:00
         
     | 
| 
       8 
8 
     | 
    
         
             
            summary: A very light wrapper around the SmugMug REST API
         
     | 
| 
       9 
9 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            - lib
         
     | 
    
        metadata.gz.sig
    CHANGED
    
    | 
         Binary file 
     |