dataverse 0.1.7 → 0.1.10
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/.gitignore +1 -0
- data/Gemfile.lock +5 -5
- data/lib/dataverse/base.rb +7 -6
- data/lib/dataverse/dataset.rb +3 -1
- data/lib/dataverse/dataverse.rb +48 -10
- data/lib/dataverse/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2da0e7678288d4f1091c613efaef0214423da1c678f5dea4f905ba0117d6309e
|
|
4
|
+
data.tar.gz: 5529f3d38a3625932b4e181dcbef378bc8dc92edb9bdd8dd4a60a3044cb2c786
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b9217fc9aa689af803b1658e3d2549aa7f269f027afc2776d9c0d211a26df2dbe98c708fe64bfa20179835f5089afae147a8bf60d87f4e4c8bec5a0a8c15d0ba
|
|
7
|
+
data.tar.gz: a5adaec85a22668edd06b6b0598233bf78335cec5fd62882b902a5d57b99859fb4fd3c486597c127450fbf42b8f6cbe64cd14c2cf25ebf00a8a7d2f5b0c09226
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
dataverse (0.1.
|
|
4
|
+
dataverse (0.1.10)
|
|
5
5
|
rest-client (~> 2.0)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
@@ -14,12 +14,12 @@ GEM
|
|
|
14
14
|
unf (>= 0.0.5, < 1.0.0)
|
|
15
15
|
dotenv (2.7.6)
|
|
16
16
|
http-accept (1.7.0)
|
|
17
|
-
http-cookie (1.0.
|
|
17
|
+
http-cookie (1.0.5)
|
|
18
18
|
domain_name (~> 0.5)
|
|
19
19
|
method_source (1.0.0)
|
|
20
20
|
mime-types (3.4.1)
|
|
21
21
|
mime-types-data (~> 3.2015)
|
|
22
|
-
mime-types-data (3.
|
|
22
|
+
mime-types-data (3.2023.0218.1)
|
|
23
23
|
netrc (0.11.0)
|
|
24
24
|
pry (0.14.1)
|
|
25
25
|
coderay (~> 1.1)
|
|
@@ -45,7 +45,7 @@ GEM
|
|
|
45
45
|
rspec-support (3.10.3)
|
|
46
46
|
unf (0.1.4)
|
|
47
47
|
unf_ext
|
|
48
|
-
unf_ext (0.0.8.
|
|
48
|
+
unf_ext (0.0.8.2)
|
|
49
49
|
|
|
50
50
|
PLATFORMS
|
|
51
51
|
ruby
|
|
@@ -60,4 +60,4 @@ DEPENDENCIES
|
|
|
60
60
|
rspec (~> 3.0)
|
|
61
61
|
|
|
62
62
|
BUNDLED WITH
|
|
63
|
-
2.
|
|
63
|
+
2.3.25
|
data/lib/dataverse/base.rb
CHANGED
|
@@ -49,7 +49,7 @@ module Dataverse
|
|
|
49
49
|
self.class.api_call(url, **args)
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
-
def self.api_call(url, method: :get, headers: {}, params: {}, body: nil, format: :api, block: nil, options: {})
|
|
52
|
+
def self.api_call(url, method: :get, headers: {}, params: {}, body: nil, format: :api, block: nil, timeout: 120, options: {})
|
|
53
53
|
|
|
54
54
|
unless ENV.has_key?('API_URL') && ENV.has_key?('API_TOKEN')
|
|
55
55
|
raise Error.new("Set environment variables 'API_URL' and 'API_TOKEN'")
|
|
@@ -83,6 +83,7 @@ module Dataverse
|
|
|
83
83
|
url: url,
|
|
84
84
|
headers: headers,
|
|
85
85
|
payload: body,
|
|
86
|
+
timeout: timeout,
|
|
86
87
|
# log: STDOUT,
|
|
87
88
|
**options
|
|
88
89
|
)
|
|
@@ -117,8 +118,8 @@ module Dataverse
|
|
|
117
118
|
end
|
|
118
119
|
end
|
|
119
120
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
if log = ENV['RESTCLIENT_LOG']
|
|
122
|
+
RestClient.log = STDOUT if log.upcase == 'STDOUT'
|
|
123
|
+
RestClient.log = STDERR if log.upcase == 'STDERR'
|
|
124
|
+
RestClient.log = log
|
|
125
|
+
end
|
data/lib/dataverse/dataset.rb
CHANGED
|
@@ -286,12 +286,14 @@ module Dataverse
|
|
|
286
286
|
|
|
287
287
|
def process_data(data)
|
|
288
288
|
return {} if data.nil? || data.empty?
|
|
289
|
+
return {} unless data.has_key?('latestVersion')
|
|
289
290
|
version_data = data.delete('latestVersion')
|
|
290
291
|
process_version_data(version_data)
|
|
291
292
|
data
|
|
292
293
|
end
|
|
293
294
|
|
|
294
295
|
def process_version_data(data)
|
|
296
|
+
return nil unless data
|
|
295
297
|
metadata = pack_metadata(data.delete('metadataBlocks'))
|
|
296
298
|
files = pack_files(data.delete('files'))
|
|
297
299
|
version = get_version_number(data)
|
|
@@ -318,7 +320,7 @@ module Dataverse
|
|
|
318
320
|
|
|
319
321
|
def pack_metadata(metadata)
|
|
320
322
|
data = {}
|
|
321
|
-
metadata.each_value do |block|
|
|
323
|
+
(metadata || {}).each_value do |block|
|
|
322
324
|
block['fields'].each do |field|
|
|
323
325
|
data[field['typeName']] = field_to_value(field)
|
|
324
326
|
end
|
data/lib/dataverse/dataverse.rb
CHANGED
|
@@ -74,27 +74,65 @@ module Dataverse
|
|
|
74
74
|
api_call("dataverses/#{id}/#{url}", **args)
|
|
75
75
|
end
|
|
76
76
|
|
|
77
|
-
def
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
data.each do |x|
|
|
77
|
+
def each_child(&block)
|
|
78
|
+
data = call("contents")
|
|
79
|
+
data.each do |x|
|
|
80
|
+
begin
|
|
82
81
|
case x['type']
|
|
83
82
|
when 'dataverse'
|
|
84
|
-
|
|
83
|
+
dv = Dataverse.id(x['id'])
|
|
84
|
+
data << (block_given? ? yield(child) : child)
|
|
85
|
+
|
|
85
86
|
when 'dataset'
|
|
86
|
-
|
|
87
|
+
ds = Dataset.id(x['id'])
|
|
88
|
+
result << ds if ds.version
|
|
87
89
|
else
|
|
88
90
|
raise Error.new("Unsupported type: #{x['type']} (#{x['name']})")
|
|
89
91
|
end
|
|
92
|
+
rescue => e
|
|
93
|
+
puts "ERROR: Skipped creating #{x['type']} object '#{x['id']}' : '#{e.message}'."
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
result
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def children(&block)
|
|
101
|
+
if @children && @children.is_a?(Array)
|
|
102
|
+
@children.each { |child| yield(child) } if block_given?
|
|
103
|
+
else
|
|
104
|
+
@children = begin
|
|
105
|
+
result = []
|
|
106
|
+
data = call("contents")
|
|
107
|
+
data.each do |x|
|
|
108
|
+
begin
|
|
109
|
+
case x['type']
|
|
110
|
+
when 'dataverse'
|
|
111
|
+
dv = Dataverse.id(x['id'])
|
|
112
|
+
yield dv if block_given?
|
|
113
|
+
result << dv
|
|
114
|
+
when 'dataset'
|
|
115
|
+
ds = Dataset.id(x['id'])
|
|
116
|
+
if ds.version
|
|
117
|
+
yield ds if block_given?
|
|
118
|
+
result << ds
|
|
119
|
+
end
|
|
120
|
+
else
|
|
121
|
+
raise Error.new("Unsupported type: #{x['type']} (#{x['name']})")
|
|
122
|
+
end
|
|
123
|
+
rescue => e
|
|
124
|
+
puts "ERROR: Skipped #{x['type']} object '#{x['id']}' : '#{e.message}'."
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
result
|
|
90
128
|
end
|
|
91
|
-
result
|
|
92
129
|
end
|
|
130
|
+
@children
|
|
93
131
|
end
|
|
94
132
|
|
|
95
133
|
def each_dataverse(&block)
|
|
96
134
|
data = []
|
|
97
|
-
children
|
|
135
|
+
children do |child|
|
|
98
136
|
if child.is_a?(Dataverse)
|
|
99
137
|
data << (block_given? ? yield(child) : child)
|
|
100
138
|
data += child.each_dataverse(&block)
|
|
@@ -105,7 +143,7 @@ module Dataverse
|
|
|
105
143
|
|
|
106
144
|
def each_dataset(&block)
|
|
107
145
|
data = []
|
|
108
|
-
children
|
|
146
|
+
children do |child|
|
|
109
147
|
if child.is_a?(Dataverse)
|
|
110
148
|
data += child.each_dataset(&block)
|
|
111
149
|
elsif child.is_a?(Dataset)
|
data/lib/dataverse/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dataverse
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kris Dekeyser
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-06-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rest-client
|
|
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
74
|
version: '0'
|
|
75
75
|
requirements: []
|
|
76
|
-
rubygems_version: 3.
|
|
76
|
+
rubygems_version: 3.4.13
|
|
77
77
|
signing_key:
|
|
78
78
|
specification_version: 4
|
|
79
79
|
summary: Dataverse API.
|