jrdspace 0.0.13 → 0.0.14
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/README.md +2 -0
- data/lib/dspace.rb +2 -1
- data/lib/dspace/dcommunity.rb +15 -0
- data/lib/dspace/dconfig.rb +11 -0
- data/lib/dspace/dgroup.rb +2 -4
- data/lib/dspace/ditem.rb +1 -1
- data/lib/dspace/dmetadata.rb +28 -2
- data/lib/dspace/dspace.rb +47 -7
- data/lib/dspace/dwork.rb +1 -1
- data/lib/dspace/version.rb +1 -1
- metadata +27 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b98388fea631f9ca928d3be6aea51fc3d3663b8
|
4
|
+
data.tar.gz: f4c4478a4f920bf3c414271ef51e19cdf285cfe9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a996c7423b56fe2a17bc8f81a5dd6fa07724f5d861c45f0a5d79e12c41b7ecf6a7df0296962cb474c2930dfaef4bd5eee3c10aff54a5b8eca230bca5b2912f6
|
7
|
+
data.tar.gz: 24b192ddef65b05a36ba976e65d4c612279efb84b64bde039b0f4126973d89fd7f4a6836b0161c855c709c54841457ea2a14ad1c0595960fe3ebb286a1fc7221
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
jrdspace-*.gem
|
data/README.md
CHANGED
@@ -10,6 +10,8 @@ The companion project [cli-dspace](https://github.com/akinom/dspace-cli) contai
|
|
10
10
|
|
11
11
|
Documentation is also available at [rubydoc.info](http://www.rubydoc.info/github/akinom/dspace-jruby)
|
12
12
|
|
13
|
+
I would like to hear from you if you download and use jrdsapce. Please do send me your feedback and PRs.
|
14
|
+
|
13
15
|
## Installation
|
14
16
|
|
15
17
|
### Prerequisite
|
data/lib/dspace.rb
CHANGED
data/lib/dspace/dcommunity.rb
CHANGED
@@ -29,4 +29,19 @@ class DCommunity
|
|
29
29
|
return comm
|
30
30
|
end
|
31
31
|
|
32
|
+
def getCollections
|
33
|
+
return DCommunity.getCollections(self.dso)
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.getCollections(com)
|
37
|
+
colls = []
|
38
|
+
if (not com.is_a? Array) then
|
39
|
+
com = [com]
|
40
|
+
end
|
41
|
+
com.each do |c|
|
42
|
+
colls = colls + c.getCollections.collect { |c| c }
|
43
|
+
colls = colls + getCollections(c.getSubcommunities.collect{ |sc| sc})
|
44
|
+
end
|
45
|
+
return colls
|
46
|
+
end
|
32
47
|
end
|
data/lib/dspace/dgroup.rb
CHANGED
@@ -50,11 +50,9 @@ class DGroup
|
|
50
50
|
end
|
51
51
|
|
52
52
|
##
|
53
|
-
# return EPerson and Groups that are (direct)
|
54
|
-
#
|
55
|
-
# name must be a string
|
53
|
+
# return EPerson and Groups that are (direct) members of this Group
|
56
54
|
def members
|
57
|
-
return
|
55
|
+
return @obj.getMemberGroups.collect { |p| p } + @obj.getMembers.collect { |p| p }
|
58
56
|
end
|
59
57
|
|
60
58
|
##
|
data/lib/dspace/ditem.rb
CHANGED
data/lib/dspace/dmetadata.rb
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
class DMetadataSchema
|
2
|
+
include DSO
|
3
|
+
|
4
|
+
def self.all
|
5
|
+
java_import org.dspace.content.MetadataSchema
|
6
|
+
MetadataSchema.findAll DSpace.context
|
7
|
+
end
|
8
|
+
|
9
|
+
def fields
|
10
|
+
java_import org.dspace.content.MetadataField
|
11
|
+
MetadataField.findAllInSchema(DSpace.context, @obj.getSchemaID)
|
12
|
+
end
|
13
|
+
|
14
|
+
def inspect
|
15
|
+
return "nil" if @obj.nil?
|
16
|
+
return "#<#{self.class.name}:#{@obj.getName}>"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
1
20
|
class DMetadataField
|
2
21
|
include DSO
|
3
22
|
|
@@ -17,13 +36,20 @@ class DMetadataField
|
|
17
36
|
return MetadataField.find_by_element(DSpace.context, schm.getSchemaID, element, qualifier)
|
18
37
|
end
|
19
38
|
|
20
|
-
|
39
|
+
##
|
40
|
+
# return "nil" or <schema>.<element>[.<qualifier>]
|
41
|
+
def fullName
|
21
42
|
return "nil" if @obj.nil?
|
22
43
|
java_import org.dspace.content.MetadataSchema
|
23
44
|
schema = MetadataSchema.find(DSpace.context, @obj.schemaID)
|
24
45
|
str = "#{schema.getName}.#{@obj.element}"
|
25
46
|
str += ".#{@obj.qualifier}" if @obj.qualifier
|
26
|
-
return
|
47
|
+
return str
|
48
|
+
end
|
49
|
+
|
50
|
+
def inspect
|
51
|
+
return "nil" if @obj.nil?
|
52
|
+
return "#<#{self.class.name}:#{fullName}>"
|
27
53
|
end
|
28
54
|
|
29
55
|
end
|
data/lib/dspace/dspace.rb
CHANGED
@@ -84,6 +84,12 @@ module DSpace
|
|
84
84
|
klass.send :new, dso
|
85
85
|
end
|
86
86
|
|
87
|
+
##
|
88
|
+
# return DSPace.create(dso).inspect or "nil"
|
89
|
+
def self.inspect(dso)
|
90
|
+
dso = DSpace.create(dso) if dso
|
91
|
+
dso.inspect
|
92
|
+
end
|
87
93
|
##
|
88
94
|
# return the DSpace object that is identified by the given type and identifier
|
89
95
|
#
|
@@ -107,21 +113,36 @@ module DSpace
|
|
107
113
|
return klass.send :find, id
|
108
114
|
end
|
109
115
|
|
110
|
-
def self.fromString(
|
116
|
+
def self.fromString(type_id_or_handle_or_title)
|
111
117
|
#TODO handle MetadataField string
|
112
|
-
|
113
|
-
|
114
|
-
|
118
|
+
if type_id_or_handle_or_title.start_with? 'TITLE' then
|
119
|
+
str = type_id_or_handle_or_title[6..-1]
|
120
|
+
dsos = DSpace.findByMetadataValue('dc.title', str, DConstants::ITEM)
|
121
|
+
if (dsos.length > 1) then
|
122
|
+
raise "multiple matches for #{type_id_or_handle_or_title}"
|
123
|
+
end
|
124
|
+
return dsos[0]
|
115
125
|
else
|
116
|
-
|
117
|
-
|
126
|
+
splits = type_id_or_handle_or_title.split('.', 2)
|
127
|
+
if (2 == splits.length) then
|
128
|
+
self.find(splits[0].upcase, splits[1])
|
129
|
+
else
|
130
|
+
java_import org.dspace.handle.HandleManager
|
131
|
+
return HandleManager.resolve_to_object(DSpace.context, type_id_or_handle_or_title);
|
132
|
+
end
|
118
133
|
end
|
119
134
|
end
|
120
135
|
|
136
|
+
##
|
137
|
+
# get dpace service manager
|
138
|
+
def self.getServiceManager
|
139
|
+
org.dspace.utils.DSpace.new().getServiceManager()
|
140
|
+
end
|
141
|
+
|
121
142
|
##
|
122
143
|
# get a dspace service by name
|
123
144
|
def self.getService(service_name, java_klass)
|
124
|
-
|
145
|
+
getServiceManager().getServiceByName(service_name,java_klass)
|
125
146
|
end
|
126
147
|
|
127
148
|
##
|
@@ -164,6 +185,25 @@ module DSpace
|
|
164
185
|
return dsos
|
165
186
|
end
|
166
187
|
|
188
|
+
def self.findByGroupPolicy(group_ref_or_name, action_or_nil, resource_type_or_nil)
|
189
|
+
java_import org.dspace.eperson.Group
|
190
|
+
java_import org.dspace.storage.rdbms.DatabaseManager
|
191
|
+
|
192
|
+
group = DGroup.find(group_ref_or_name) if group_ref_or_name.is_a? String
|
193
|
+
raise "must give valied group" if group == nil or not group.is_a? Java::OrgDspaceEperson::Group
|
194
|
+
|
195
|
+
sql = "SELECT RESOURCE_ID, RESOURCE_TYPE_ID FROM RESOURCEPOLICY WHERE EPERSONGROUP_ID = #{group.getID} ";
|
196
|
+
sql += "AND ACTION_ID = #{action_or_nil} " if action_or_nil
|
197
|
+
sql += "AND RESOURCE_TYPE_ID = #{resource_type_or_nil} " if resource_type_or_nil
|
198
|
+
|
199
|
+
tri = DatabaseManager.queryTable(DSpace.context, "MetadataValue", sql)
|
200
|
+
dsos = [];
|
201
|
+
while (iter = tri.next())
|
202
|
+
dsos << self.find(iter.getIntColumn("resource_type_id"), iter.getIntColumn("resource_id"))
|
203
|
+
end
|
204
|
+
tri.close
|
205
|
+
return dsos
|
206
|
+
end
|
167
207
|
##
|
168
208
|
# print available static methods for the give classes
|
169
209
|
def self.help(klasses = [DCommunity, DCollection, DItem, DBundle, DBitstream, DEPerson,
|
data/lib/dspace/dwork.rb
CHANGED
data/lib/dspace/version.rb
CHANGED
metadata
CHANGED
@@ -1,72 +1,73 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jrdspace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Monika Mevenkamp
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jar
|
15
|
-
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
|
-
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
21
23
|
requirements:
|
22
24
|
- - '>='
|
23
25
|
- !ruby/object:Gem::Version
|
24
26
|
version: '0'
|
25
|
-
prerelease: false
|
26
|
-
type: :runtime
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
|
-
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
|
-
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
35
37
|
requirements:
|
36
38
|
- - '>='
|
37
39
|
- !ruby/object:Gem::Version
|
38
40
|
version: '0'
|
39
|
-
prerelease: false
|
40
|
-
type: :runtime
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
|
-
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.10'
|
48
|
-
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
49
51
|
requirements:
|
50
52
|
- - ~>
|
51
53
|
- !ruby/object:Gem::Version
|
52
54
|
version: '1.10'
|
53
|
-
prerelease: false
|
54
|
-
type: :development
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
|
-
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '10.0'
|
62
|
-
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
65
|
requirements:
|
64
66
|
- - ~>
|
65
67
|
- !ruby/object:Gem::Version
|
66
68
|
version: '10.0'
|
67
|
-
|
68
|
-
|
69
|
-
description: jrdspace enables scripting of the dspace-api Java objects in a DSpace installation; it includes an interactive console
|
69
|
+
description: jrdspace enables scripting of the dspace-api Java objects in a DSpace
|
70
|
+
installation; it includes an interactive console
|
70
71
|
email:
|
71
72
|
- monikam@princeton.edu
|
72
73
|
executables:
|
@@ -74,6 +75,7 @@ executables:
|
|
74
75
|
extensions: []
|
75
76
|
extra_rdoc_files: []
|
76
77
|
files:
|
78
|
+
- .gitignore
|
77
79
|
- LICENSE.txt
|
78
80
|
- README.md
|
79
81
|
- Rakefile
|
@@ -84,6 +86,7 @@ files:
|
|
84
86
|
- lib/dspace/dbundle.rb
|
85
87
|
- lib/dspace/dcollection.rb
|
86
88
|
- lib/dspace/dcommunity.rb
|
89
|
+
- lib/dspace/dconfig.rb
|
87
90
|
- lib/dspace/dconstants.rb
|
88
91
|
- lib/dspace/ddspaceobject.rb
|
89
92
|
- lib/dspace/deperson.rb
|
@@ -99,7 +102,7 @@ homepage: https://github.com/akinom/dspace-jruby
|
|
99
102
|
licenses:
|
100
103
|
- MIT
|
101
104
|
metadata: {}
|
102
|
-
post_install_message:
|
105
|
+
post_install_message:
|
103
106
|
rdoc_options: []
|
104
107
|
require_paths:
|
105
108
|
- lib
|
@@ -114,9 +117,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
117
|
- !ruby/object:Gem::Version
|
115
118
|
version: '0'
|
116
119
|
requirements: []
|
117
|
-
rubyforge_project:
|
118
|
-
rubygems_version: 2.
|
119
|
-
signing_key:
|
120
|
+
rubyforge_project:
|
121
|
+
rubygems_version: 2.0.14.1
|
122
|
+
signing_key:
|
120
123
|
specification_version: 4
|
121
124
|
summary: Jruby classes that interact with the dspace-api Java classes - v5
|
122
125
|
test_files: []
|