dataverse 0.1.8 → 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 +3 -3
- data/lib/dataverse/base.rb +7 -6
- data/lib/dataverse/dataverse.rb +46 -9
- 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
|
@@ -19,7 +19,7 @@ GEM
|
|
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)
|
@@ -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/dataverse.rb
CHANGED
@@ -74,28 +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'])
|
87
88
|
result << ds if ds.version
|
88
89
|
else
|
89
90
|
raise Error.new("Unsupported type: #{x['type']} (#{x['name']})")
|
90
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
|
91
128
|
end
|
92
|
-
result
|
93
129
|
end
|
130
|
+
@children
|
94
131
|
end
|
95
132
|
|
96
133
|
def each_dataverse(&block)
|
97
134
|
data = []
|
98
|
-
children
|
135
|
+
children do |child|
|
99
136
|
if child.is_a?(Dataverse)
|
100
137
|
data << (block_given? ? yield(child) : child)
|
101
138
|
data += child.each_dataverse(&block)
|
@@ -106,7 +143,7 @@ module Dataverse
|
|
106
143
|
|
107
144
|
def each_dataset(&block)
|
108
145
|
data = []
|
109
|
-
children
|
146
|
+
children do |child|
|
110
147
|
if child.is_a?(Dataverse)
|
111
148
|
data += child.each_dataset(&block)
|
112
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.
|