documentcloud 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZDM0YWJjYjM3NzQ2Y2U0OTEzMWQyNDk0MTY0Yjg4NDZmMGJhYjdjZQ==
5
+ data.tar.gz: !binary |-
6
+ NzQ1MTkxYTI4YzFiZTE3Y2RhOGVjMWYwYmExOWU3MjllODY2MzU3NA==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ZDY0Y2U3NzZlMzIzMzgzMmRmYjQ5ZDk5M2JlZDZhZjcyNzNhNjQzNzUxNGI2
10
+ ZDQyNGQ4NTcxN2VhZWIyOTYwYWE5M2Y3YmZkYmQ4Yzg3ZGEyYTU0ZDI2MWI2
11
+ ZWQwMjYyYTIzZDUzZjE1NDdmNjhhMDNkOWQxMjBhZWU3ODhiYWE=
12
+ data.tar.gz: !binary |-
13
+ ZjkzZjJhNGY0MDJlMDZhMzJjZTFmZDU5ZWM1N2MwZDY4M2EzNmJiMjhkNmUz
14
+ NDkwMzJhZDY0ZGIyZjQ5ZDFlMTZmMTEzMjg0NGVkM2UyNjg1NWFkYzk5ZTZm
15
+ NTgyYTMwYzRmY2JhMTc0NGQ1YWE0ZjExNTVlZDViOGI0MWM0Mzc=
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  DocumentCloud RubyGem
2
2
  =====================
3
3
 
4
- Rubygem for interacting with the DocumentCloud API
4
+ Rubygem for interacting with the DocumentCloud API.
5
5
 
6
6
 
7
7
  ## Usage
@@ -44,6 +44,35 @@ remote_doc = DocumentCloud.upload('http://somesite.com/file.pdf', 'Document Titl
44
44
  Both return a document object which can then be used.
45
45
 
46
46
 
47
- ### Information
47
+ ### Document
48
+
49
+ Fetch a document by passing the document id.
50
+
51
+ ``` ruby
52
+ doc = DocumentCloud.document('1234-document-id')
53
+ ```
54
+
55
+
56
+
57
+ ### Update
58
+
59
+ Update a document by providing the file id, and any parameters you want to change.
60
+
61
+ ``` ruby
62
+ updated_doc = DocumentCloud.update('1234-file-name', title: 'Changed Document Title')
63
+ ```
64
+
65
+
66
+ ### Destroy
67
+
68
+ Destroy a document simply by passing the document id.
69
+
70
+ ``` ruby
71
+ DocumentCloud.destroy('1234-file-name')
72
+ ```
73
+
74
+
75
+
76
+ ## Information
48
77
 
49
78
  DocumentCloud API info: http://www.documentcloud.org/help/api
@@ -0,0 +1,22 @@
1
+ module DocumentCloud
2
+ module API
3
+ module Destroy
4
+ include DocumentCloud::API::Utils
5
+ DOCUMENT_PATH = "/documents"
6
+
7
+ # Delete a document
8
+ #
9
+ # @param id [String] The document id
10
+ def destroy(id)
11
+ delete(document_path(id))
12
+ end
13
+
14
+ private
15
+
16
+ def document_path(document_id)
17
+ "#{DOCUMENT_PATH}/#{document_id.to_s}.json"
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -2,7 +2,7 @@ module DocumentCloud
2
2
  module API
3
3
  module Document
4
4
  include DocumentCloud::API::Utils
5
- DOCUMENT_PATH = "/documents/"
5
+ DOCUMENT_PATH = "/documents"
6
6
 
7
7
  # Fetch a document
8
8
  #
@@ -0,0 +1,32 @@
1
+ module DocumentCloud
2
+ module API
3
+ module Update
4
+ include DocumentCloud::API::Utils
5
+ DOCUMENT_PATH = "/documents"
6
+
7
+ # Update a document
8
+ #
9
+ # @see http://www.documentcloud.org/help/api
10
+ # @param id [String] The document id
11
+ # @param options [Hash] Customizable set of options
12
+ # @param options [String] :title The document's cannonical title
13
+ # @param options [String] :source The source who produced the document
14
+ # @param options [String] :description A paragraph of detailed description
15
+ # @param options [String] :related_article The URL of the article associated with the document
16
+ # @param options [String] :published_url The URL of the page on which the document will be embedded
17
+ # @param options [String] :access One of 'public', 'private', 'organization', defaults to 'private'
18
+ # @param options [Hash] :data A hash of arbitrary key/value data pairs
19
+ # @returns [DocumentCloud::Document] The document uploaded
20
+ def update(id, options={})
21
+ build_object DocumentCloud::Document, put(document_path(id), options)
22
+ end
23
+
24
+ private
25
+
26
+ def document_path(document_id)
27
+ "#{DOCUMENT_PATH}/#{document_id.to_s}.json"
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -3,6 +3,8 @@ require_relative 'api/utils'
3
3
  require_relative 'api/search'
4
4
  require_relative 'api/upload'
5
5
  require_relative 'api/document'
6
+ require_relative 'api/update'
7
+ require_relative 'api/destroy'
6
8
 
7
9
  module DocumentCloud
8
10
  class Client
@@ -10,6 +12,8 @@ module DocumentCloud
10
12
  include DocumentCloud::API::Search
11
13
  include DocumentCloud::API::Upload
12
14
  include DocumentCloud::API::Document
15
+ include DocumentCloud::API::Update
16
+ include DocumentCloud::API::Destroy
13
17
  include DocumentCloud::Configurable
14
18
 
15
19
  def initialize(options={})
@@ -23,10 +27,21 @@ module DocumentCloud
23
27
  RestClient.get request_base+path, {params: params}
24
28
  end
25
29
 
30
+ # Perform HTTP POST request
26
31
  def post(path, params={})
27
32
  RestClient.post request_base+path, params
28
33
  end
29
34
 
35
+ # Perform HTTP PUT request
36
+ def put(path, params={})
37
+ RestClient.put request_base+path, params
38
+ end
39
+
40
+ # Perform HTTP DELETE request
41
+ def delete(path)
42
+ RestClient.delete request_base+path
43
+ end
44
+
30
45
  private
31
46
 
32
47
  def request_base
@@ -1,8 +1,8 @@
1
1
  module DocumentCloud
2
2
  class Version
3
3
  MAJOR = 0 unless defined? DocumentCloud::Version::MAJOR
4
- MINOR = 1 unless defined? DocumentCloud::Version::MINOR
5
- PATCH = 1 unless defined? DocumentCloud::Version::PATCH
4
+ MINOR = 2 unless defined? DocumentCloud::Version::MINOR
5
+ PATCH = 0 unless defined? DocumentCloud::Version::PATCH
6
6
  PRE = nil unless defined? DocumentCloud::Version::PRE
7
7
 
8
8
  class << self
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: documentcloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
5
- prerelease:
4
+ version: 0.2.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Miles Zimmerman
@@ -14,7 +13,6 @@ dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rest-client
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: multi_json
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -53,8 +48,10 @@ files:
53
48
  - LICENSE
54
49
  - README.md
55
50
  - documentcloud.gemspec
51
+ - lib/document_cloud/api/destroy.rb
56
52
  - lib/document_cloud/api/document.rb
57
53
  - lib/document_cloud/api/search.rb
54
+ - lib/document_cloud/api/update.rb
58
55
  - lib/document_cloud/api/upload.rb
59
56
  - lib/document_cloud/api/utils.rb
60
57
  - lib/document_cloud/client.rb
@@ -67,27 +64,25 @@ files:
67
64
  homepage: https://github.com/mileszim/documentcloud
68
65
  licenses:
69
66
  - MIT
67
+ metadata: {}
70
68
  post_install_message:
71
69
  rdoc_options: []
72
70
  require_paths:
73
71
  - lib
74
72
  required_ruby_version: !ruby/object:Gem::Requirement
75
- none: false
76
73
  requirements:
77
74
  - - ! '>='
78
75
  - !ruby/object:Gem::Version
79
76
  version: '0'
80
77
  required_rubygems_version: !ruby/object:Gem::Requirement
81
- none: false
82
78
  requirements:
83
79
  - - ! '>='
84
80
  - !ruby/object:Gem::Version
85
81
  version: '0'
86
82
  requirements: []
87
83
  rubyforge_project:
88
- rubygems_version: 1.8.24
84
+ rubygems_version: 2.1.10
89
85
  signing_key:
90
- specification_version: 3
86
+ specification_version: 4
91
87
  summary: Rubygem for interacting with the DocumentCloud API
92
88
  test_files: []
93
- has_rdoc: