rubydora 0.5.3 → 0.5.4
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.textile +8 -0
 - data/VERSION +1 -1
 - data/lib/rubydora/rest_api_client.rb +57 -46
 - data/lib/rubydora.rb +6 -0
 - metadata +31 -31
 
    
        data/History.textile
    CHANGED
    
    | 
         @@ -1,3 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            h3. 0.5.4
         
     | 
| 
      
 2 
     | 
    
         
            +
            * Query Benchmarking 
         
     | 
| 
      
 3 
     | 
    
         
            +
            * Custom exception classes
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            h3. 0.5.3
         
     | 
| 
      
 6 
     | 
    
         
            +
            * Issue 11, cast versionable strings to boolean 
         
     | 
| 
      
 7 
     | 
    
         
            +
            * Allow versionable to be set to false 
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       1 
9 
     | 
    
         
             
            h3. 0.5.2
         
     | 
| 
       2 
10 
     | 
    
         
             
            * Force checksum query when you call dsChecksumValid, unless it's already in the profile.
         
     | 
| 
       3 
11 
     | 
    
         | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            0.5. 
     | 
| 
      
 1 
     | 
    
         
            +
            0.5.4
         
     | 
| 
         @@ -6,6 +6,7 @@ module Rubydora 
     | 
|
| 
       6 
6 
     | 
    
         
             
              module RestApiClient
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
                include Rubydora::FedoraUrlHelpers
         
     | 
| 
      
 9 
     | 
    
         
            +
                include ActiveSupport::Benchmarkable
         
     | 
| 
       9 
10 
     | 
    
         | 
| 
       10 
11 
     | 
    
         
             
                VALID_CLIENT_OPTIONS = [:user, :password, :timeout, :open_timeout, :ssl_client_cert, :ssl_client_key]
         
     | 
| 
       11 
12 
     | 
    
         
             
                # Create an authorized HTTP client for the Fedora REST API
         
     | 
| 
         @@ -38,10 +39,10 @@ module Rubydora 
     | 
|
| 
       38 
39 
     | 
    
         
             
                  options[:format] ||= 'xml'
         
     | 
| 
       39 
40 
     | 
    
         
             
                  begin
         
     | 
| 
       40 
41 
     | 
    
         
             
                    return client[next_pid_url(options)].post nil
         
     | 
| 
       41 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 42 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       42 
43 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       43 
44 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       44 
     | 
    
         
            -
                    raise "Error getting nextPID. See logger for details"
         
     | 
| 
      
 45 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error getting nextPID. See logger for details"
         
     | 
| 
       45 
46 
     | 
    
         
             
                  end
         
     | 
| 
       46 
47 
     | 
    
         
             
                end
         
     | 
| 
       47 
48 
     | 
    
         | 
| 
         @@ -49,7 +50,7 @@ module Rubydora 
     | 
|
| 
       49 
50 
     | 
    
         
             
                # @param [Hash] options
         
     | 
| 
       50 
51 
     | 
    
         
             
                # @return [String]
         
     | 
| 
       51 
52 
     | 
    
         
             
                def find_objects options = {}, &block_response
         
     | 
| 
       52 
     | 
    
         
            -
                  raise "" if options[:terms] and options[:query]
         
     | 
| 
      
 53 
     | 
    
         
            +
                  raise ArgumentError,"Cannot have both :terms and :query parameters" if options[:terms] and options[:query]
         
     | 
| 
       53 
54 
     | 
    
         
             
                  options[:resultFormat] ||= 'xml'
         
     | 
| 
       54 
55 
     | 
    
         | 
| 
       55 
56 
     | 
    
         
             
                  begin
         
     | 
| 
         @@ -58,10 +59,10 @@ module Rubydora 
     | 
|
| 
       58 
59 
     | 
    
         
             
                      resource.options[:block_response] = block_response
         
     | 
| 
       59 
60 
     | 
    
         
             
                    end 
         
     | 
| 
       60 
61 
     | 
    
         
             
                    return resource.get
         
     | 
| 
       61 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 62 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       62 
63 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       63 
64 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       64 
     | 
    
         
            -
                    raise "Error finding objects. See logger for details"
         
     | 
| 
      
 65 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error finding objects. See logger for details"
         
     | 
| 
       65 
66 
     | 
    
         
             
                  end
         
     | 
| 
       66 
67 
     | 
    
         
             
                end
         
     | 
| 
       67 
68 
     | 
    
         | 
| 
         @@ -76,10 +77,10 @@ module Rubydora 
     | 
|
| 
       76 
77 
     | 
    
         
             
                    return client[object_url(pid, options)].get
         
     | 
| 
       77 
78 
     | 
    
         
             
                  rescue RestClient::ResourceNotFound => e
         
     | 
| 
       78 
79 
     | 
    
         
             
                    raise e
         
     | 
| 
       79 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 80 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       80 
81 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       81 
82 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       82 
     | 
    
         
            -
                    raise "Error getting object #{pid}. See logger for details"
         
     | 
| 
      
 83 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error getting object #{pid}. See logger for details"
         
     | 
| 
       83 
84 
     | 
    
         
             
                  end
         
     | 
| 
       84 
85 
     | 
    
         
             
                end
         
     | 
| 
       85 
86 
     | 
    
         | 
| 
         @@ -92,10 +93,13 @@ module Rubydora 
     | 
|
| 
       92 
93 
     | 
    
         
             
                  file = options.delete(:file)
         
     | 
| 
       93 
94 
     | 
    
         
             
                  begin
         
     | 
| 
       94 
95 
     | 
    
         
             
                    return client[object_url(pid, options)].post file, :content_type => 'text/xml'
         
     | 
| 
       95 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 96 
     | 
    
         
            +
                  rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH => e
         
     | 
| 
      
 97 
     | 
    
         
            +
                    logger.error "Unable to connect to Fedora at #{@client.url}"
         
     | 
| 
      
 98 
     | 
    
         
            +
                    raise e
         
     | 
| 
      
 99 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       96 
100 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       97 
101 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       98 
     | 
    
         
            -
                    raise "Error ingesting object #{pid}. See logger for details"
         
     | 
| 
      
 102 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error ingesting object #{pid}. See logger for details"
         
     | 
| 
       99 
103 
     | 
    
         
             
                  end
         
     | 
| 
       100 
104 
     | 
    
         
             
                end
         
     | 
| 
       101 
105 
     | 
    
         | 
| 
         @@ -107,9 +111,9 @@ module Rubydora 
     | 
|
| 
       107 
111 
     | 
    
         
             
                  pid = options.delete(:pid)
         
     | 
| 
       108 
112 
     | 
    
         
             
                  begin
         
     | 
| 
       109 
113 
     | 
    
         
             
                    return client[export_object_url(pid, options)].get
         
     | 
| 
       110 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 114 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       111 
115 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       112 
     | 
    
         
            -
                    raise "Error exporting object #{pid}. See logger for details"
         
     | 
| 
      
 116 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error exporting object #{pid}. See logger for details"
         
     | 
| 
       113 
117 
     | 
    
         
             
                  end
         
     | 
| 
       114 
118 
     | 
    
         
             
                end
         
     | 
| 
       115 
119 
     | 
    
         | 
| 
         @@ -121,10 +125,10 @@ module Rubydora 
     | 
|
| 
       121 
125 
     | 
    
         
             
                  pid = options.delete(:pid)
         
     | 
| 
       122 
126 
     | 
    
         
             
                  begin
         
     | 
| 
       123 
127 
     | 
    
         
             
                    return client[object_url(pid, options)].put nil
         
     | 
| 
       124 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 128 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       125 
129 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       126 
130 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       127 
     | 
    
         
            -
                    raise "Error modifying object #{pid}. See logger for details"
         
     | 
| 
      
 131 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error modifying object #{pid}. See logger for details"
         
     | 
| 
       128 
132 
     | 
    
         
             
                  end
         
     | 
| 
       129 
133 
     | 
    
         
             
                end
         
     | 
| 
       130 
134 
     | 
    
         | 
| 
         @@ -138,10 +142,10 @@ module Rubydora 
     | 
|
| 
       138 
142 
     | 
    
         
             
                    return client[object_url(pid, options)].delete
         
     | 
| 
       139 
143 
     | 
    
         
             
                  rescue RestClient::ResourceNotFound => e
         
     | 
| 
       140 
144 
     | 
    
         
             
                    raise e
         
     | 
| 
       141 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 145 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       142 
146 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       143 
147 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       144 
     | 
    
         
            -
                    raise "Error purging object #{pid}. See logger for details"
         
     | 
| 
      
 148 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error purging object #{pid}. See logger for details"
         
     | 
| 
       145 
149 
     | 
    
         
             
                  end
         
     | 
| 
       146 
150 
     | 
    
         
             
                end
         
     | 
| 
       147 
151 
     | 
    
         | 
| 
         @@ -152,13 +156,13 @@ module Rubydora 
     | 
|
| 
       152 
156 
     | 
    
         
             
                def object_versions options = {}
         
     | 
| 
       153 
157 
     | 
    
         
             
                  pid = options.delete(:pid)
         
     | 
| 
       154 
158 
     | 
    
         
             
                  options[:format] ||= 'xml'
         
     | 
| 
       155 
     | 
    
         
            -
                  raise "" unless pid
         
     | 
| 
      
 159 
     | 
    
         
            +
                  raise ArgumentError, "Must have a pid" unless pid
         
     | 
| 
       156 
160 
     | 
    
         
             
                  begin
         
     | 
| 
       157 
161 
     | 
    
         
             
                    return client[object_versions_url(pid, options)].get
         
     | 
| 
       158 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 162 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       159 
163 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       160 
164 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       161 
     | 
    
         
            -
                    raise "Error getting versions for object #{pid}. See logger for details"
         
     | 
| 
      
 165 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error getting versions for object #{pid}. See logger for details"
         
     | 
| 
       162 
166 
     | 
    
         
             
                  end
         
     | 
| 
       163 
167 
     | 
    
         
             
                end
         
     | 
| 
       164 
168 
     | 
    
         | 
| 
         @@ -168,14 +172,14 @@ module Rubydora 
     | 
|
| 
       168 
172 
     | 
    
         
             
                # @return [String]
         
     | 
| 
       169 
173 
     | 
    
         
             
                def object_xml options = {}
         
     | 
| 
       170 
174 
     | 
    
         
             
                  pid = options.delete(:pid)
         
     | 
| 
       171 
     | 
    
         
            -
                  raise "" unless pid
         
     | 
| 
      
 175 
     | 
    
         
            +
                  raise ArgumentError, "Missing required parameter :pid" unless pid
         
     | 
| 
       172 
176 
     | 
    
         
             
                  options[:format] ||= 'xml'
         
     | 
| 
       173 
177 
     | 
    
         
             
                  begin
         
     | 
| 
       174 
178 
     | 
    
         
             
                    return client[object_xml_url(pid, options)].get
         
     | 
| 
       175 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 179 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       176 
180 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       177 
181 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       178 
     | 
    
         
            -
                    raise "Error getting objectXML for object #{pid}. See logger for details"
         
     | 
| 
      
 182 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error getting objectXML for object #{pid}. See logger for details"
         
     | 
| 
       179 
183 
     | 
    
         
             
                  end
         
     | 
| 
       180 
184 
     | 
    
         
             
                end
         
     | 
| 
       181 
185 
     | 
    
         | 
| 
         @@ -191,13 +195,21 @@ module Rubydora 
     | 
|
| 
       191 
195 
     | 
    
         
             
                  dsid = options.delete(:dsid)
         
     | 
| 
       192 
196 
     | 
    
         
             
                  options[:format] ||= 'xml'
         
     | 
| 
       193 
197 
     | 
    
         
             
                  begin
         
     | 
| 
       194 
     | 
    
         
            -
                     
     | 
| 
      
 198 
     | 
    
         
            +
                    val = nil
         
     | 
| 
      
 199 
     | 
    
         
            +
                    message = dsid.nil? ? "Loaded datastream list for #{pid}" : "Loaded datastream #{pid}/#{dsid}"
         
     | 
| 
      
 200 
     | 
    
         
            +
                    benchmark message, :level=>:debug do
         
     | 
| 
      
 201 
     | 
    
         
            +
                      val = client[datastream_url(pid, dsid, options)].get
         
     | 
| 
      
 202 
     | 
    
         
            +
                    end
         
     | 
| 
      
 203 
     | 
    
         
            +
                    return val
         
     | 
| 
      
 204 
     | 
    
         
            +
                  rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH => e
         
     | 
| 
      
 205 
     | 
    
         
            +
                    logger.error "Unable to connect to Fedora at #{@client.url}"
         
     | 
| 
      
 206 
     | 
    
         
            +
                    raise e
         
     | 
| 
       195 
207 
     | 
    
         
             
                  rescue RestClient::ResourceNotFound => e
         
     | 
| 
       196 
208 
     | 
    
         
             
                    raise e
         
     | 
| 
       197 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 209 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       198 
210 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       199 
211 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       200 
     | 
    
         
            -
                    raise "Error getting datastream '#{dsid}' for object #{pid}. See logger for details"
         
     | 
| 
      
 212 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error getting datastream '#{dsid}' for object #{pid}. See logger for details"
         
     | 
| 
       201 
213 
     | 
    
         
             
                  end
         
     | 
| 
       202 
214 
     | 
    
         
             
                end
         
     | 
| 
       203 
215 
     | 
    
         | 
| 
         @@ -213,10 +225,10 @@ module Rubydora 
     | 
|
| 
       213 
225 
     | 
    
         
             
                  dsid = options.delete(:dsid)
         
     | 
| 
       214 
226 
     | 
    
         
             
                  begin
         
     | 
| 
       215 
227 
     | 
    
         
             
                    return client[datastream_url(pid, dsid, options)].put nil
         
     | 
| 
       216 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 228 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       217 
229 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       218 
230 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       219 
     | 
    
         
            -
                    raise "Error setting datastream options on #{dsid} for object #{pid}. See logger for details"
         
     | 
| 
      
 231 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error setting datastream options on #{dsid} for object #{pid}. See logger for details"
         
     | 
| 
       220 
232 
     | 
    
         
             
                  end
         
     | 
| 
       221 
233 
     | 
    
         
             
                end
         
     | 
| 
       222 
234 
     | 
    
         | 
| 
         @@ -235,11 +247,10 @@ module Rubydora 
     | 
|
| 
       235 
247 
     | 
    
         
             
                  rescue RestClient::ResourceNotFound => e
         
     | 
| 
       236 
248 
     | 
    
         
             
                    #404 Resource Not Found: No datastream history could be found. There is no datastream history for the digital object "changeme:1" with datastream ID of "descMetadata
         
     | 
| 
       237 
249 
     | 
    
         
             
                    return nil
         
     | 
| 
       238 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
       239 
     | 
    
         
            -
            raise e
         
     | 
| 
      
 250 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       240 
251 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       241 
252 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       242 
     | 
    
         
            -
                    raise "Error getting versions for datastream #{dsid} for object #{pid}. See logger for details"
         
     | 
| 
      
 253 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error getting versions for datastream #{dsid} for object #{pid}. See logger for details"
         
     | 
| 
       243 
254 
     | 
    
         
             
                  end
         
     | 
| 
       244 
255 
     | 
    
         
             
                end
         
     | 
| 
       245 
256 
     | 
    
         | 
| 
         @@ -264,10 +275,10 @@ raise e 
     | 
|
| 
       264 
275 
     | 
    
         
             
                    return resource.send(method)
         
     | 
| 
       265 
276 
     | 
    
         
             
                  rescue RestClient::ResourceNotFound => e
         
     | 
| 
       266 
277 
     | 
    
         
             
                    raise e
         
     | 
| 
       267 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 278 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       268 
279 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       269 
280 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       270 
     | 
    
         
            -
                    raise "Error getting dissemination for datastream #{dsid} for object #{pid}. See logger for details"
         
     | 
| 
      
 281 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error getting dissemination for datastream #{dsid} for object #{pid}. See logger for details"
         
     | 
| 
       271 
282 
     | 
    
         
             
                  end
         
     | 
| 
       272 
283 
     | 
    
         
             
                end
         
     | 
| 
       273 
284 
     | 
    
         | 
| 
         @@ -283,10 +294,10 @@ raise e 
     | 
|
| 
       283 
294 
     | 
    
         
             
                  content_type = options.delete(:content_type) || options[:mimeType] || (MIME::Types.type_for(file.path).first if file.respond_to? :path) || 'application/octet-stream'
         
     | 
| 
       284 
295 
     | 
    
         
             
                  begin
         
     | 
| 
       285 
296 
     | 
    
         
             
                    return client[datastream_url(pid, dsid, options)].post file, :content_type => content_type.to_s, :multipart => true
         
     | 
| 
       286 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 297 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       287 
298 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       288 
299 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       289 
     | 
    
         
            -
                    raise "Error adding datastream #{dsid} for object #{pid}. See logger for details"
         
     | 
| 
      
 300 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error adding datastream #{dsid} for object #{pid}. See logger for details"
         
     | 
| 
       290 
301 
     | 
    
         
             
                  end
         
     | 
| 
       291 
302 
     | 
    
         
             
                end
         
     | 
| 
       292 
303 
     | 
    
         | 
| 
         @@ -309,10 +320,10 @@ raise e 
     | 
|
| 
       309 
320 
     | 
    
         | 
| 
       310 
321 
     | 
    
         
             
                  begin
         
     | 
| 
       311 
322 
     | 
    
         
             
                    return client[datastream_url(pid, dsid, options)].put(file, rest_client_options)
         
     | 
| 
       312 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 323 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       313 
324 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       314 
325 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       315 
     | 
    
         
            -
                    raise "Error modifying datastream #{dsid} for #{pid}. See logger for details"
         
     | 
| 
      
 326 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error modifying datastream #{dsid} for #{pid}. See logger for details"
         
     | 
| 
       316 
327 
     | 
    
         
             
                  end
         
     | 
| 
       317 
328 
     | 
    
         
             
                end
         
     | 
| 
       318 
329 
     | 
    
         | 
| 
         @@ -326,10 +337,10 @@ raise e 
     | 
|
| 
       326 
337 
     | 
    
         
             
                  dsid = options.delete(:dsid)
         
     | 
| 
       327 
338 
     | 
    
         
             
                  begin
         
     | 
| 
       328 
339 
     | 
    
         
             
                    client[datastream_url(pid, dsid, options)].delete
         
     | 
| 
       329 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 340 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       330 
341 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       331 
342 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       332 
     | 
    
         
            -
                    raise "Error purging datastream #{dsid} for #{pid}. See logger for details"
         
     | 
| 
      
 343 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error purging datastream #{dsid} for #{pid}. See logger for details"
         
     | 
| 
       333 
344 
     | 
    
         
             
                  end
         
     | 
| 
       334 
345 
     | 
    
         
             
                end
         
     | 
| 
       335 
346 
     | 
    
         | 
| 
         @@ -339,14 +350,14 @@ raise e 
     | 
|
| 
       339 
350 
     | 
    
         
             
                # @return [String]
         
     | 
| 
       340 
351 
     | 
    
         
             
                def relationships options = {}
         
     | 
| 
       341 
352 
     | 
    
         
             
                  pid = options.delete(:pid) || options[:subject]
         
     | 
| 
       342 
     | 
    
         
            -
                  raise "" unless pid
         
     | 
| 
      
 353 
     | 
    
         
            +
                  raise ArgumentError, "Missing required parameter :pid" unless pid
         
     | 
| 
       343 
354 
     | 
    
         
             
                  options[:format] ||= 'xml'
         
     | 
| 
       344 
355 
     | 
    
         
             
                  begin
         
     | 
| 
       345 
356 
     | 
    
         
             
                    return client[object_relationship_url(pid, options)].get
         
     | 
| 
       346 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 357 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       347 
358 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       348 
359 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       349 
     | 
    
         
            -
                    raise "Error getting relationships for #{pid}. See logger for details"
         
     | 
| 
      
 360 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error getting relationships for #{pid}. See logger for details"
         
     | 
| 
       350 
361 
     | 
    
         
             
                  end
         
     | 
| 
       351 
362 
     | 
    
         
             
                end
         
     | 
| 
       352 
363 
     | 
    
         | 
| 
         @@ -358,10 +369,10 @@ raise e 
     | 
|
| 
       358 
369 
     | 
    
         
             
                  pid = options.delete(:pid) || options[:subject]
         
     | 
| 
       359 
370 
     | 
    
         
             
                  begin
         
     | 
| 
       360 
371 
     | 
    
         
             
                    return client[new_object_relationship_url(pid, options)].post nil
         
     | 
| 
       361 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 372 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       362 
373 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       363 
374 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       364 
     | 
    
         
            -
                    raise "Error adding relationship for #{pid}. See logger for details"
         
     | 
| 
      
 375 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error adding relationship for #{pid}. See logger for details"
         
     | 
| 
       365 
376 
     | 
    
         
             
                  end
         
     | 
| 
       366 
377 
     | 
    
         
             
                end
         
     | 
| 
       367 
378 
     | 
    
         | 
| 
         @@ -373,10 +384,10 @@ raise e 
     | 
|
| 
       373 
384 
     | 
    
         
             
                  pid = options.delete(:pid) || options[:subject]
         
     | 
| 
       374 
385 
     | 
    
         
             
                  begin
         
     | 
| 
       375 
386 
     | 
    
         
             
                    return client[object_relationship_url(pid, options)].delete
         
     | 
| 
       376 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 387 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       377 
388 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       378 
389 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       379 
     | 
    
         
            -
                    raise "Error purging relationships for #{pid}. See logger for details"
         
     | 
| 
      
 390 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error purging relationships for #{pid}. See logger for details"
         
     | 
| 
       380 
391 
     | 
    
         
             
                  end
         
     | 
| 
       381 
392 
     | 
    
         
             
                end
         
     | 
| 
       382 
393 
     | 
    
         | 
| 
         @@ -397,10 +408,10 @@ raise e 
     | 
|
| 
       397 
408 
     | 
    
         
             
                      resource.options[:block_response] = block_response
         
     | 
| 
       398 
409 
     | 
    
         
             
                    end
         
     | 
| 
       399 
410 
     | 
    
         
             
                    return resource.get
         
     | 
| 
       400 
     | 
    
         
            -
                  rescue => e
         
     | 
| 
      
 411 
     | 
    
         
            +
                  rescue RestClient::InternalServerError => e
         
     | 
| 
       401 
412 
     | 
    
         
             
                    logger.error e.response
         
     | 
| 
       402 
413 
     | 
    
         
             
                    logger.flush if logger.respond_to? :flush
         
     | 
| 
       403 
     | 
    
         
            -
                    raise "Error getting dissemination for #{pid}. See logger for details"
         
     | 
| 
      
 414 
     | 
    
         
            +
                    raise FedoraInvalidRequest, "Error getting dissemination for #{pid}. See logger for details"
         
     | 
| 
       404 
415 
     | 
    
         
             
                  end
         
     | 
| 
       405 
416 
     | 
    
         
             
                end
         
     | 
| 
       406 
417 
     | 
    
         
             
              end
         
     | 
    
        data/lib/rubydora.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rubydora
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.5. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.5.4
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,11 +9,11 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-03-03 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: fastercsv
         
     | 
| 
       16 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &70336833980200 !ruby/object:Gem::Requirement
         
     | 
| 
       17 
17 
     | 
    
         
             
                none: false
         
     | 
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
19 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -21,10 +21,10 @@ dependencies: 
     | 
|
| 
       21 
21 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *70336833980200
         
     | 
| 
       25 
25 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       26 
26 
     | 
    
         
             
              name: rest-client
         
     | 
| 
       27 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &70336833973900 !ruby/object:Gem::Requirement
         
     | 
| 
       28 
28 
     | 
    
         
             
                none: false
         
     | 
| 
       29 
29 
     | 
    
         
             
                requirements:
         
     | 
| 
       30 
30 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -32,10 +32,10 @@ dependencies: 
     | 
|
| 
       32 
32 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       33 
33 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       34 
34 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       35 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *70336833973900
         
     | 
| 
       36 
36 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       37 
37 
     | 
    
         
             
              name: nokogiri
         
     | 
| 
       38 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &70336833994120 !ruby/object:Gem::Requirement
         
     | 
| 
       39 
39 
     | 
    
         
             
                none: false
         
     | 
| 
       40 
40 
     | 
    
         
             
                requirements:
         
     | 
| 
       41 
41 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -43,10 +43,10 @@ dependencies: 
     | 
|
| 
       43 
43 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       44 
44 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       45 
45 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       46 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *70336833994120
         
     | 
| 
       47 
47 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       48 
48 
     | 
    
         
             
              name: mime-types
         
     | 
| 
       49 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: &70336833991880 !ruby/object:Gem::Requirement
         
     | 
| 
       50 
50 
     | 
    
         
             
                none: false
         
     | 
| 
       51 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       52 
52 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -54,10 +54,10 @@ dependencies: 
     | 
|
| 
       54 
54 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       55 
55 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       56 
56 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       57 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 57 
     | 
    
         
            +
              version_requirements: *70336833991880
         
     | 
| 
       58 
58 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       59 
59 
     | 
    
         
             
              name: activesupport
         
     | 
| 
       60 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 60 
     | 
    
         
            +
              requirement: &70336833989860 !ruby/object:Gem::Requirement
         
     | 
| 
       61 
61 
     | 
    
         
             
                none: false
         
     | 
| 
       62 
62 
     | 
    
         
             
                requirements:
         
     | 
| 
       63 
63 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -65,10 +65,10 @@ dependencies: 
     | 
|
| 
       65 
65 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       66 
66 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       67 
67 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       68 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 68 
     | 
    
         
            +
              version_requirements: *70336833989860
         
     | 
| 
       69 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
70 
     | 
    
         
             
              name: activemodel
         
     | 
| 
       71 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 71 
     | 
    
         
            +
              requirement: &70336833987740 !ruby/object:Gem::Requirement
         
     | 
| 
       72 
72 
     | 
    
         
             
                none: false
         
     | 
| 
       73 
73 
     | 
    
         
             
                requirements:
         
     | 
| 
       74 
74 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -76,10 +76,10 @@ dependencies: 
     | 
|
| 
       76 
76 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       77 
77 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       78 
78 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       79 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 79 
     | 
    
         
            +
              version_requirements: *70336833987740
         
     | 
| 
       80 
80 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       81 
81 
     | 
    
         
             
              name: savon
         
     | 
| 
       82 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 82 
     | 
    
         
            +
              requirement: &70336834009180 !ruby/object:Gem::Requirement
         
     | 
| 
       83 
83 
     | 
    
         
             
                none: false
         
     | 
| 
       84 
84 
     | 
    
         
             
                requirements:
         
     | 
| 
       85 
85 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -87,10 +87,10 @@ dependencies: 
     | 
|
| 
       87 
87 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       88 
88 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       89 
89 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       90 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 90 
     | 
    
         
            +
              version_requirements: *70336834009180
         
     | 
| 
       91 
91 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       92 
92 
     | 
    
         
             
              name: rake
         
     | 
| 
       93 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 93 
     | 
    
         
            +
              requirement: &70336834008120 !ruby/object:Gem::Requirement
         
     | 
| 
       94 
94 
     | 
    
         
             
                none: false
         
     | 
| 
       95 
95 
     | 
    
         
             
                requirements:
         
     | 
| 
       96 
96 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -98,10 +98,10 @@ dependencies: 
     | 
|
| 
       98 
98 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       99 
99 
     | 
    
         
             
              type: :development
         
     | 
| 
       100 
100 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       101 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 101 
     | 
    
         
            +
              version_requirements: *70336834008120
         
     | 
| 
       102 
102 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       103 
103 
     | 
    
         
             
              name: shoulda
         
     | 
| 
       104 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 104 
     | 
    
         
            +
              requirement: &70336834006880 !ruby/object:Gem::Requirement
         
     | 
| 
       105 
105 
     | 
    
         
             
                none: false
         
     | 
| 
       106 
106 
     | 
    
         
             
                requirements:
         
     | 
| 
       107 
107 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -109,10 +109,10 @@ dependencies: 
     | 
|
| 
       109 
109 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       110 
110 
     | 
    
         
             
              type: :development
         
     | 
| 
       111 
111 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       112 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 112 
     | 
    
         
            +
              version_requirements: *70336834006880
         
     | 
| 
       113 
113 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       114 
114 
     | 
    
         
             
              name: bundler
         
     | 
| 
       115 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 115 
     | 
    
         
            +
              requirement: &70336834005220 !ruby/object:Gem::Requirement
         
     | 
| 
       116 
116 
     | 
    
         
             
                none: false
         
     | 
| 
       117 
117 
     | 
    
         
             
                requirements:
         
     | 
| 
       118 
118 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -120,10 +120,10 @@ dependencies: 
     | 
|
| 
       120 
120 
     | 
    
         
             
                    version: 1.0.14
         
     | 
| 
       121 
121 
     | 
    
         
             
              type: :development
         
     | 
| 
       122 
122 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       123 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 123 
     | 
    
         
            +
              version_requirements: *70336834005220
         
     | 
| 
       124 
124 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       125 
125 
     | 
    
         
             
              name: rspec
         
     | 
| 
       126 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 126 
     | 
    
         
            +
              requirement: &70336834001740 !ruby/object:Gem::Requirement
         
     | 
| 
       127 
127 
     | 
    
         
             
                none: false
         
     | 
| 
       128 
128 
     | 
    
         
             
                requirements:
         
     | 
| 
       129 
129 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -131,10 +131,10 @@ dependencies: 
     | 
|
| 
       131 
131 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       132 
132 
     | 
    
         
             
              type: :development
         
     | 
| 
       133 
133 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       134 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 134 
     | 
    
         
            +
              version_requirements: *70336834001740
         
     | 
| 
       135 
135 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       136 
136 
     | 
    
         
             
              name: yard
         
     | 
| 
       137 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 137 
     | 
    
         
            +
              requirement: &70336834022680 !ruby/object:Gem::Requirement
         
     | 
| 
       138 
138 
     | 
    
         
             
                none: false
         
     | 
| 
       139 
139 
     | 
    
         
             
                requirements:
         
     | 
| 
       140 
140 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -142,10 +142,10 @@ dependencies: 
     | 
|
| 
       142 
142 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       143 
143 
     | 
    
         
             
              type: :development
         
     | 
| 
       144 
144 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       145 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 145 
     | 
    
         
            +
              version_requirements: *70336834022680
         
     | 
| 
       146 
146 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       147 
147 
     | 
    
         
             
              name: jettywrapper
         
     | 
| 
       148 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 148 
     | 
    
         
            +
              requirement: &70336834021440 !ruby/object:Gem::Requirement
         
     | 
| 
       149 
149 
     | 
    
         
             
                none: false
         
     | 
| 
       150 
150 
     | 
    
         
             
                requirements:
         
     | 
| 
       151 
151 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -153,7 +153,7 @@ dependencies: 
     | 
|
| 
       153 
153 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       154 
154 
     | 
    
         
             
              type: :development
         
     | 
| 
       155 
155 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       156 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 156 
     | 
    
         
            +
              version_requirements: *70336834021440
         
     | 
| 
       157 
157 
     | 
    
         
             
            description: ! 'Fedora Commons REST API ruby library : REQUIRES FCREPO 3.4+'
         
     | 
| 
       158 
158 
     | 
    
         
             
            email:
         
     | 
| 
       159 
159 
     | 
    
         
             
            - chris@cbeer.info
         
     | 
| 
         @@ -213,7 +213,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       213 
213 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       214 
214 
     | 
    
         
             
                  segments:
         
     | 
| 
       215 
215 
     | 
    
         
             
                  - 0
         
     | 
| 
       216 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 216 
     | 
    
         
            +
                  hash: -1588477717339381900
         
     | 
| 
       217 
217 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       218 
218 
     | 
    
         
             
              none: false
         
     | 
| 
       219 
219 
     | 
    
         
             
              requirements:
         
     | 
| 
         @@ -222,10 +222,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       222 
222 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       223 
223 
     | 
    
         
             
                  segments:
         
     | 
| 
       224 
224 
     | 
    
         
             
                  - 0
         
     | 
| 
       225 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 225 
     | 
    
         
            +
                  hash: -1588477717339381900
         
     | 
| 
       226 
226 
     | 
    
         
             
            requirements: []
         
     | 
| 
       227 
227 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       228 
     | 
    
         
            -
            rubygems_version: 1.8. 
     | 
| 
      
 228 
     | 
    
         
            +
            rubygems_version: 1.8.17
         
     | 
| 
       229 
229 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       230 
230 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       231 
231 
     | 
    
         
             
            summary: Fedora Commons REST API ruby library
         
     |