figshare_api_v2 0.9.2 → 0.9.6
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.
- checksums.yaml +4 -4
- data/History.txt +50 -0
- data/lib/authors.rb +16 -13
- data/lib/base.rb +65 -65
- data/lib/figshare_api_v2.rb +19 -18
- data/lib/institutions.rb +82 -82
- data/lib/oai_pmh.rb +4 -2
- data/lib/other.rb +13 -13
- data/lib/private_articles.rb +159 -91
- data/lib/private_collections.rb +87 -84
- data/lib/private_projects.rb +79 -78
- data/lib/public_articles.rb +60 -51
- data/lib/public_collections.rb +50 -42
- data/lib/public_projects.rb +24 -23
- data/lib/upload.rb +53 -48
- metadata +8 -8
data/lib/public_collections.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
1
|
module Figshare
|
2
|
-
|
3
2
|
# Figshare public colections api calls
|
4
3
|
#
|
5
4
|
class PublicCollections < Base
|
6
|
-
|
7
5
|
# Requests a list of public collections
|
8
6
|
#
|
9
7
|
# @param institution [Boolean] Just our institution
|
@@ -16,25 +14,30 @@ module Figshare
|
|
16
14
|
# @param order [String] "published_date" Default, "modified_date", "views", "cites", "shares"
|
17
15
|
# @param order_direction [String] "desc" Default, "asc"
|
18
16
|
# @yield [Hash] {id, title, doi, handle, url, published_date}
|
19
|
-
def list(institution: false,
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
17
|
+
def list( institution: false,
|
18
|
+
group_id: nil,
|
19
|
+
published_since: nil,
|
20
|
+
modified_since: nil,
|
21
|
+
resource_doi: nil,
|
22
|
+
doi: nil,
|
23
|
+
handle: nil,
|
24
|
+
order: 'published_date',
|
25
|
+
order_direction: 'desc',
|
26
|
+
&block
|
27
|
+
)
|
25
28
|
args = {}
|
26
|
-
args['institution'] = @institute_id
|
27
|
-
args['group'] = group_id
|
28
|
-
args['resource_doi'] = resource_doi
|
29
|
-
args['doi'] = doi
|
30
|
-
args['handle'] = handle
|
31
|
-
args['published_since'] = published_since
|
32
|
-
args['modified_since'] = modified_since
|
33
|
-
args['order'] = order
|
34
|
-
args['order_direction'] = order_direction
|
29
|
+
args['institution'] = @institute_id unless institution.nil?
|
30
|
+
args['group'] = group_id unless group_id.nil?
|
31
|
+
args['resource_doi'] = resource_doi unless resource_doi.nil?
|
32
|
+
args['doi'] = doi unless doi.nil?
|
33
|
+
args['handle'] = handle unless handle.nil?
|
34
|
+
args['published_since'] = published_since unless published_since.nil?
|
35
|
+
args['modified_since'] = modified_since unless modified_since.nil?
|
36
|
+
args['order'] = order unless order.nil?
|
37
|
+
args['order_direction'] = order_direction unless order_direction.nil?
|
35
38
|
get_paginate(api_query: 'collections', args: args, &block)
|
36
39
|
end
|
37
|
-
|
40
|
+
|
38
41
|
# Search within the public collections
|
39
42
|
#
|
40
43
|
# @param institution [Boolean] Just our institution
|
@@ -47,24 +50,30 @@ module Figshare
|
|
47
50
|
# @param order [String] "published_date" Default, "modified_date", "views", "cites", "shares"
|
48
51
|
# @param order_direction [String] "desc" Default, "asc"
|
49
52
|
# @yield [Hash] {id, title, doi, handle, url, published_date}
|
50
|
-
def search(
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
def search( search_for:,
|
54
|
+
institute: false,
|
55
|
+
group_id: nil,
|
56
|
+
published_since: nil,
|
57
|
+
modified_since: nil,
|
58
|
+
item_type: nil,
|
59
|
+
resource_doi: nil,
|
60
|
+
doi: nil,
|
61
|
+
handle: nil,
|
62
|
+
order: 'published_date',
|
63
|
+
order_direction: 'desc',
|
64
|
+
&block
|
65
|
+
)
|
57
66
|
args = { 'search_for' => search_for }
|
58
|
-
args['institution'] = @institute_id
|
59
|
-
args['group_id'] = group_id
|
60
|
-
args['item_type'] = item_type
|
61
|
-
args['resource_doi'] = resource_doi
|
62
|
-
args['doi'] = doi
|
63
|
-
args['handle'] = handle
|
64
|
-
args['published_since'] = published_since
|
65
|
-
args['modified_since'] = modified_since
|
66
|
-
args['order'] = order
|
67
|
-
args['order_direction'] = order_direction
|
67
|
+
args['institution'] = @institute_id unless institute.nil?
|
68
|
+
args['group_id'] = group_id unless group_id.nil?
|
69
|
+
args['item_type'] = item_type unless item_type.nil?
|
70
|
+
args['resource_doi'] = resource_doi unless resource_doi.nil?
|
71
|
+
args['doi'] = doi unless doi.nil?
|
72
|
+
args['handle'] = handle unless handle.nil?
|
73
|
+
args['published_since'] = published_since unless published_since.nil?
|
74
|
+
args['modified_since'] = modified_since unless modified_since.nil?
|
75
|
+
args['order'] = order unless order.nil?
|
76
|
+
args['order_direction'] = order_direction unless order_direction.nil?
|
68
77
|
post(api_query: 'account/articles/search', args: args, &block)
|
69
78
|
end
|
70
79
|
|
@@ -73,7 +82,7 @@ module Figshare
|
|
73
82
|
# @param collection_id [Integer] Figshare id of the collection
|
74
83
|
# @yield [Hash] See figshare api docs
|
75
84
|
def detail(collection_id:, &block)
|
76
|
-
get(api_query: "collections/#{collection_id}",
|
85
|
+
get(api_query: "collections/#{collection_id}", &block)
|
77
86
|
end
|
78
87
|
|
79
88
|
# Return details of a list of public collection Versions
|
@@ -81,7 +90,7 @@ module Figshare
|
|
81
90
|
# @param collection_id [Integer] Figshare id of the collection
|
82
91
|
# @yield [Hash] See figshare api docs
|
83
92
|
def versions(collection_id:, &block)
|
84
|
-
get(api_query: "collections/#{collection_id}/versions",
|
93
|
+
get(api_query: "collections/#{collection_id}/versions", &block)
|
85
94
|
end
|
86
95
|
|
87
96
|
# Get details of specific collection version
|
@@ -90,9 +99,9 @@ module Figshare
|
|
90
99
|
# @param version_id [Integer] Figshare id of the collection's version
|
91
100
|
# @yield [Hash] See figshare api docs
|
92
101
|
def version_detail(collection_id:, version_id:, &block)
|
93
|
-
get(api_query: "collections/#{collection_id}/versions/#{version_id}",
|
102
|
+
get(api_query: "collections/#{collection_id}/versions/#{version_id}", &block)
|
94
103
|
end
|
95
|
-
|
104
|
+
|
96
105
|
# Get details of list of articles for a specific collection
|
97
106
|
#
|
98
107
|
# @param collection_id [Integer] Figshare id of the collection
|
@@ -100,6 +109,5 @@ module Figshare
|
|
100
109
|
def articles(collection_id:, &block)
|
101
110
|
get_paginate(api_query: "collections/#{collection_id}/articles", &block)
|
102
111
|
end
|
103
|
-
end
|
104
|
-
|
105
|
-
end #of module
|
112
|
+
end
|
113
|
+
end
|
data/lib/public_projects.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
module Figshare
|
2
|
-
|
3
2
|
# Figshare public projects api
|
4
3
|
#
|
5
4
|
class PublicProjects < Base
|
@@ -11,13 +10,13 @@ module Figshare
|
|
11
10
|
# @param order [String] "published_date" Default, "modified_date", "views", "cites", "shares"
|
12
11
|
# @param order_direction [String] "desc" Default, "asc"
|
13
12
|
# @yield [Hash] {url, published_date, id, title}
|
14
|
-
def list(institute: false,group_id: nil, published_since: nil, order: 'published_date', order_direction: 'desc', &block)
|
13
|
+
def list(institute: false, group_id: nil, published_since: nil, order: 'published_date', order_direction: 'desc', &block)
|
15
14
|
args = {}
|
16
|
-
args['institution'] = @institute_id
|
17
|
-
args['group'] = group_id
|
18
|
-
args['published_since'] = published_since
|
19
|
-
args['order'] = order
|
20
|
-
args['order_direction'] = order_direction
|
15
|
+
args['institution'] = @institute_id unless institute.nil?
|
16
|
+
args['group'] = group_id unless group_id.nil?
|
17
|
+
args['published_since'] = published_since unless published_since.nil?
|
18
|
+
args['order'] = order unless order.nil?
|
19
|
+
args['order_direction'] = order_direction unless order_direction.nil?
|
21
20
|
get_paginate(api_query: 'projects', args: args, &block)
|
22
21
|
end
|
23
22
|
|
@@ -30,19 +29,22 @@ module Figshare
|
|
30
29
|
# @param order [String] "published_date" Default, "modified_date", "views", "cites", "shares"
|
31
30
|
# @param order_direction [String] "desc" Default, "asc"
|
32
31
|
# @yield [Hash] {id, title, doi, handle, url, published_date}
|
33
|
-
def search(
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
32
|
+
def search( search_for:,
|
33
|
+
institute: false,
|
34
|
+
group_id: nil,
|
35
|
+
published_since: nil,
|
36
|
+
modified_since: nil,
|
37
|
+
order: 'published_date',
|
38
|
+
order_direction: 'desc',
|
39
|
+
&block
|
40
|
+
)
|
39
41
|
args = { 'search_for' => search_for }
|
40
|
-
args['institution'] = @institute_id
|
41
|
-
args['group'] = group_id
|
42
|
-
args['published_since'] = published_since
|
43
|
-
args['modified_since'] = modified_since
|
44
|
-
args['order'] = order
|
45
|
-
args['order_direction'] = order_direction
|
42
|
+
args['institution'] = @institute_id unless institute.nil?
|
43
|
+
args['group'] = group_id unless group_id.nil?
|
44
|
+
args['published_since'] = published_since unless published_since.nil?
|
45
|
+
args['modified_since'] = modified_since unless modified_since.nil?
|
46
|
+
args['order'] = order unless order.nil?
|
47
|
+
args['order_direction'] = order_direction unless order_direction.nil?
|
46
48
|
post(api_query: 'account/projects/search', args: args, &block)
|
47
49
|
end
|
48
50
|
|
@@ -51,7 +53,7 @@ module Figshare
|
|
51
53
|
# @param project_id [Integer] Figshare id of the project_id
|
52
54
|
# @yield [Hash] See figshare api docs
|
53
55
|
def detail(project_id:, &block)
|
54
|
-
get(api_query: "projects/#{project_id}",
|
56
|
+
get(api_query: "projects/#{project_id}", &block)
|
55
57
|
end
|
56
58
|
|
57
59
|
# Get list of articles for a specific project
|
@@ -61,6 +63,5 @@ module Figshare
|
|
61
63
|
def articles(project_id:, &block)
|
62
64
|
get_paginate(api_query: "projects/#{project_id}/articles", &block)
|
63
65
|
end
|
64
|
-
|
65
|
-
|
66
|
-
end # of module
|
66
|
+
end
|
67
|
+
end
|
data/lib/upload.rb
CHANGED
@@ -1,27 +1,27 @@
|
|
1
|
-
module Figshare
|
1
|
+
module Figshare # :nodoc:
|
2
2
|
require 'digest'
|
3
3
|
require 'dir_r'
|
4
4
|
|
5
5
|
# Upload files to figshare
|
6
6
|
# Nb. This can sometimes fail, so you need to check the md5 to ensure the file got there
|
7
7
|
# It can take a short while for the md5 to be calculated, so upload, wait, then check for a computed_md5.
|
8
|
-
# The status will show as "ic_checking", "moving_to_final" then to "available",
|
8
|
+
# The status will show as "ic_checking", "moving_to_final" then to "available",
|
9
9
|
# I have seen it stuck at "moving_to_final", but with the right computed_md5.
|
10
10
|
#
|
11
11
|
class Upload < PrivateArticles
|
12
12
|
CHUNK_SIZE = 1048576
|
13
|
-
attr_accessor :file_info, :upload_query, :upload_host, :upload_parts_detail
|
13
|
+
attr_accessor :file_info, :upload_query, :upload_host, :upload_parts_detail, :file_id, :article_id, :file_name
|
14
14
|
attr_accessor :new_count, :bad_count
|
15
|
-
|
15
|
+
|
16
16
|
# Calculate a local files MD5.
|
17
17
|
#
|
18
18
|
# @param filename [String] Path/name of local file to MD5
|
19
19
|
# @return [String,Integer] MD5 as a Hex String, Size of the file in bytes.
|
20
20
|
def self.get_file_check_data(filename)
|
21
|
-
stat_record =
|
21
|
+
stat_record = File.stat(filename)
|
22
22
|
md5 = Digest::MD5.new
|
23
23
|
File.open(filename, 'rb') do |fd|
|
24
|
-
while(buffer = fd.read(CHUNK_SIZE))
|
24
|
+
while (buffer = fd.read(CHUNK_SIZE))
|
25
25
|
md5.update(buffer)
|
26
26
|
end
|
27
27
|
end
|
@@ -37,31 +37,31 @@ module Figshare
|
|
37
37
|
@article_id = article_id
|
38
38
|
@file_name = file_name
|
39
39
|
@trace = trace
|
40
|
-
|
40
|
+
|
41
41
|
@file_id = nil
|
42
42
|
@file_info = nil
|
43
43
|
@upload_query = nil
|
44
44
|
@upload_host = nil
|
45
|
-
@upload_parts_detail
|
46
|
-
|
47
|
-
initiate_new_upload
|
45
|
+
@upload_parts_detail = nil
|
46
|
+
|
47
|
+
initiate_new_upload
|
48
48
|
puts "New File_id: #{@file_id}\n\n" if @trace > 1
|
49
|
-
|
50
|
-
get_file_info
|
49
|
+
|
50
|
+
get_file_info
|
51
51
|
puts "@file_info: #{@file_info.to_j}\n\n" if @trace > 1
|
52
|
-
|
53
|
-
get_upload_parts_details
|
52
|
+
|
53
|
+
get_upload_parts_details
|
54
54
|
puts "@upload_parts_detail: #{@upload_parts_detail.to_j}\n\n" if @trace > 1
|
55
|
-
|
56
|
-
upload_the_parts
|
57
|
-
|
58
|
-
complete_upload
|
55
|
+
|
56
|
+
upload_the_parts
|
57
|
+
|
58
|
+
complete_upload
|
59
59
|
if @trace > 1
|
60
60
|
status
|
61
61
|
puts "Final Status: #{@file_info.to_j}\n\n"
|
62
62
|
end
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
# Upload all files in a directory, into one article.
|
66
66
|
# Check checksums, and only upload changed or new files
|
67
67
|
# Does not recurse through sub-directories, as figshare has a flat file structure.
|
@@ -73,16 +73,17 @@ module Figshare
|
|
73
73
|
def upload_dir(article_id:, directory:, delete_extras: false, exclude_dot_files: true, trace: 0)
|
74
74
|
@new_count = 0
|
75
75
|
@bad_count = 0
|
76
|
-
|
76
|
+
|
77
77
|
files = {}
|
78
78
|
cache_article_file_md5(article_id: article_id)
|
79
|
-
|
80
|
-
DirR.walk_dir(directory: directory, walk_sub_directories: false) do |d,f|
|
79
|
+
|
80
|
+
DirR.walk_dir(directory: directory, walk_sub_directories: false) do |d, f|
|
81
81
|
next if exclude_dot_files && f =~ /^\..*/
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
82
|
+
|
83
|
+
files[f] = true # NOTE: that we have seen this filename
|
84
|
+
if @md5_cache[f] # check to see if it has already been uploaded
|
85
|
+
md5, _size = Upload.get_file_check_data("#{d}/#{f}")
|
86
|
+
if @md5_cache[f][:md5] != md5 # file is there, but has changed, or previously failed to upload.
|
86
87
|
puts "Deleting: #{article_id} << #{d}/#{f} #{@md5_cache[f][:id]} MISMATCH '#{@md5_cache[f]}' != '#{md5}'" if trace > 0
|
87
88
|
file_delete(article_id: article_id, file_id: @md5_cache[f][:id])
|
88
89
|
@bad_count += 1
|
@@ -98,16 +99,16 @@ module Figshare
|
|
98
99
|
@new_count += 1
|
99
100
|
end
|
100
101
|
end
|
101
|
-
|
102
|
+
|
102
103
|
# Print out filename of files in the Figshare article, that weren't in the directory.
|
103
|
-
@md5_cache.each do |fn,v|
|
104
|
-
if ! files[fn]
|
105
|
-
#File exists on Figshare, but not on the local disk
|
104
|
+
@md5_cache.each do |fn, v|
|
105
|
+
if ! files[fn]
|
106
|
+
# File exists on Figshare, but not on the local disk
|
106
107
|
if delete_extras
|
107
108
|
puts "Deleteing EXTRA: #{article_id} << #{fn} #{v[:id]}" if trace > 0
|
108
|
-
file_delete(article_id: article_id, file_id: @md5_cache[f][:id])
|
109
|
+
file_delete(article_id: article_id, file_id: @md5_cache[f][:id])
|
109
110
|
elsif trace > 0
|
110
|
-
puts "EXTRA: #{article_id} << #{fn} #{v[:id]}"
|
111
|
+
puts "EXTRA: #{article_id} << #{fn} #{v[:id]}"
|
111
112
|
end
|
112
113
|
end
|
113
114
|
end
|
@@ -115,16 +116,16 @@ module Figshare
|
|
115
116
|
|
116
117
|
# Retrieve md5 sums of the existing files in the figshare article
|
117
118
|
# Sets @md5_cache[filename] => figshare.computed_md5
|
118
|
-
#
|
119
|
+
#
|
119
120
|
# @param article_id [Integer] Figshare article ID
|
120
121
|
private def cache_article_file_md5(article_id:)
|
121
122
|
@md5_cache = {}
|
122
123
|
files(article_id: article_id) do |f|
|
123
|
-
@md5_cache[f['name']] = {:
|
124
|
+
@md5_cache[f['name']] = { article_id: article_id, id: f['id'], md5: f['computed_md5'] }
|
124
125
|
end
|
125
126
|
end
|
126
|
-
|
127
|
-
# Get status of the current upload.
|
127
|
+
|
128
|
+
# Get status of the current upload.
|
128
129
|
# Just fetches the file record from figshare.
|
129
130
|
# Of interest is the status field, and the computed_md5 field
|
130
131
|
#
|
@@ -134,33 +135,35 @@ module Figshare
|
|
134
135
|
file_detail(article_id: @article_id, file_id: @file_id) do |f|
|
135
136
|
@file_info = f
|
136
137
|
end
|
137
|
-
raise
|
138
|
+
raise 'Upload::status(): Failed to get figshare file record' if @file_info.nil?
|
138
139
|
end
|
139
|
-
|
140
|
+
|
140
141
|
# Creates a new Figshare file record, in the figshare article, and we get the file_id from the upload URL
|
141
142
|
# file status == 'created'
|
142
143
|
#
|
143
144
|
private def initiate_new_upload
|
144
145
|
md5, size = Upload.get_file_check_data(@file_name)
|
145
|
-
args = {'name' => File.basename(@file_name),
|
146
|
-
|
147
|
-
|
146
|
+
args = { 'name' => File.basename(@file_name),
|
147
|
+
'md5' => md5,
|
148
|
+
'size' => size
|
148
149
|
}
|
149
150
|
post( api_query: "account/articles/#{@article_id}/files", args: args ) do |f|
|
150
151
|
@file_id = f['location'].gsub(/^.*\/([0-9]+)$/, '\1')
|
151
152
|
end
|
152
|
-
raise
|
153
|
+
raise 'Upload::initiate_new_upload(): failed to create Figshare file record' if @file_id.nil?
|
153
154
|
end
|
154
|
-
|
155
|
+
|
155
156
|
# Gets the Figshare file info
|
156
157
|
# We need the upload URLs to continue
|
157
158
|
#
|
159
|
+
# rubocop:disable Naming/AccessorMethodName This isn't an accessor method.
|
158
160
|
private def get_file_info
|
159
161
|
status
|
160
162
|
@upload_host = @file_info['upload_url'].gsub(/^http.*\/\/(.*)\/upload.*$/, '\1')
|
161
163
|
@upload_query = @file_info['upload_url'].gsub(/^http.*\/\/(.*)\/(upload.*)$/, '\2')
|
162
164
|
puts "Upload_host: #{@upload_host} URL: #{@upload_query}" if @trace > 1
|
163
165
|
end
|
166
|
+
# rubocop:enable Naming/AccessorMethodName This isn't an accessor method.
|
164
167
|
|
165
168
|
# Completes the upload.
|
166
169
|
# Figshare then calculates the md5 in the background, which may take a while to complete
|
@@ -168,24 +171,27 @@ module Figshare
|
|
168
171
|
#
|
169
172
|
private def complete_upload
|
170
173
|
post( api_query: "account/articles/#{@article_id}/files/#{@file_id}" )
|
171
|
-
puts
|
174
|
+
puts 'complete_upload' if @trace > 1
|
172
175
|
end
|
173
176
|
|
174
177
|
# Get the upload settings
|
175
178
|
#
|
179
|
+
# rubocop:disable Naming/AccessorMethodName This isn't an accessor method.
|
176
180
|
private def get_upload_parts_details
|
177
181
|
@upload_parts_detail = nil
|
178
182
|
result = nil
|
179
183
|
WIKK::WebBrowser.https_session( host: @upload_host, verify_cert: false ) do |ws|
|
180
184
|
result = ws.get_page( query: @upload_query,
|
181
|
-
authorization: "token #{@auth_token}"
|
185
|
+
authorization: "token #{@auth_token}"
|
182
186
|
)
|
183
187
|
end
|
184
188
|
raise "get_upload_parts_detail(#{@article_id}) failed to get upload URL" if result.nil?
|
189
|
+
|
185
190
|
@upload_parts_detail = JSON.parse(result)
|
186
|
-
|
191
|
+
|
187
192
|
puts "Part URL #{@upload_parts_detail['parts']}" if @trace > 1
|
188
193
|
end
|
194
|
+
# rubocop:enable Naming/AccessorMethodName This isn't an accessor method.
|
189
195
|
|
190
196
|
# Upload the file in parts
|
191
197
|
#
|
@@ -210,6 +216,5 @@ module Figshare
|
|
210
216
|
)
|
211
217
|
end
|
212
218
|
end
|
213
|
-
|
214
219
|
end
|
215
|
-
end
|
220
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: figshare_api_v2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Burrowes
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: wikk_json
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '3.
|
75
|
+
version: '3.23'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '3.
|
82
|
+
version: '3.23'
|
83
83
|
description: Figshare version 2 API.
|
84
84
|
email:
|
85
85
|
- r.burrowes@auckland.ac.nz
|
@@ -112,7 +112,7 @@ homepage: https://UoA-eResearch.github.io/figshare_api_v2/
|
|
112
112
|
licenses:
|
113
113
|
- MIT
|
114
114
|
metadata: {}
|
115
|
-
post_install_message:
|
115
|
+
post_install_message:
|
116
116
|
rdoc_options:
|
117
117
|
- "--markup"
|
118
118
|
- markdown
|
@@ -133,8 +133,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
133
|
- !ruby/object:Gem::Version
|
134
134
|
version: '0'
|
135
135
|
requirements: []
|
136
|
-
rubygems_version: 3.1.
|
137
|
-
signing_key:
|
136
|
+
rubygems_version: 3.1.4
|
137
|
+
signing_key:
|
138
138
|
specification_version: 4
|
139
139
|
summary: Figshare version 2 API.
|
140
140
|
test_files: []
|