ro-bundle 0.1.0
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 +15 -0
- data/.gitignore +11 -0
- data/.ruby-env +1 -0
- data/.ruby-gemset +2 -0
- data/.ruby-version +2 -0
- data/.travis.yml +11 -0
- data/Changes.rdoc +129 -0
- data/Gemfile +11 -0
- data/Licence.rdoc +29 -0
- data/Rakefile +29 -0
- data/ReadMe.rdoc +57 -0
- data/bin/dir2ro +48 -0
- data/bin/ro-bundle-info +45 -0
- data/bin/verify-ro-bundle +27 -0
- data/bin/zip2ro +57 -0
- data/lib/ro-bundle.rb +45 -0
- data/lib/ro-bundle/exceptions.rb +30 -0
- data/lib/ro-bundle/file.rb +323 -0
- data/lib/ro-bundle/ro/agent.rb +73 -0
- data/lib/ro-bundle/ro/aggregate.rb +107 -0
- data/lib/ro-bundle/ro/annotation.rb +89 -0
- data/lib/ro-bundle/ro/directory.rb +120 -0
- data/lib/ro-bundle/ro/manifest.rb +338 -0
- data/lib/ro-bundle/ro/provenance.rb +153 -0
- data/lib/ro-bundle/util.rb +57 -0
- data/lib/ro-bundle/version.rb +13 -0
- data/ro-bundle.gemspec +43 -0
- data/test/data/HelloAnyone.robundle +0 -0
- data/test/data/empty-manifest.json +1 -0
- data/test/data/example3-manifest.json +40 -0
- data/test/data/invalid-manifest.json +5 -0
- data/test/data/invalid-manifest.robundle +0 -0
- data/test/helpers/fake_manifest.rb +23 -0
- data/test/helpers/fake_provenance.rb +32 -0
- data/test/helpers/list_tests.rb +22 -0
- data/test/tc_add_annotation.rb +571 -0
- data/test/tc_agent.rb +63 -0
- data/test/tc_aggregate.rb +116 -0
- data/test/tc_annotation.rb +84 -0
- data/test/tc_create.rb +170 -0
- data/test/tc_manifest.rb +221 -0
- data/test/tc_provenance.rb +121 -0
- data/test/tc_read.rb +66 -0
- data/test/tc_remove.rb +140 -0
- data/test/tc_util.rb +64 -0
- data/test/ts_ro_bundle.rb +28 -0
- metadata +217 -0
@@ -0,0 +1,121 @@
|
|
1
|
+
#------------------------------------------------------------------------------
|
2
|
+
# Copyright (c) 2014 The University of Manchester, UK.
|
3
|
+
#
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
5
|
+
#
|
6
|
+
# Author: Robert Haines
|
7
|
+
#------------------------------------------------------------------------------
|
8
|
+
|
9
|
+
require 'test/unit'
|
10
|
+
require "ro-bundle"
|
11
|
+
require "helpers/fake_provenance"
|
12
|
+
|
13
|
+
class TestProvenance < Test::Unit::TestCase
|
14
|
+
|
15
|
+
def setup
|
16
|
+
@prov = FakeProvenance.new
|
17
|
+
|
18
|
+
@agent = ROBundle::Agent.new(
|
19
|
+
"Robert Haines",
|
20
|
+
"https://github.com/hainesr",
|
21
|
+
"http://orcid.org/0000-0002-9538-7919"
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_created_on
|
26
|
+
assert @prov.created_on.instance_of?(Time)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_change_created_on
|
30
|
+
old = @prov.created_on
|
31
|
+
now = Time.now.to_s
|
32
|
+
@prov.created_on = now
|
33
|
+
|
34
|
+
assert_equal now, @prov.created_on.to_s
|
35
|
+
assert_not_equal old.to_s, @prov.created_on.to_s
|
36
|
+
assert @prov.edited?
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_created_by
|
40
|
+
creator = @prov.created_by
|
41
|
+
assert creator.instance_of?(ROBundle::Agent)
|
42
|
+
assert_equal creator.name, "Robert Haines"
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_change_created_by
|
46
|
+
agent = ROBundle::Agent.new("Matt Gamble")
|
47
|
+
@prov.created_by = agent
|
48
|
+
|
49
|
+
assert_same agent, @prov.created_by
|
50
|
+
assert @prov.edited?
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_created_by_string_agent
|
54
|
+
old = @prov.created_by
|
55
|
+
agent = "Stian Soiland-Reyes"
|
56
|
+
@prov.created_by = agent
|
57
|
+
|
58
|
+
assert_not_same old, @prov.created_by
|
59
|
+
assert @prov.edited?
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_authored_on
|
63
|
+
assert_nil @prov.authored_on
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_change_authored_on
|
67
|
+
old = @prov.authored_on
|
68
|
+
now = Time.now.to_s
|
69
|
+
@prov.authored_on = now
|
70
|
+
|
71
|
+
assert_equal now, @prov.authored_on.to_s
|
72
|
+
assert_not_equal old.to_s, @prov.authored_on.to_s
|
73
|
+
assert @prov.edited?
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_authored_by
|
77
|
+
assert @prov.authored_by.instance_of?(Array)
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_add_author
|
81
|
+
name = "Mr. Bigglesworth"
|
82
|
+
|
83
|
+
assert @prov.authored_by.empty?
|
84
|
+
|
85
|
+
author = @prov.add_author(@agent)
|
86
|
+
assert @prov.authored_by.include?(@agent)
|
87
|
+
assert_same @agent, author
|
88
|
+
assert @prov.edited?
|
89
|
+
|
90
|
+
author = @prov.add_author(name)
|
91
|
+
assert name_in_agent_list(name, @prov.authored_by)
|
92
|
+
assert author.instance_of?(ROBundle::Agent)
|
93
|
+
assert @prov.edited?
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_remove_author_by_object
|
97
|
+
name = "Mr. Bigglesworth"
|
98
|
+
|
99
|
+
author = @prov.add_author(name)
|
100
|
+
refute @prov.authored_by.empty?
|
101
|
+
assert name_in_agent_list(name, @prov.authored_by)
|
102
|
+
|
103
|
+
@prov.remove_author(author)
|
104
|
+
assert @prov.authored_by.empty?
|
105
|
+
refute name_in_agent_list(name, @prov.authored_by)
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_remove_authors_by_name
|
109
|
+
name = "Robert Haines"
|
110
|
+
@prov.add_author(@agent)
|
111
|
+
@prov.add_author(name)
|
112
|
+
|
113
|
+
assert_equal 2, @prov.authored_by.length
|
114
|
+
assert name_in_agent_list(name, @prov.authored_by)
|
115
|
+
|
116
|
+
@prov.remove_author(name)
|
117
|
+
assert @prov.authored_by.empty?
|
118
|
+
refute name_in_agent_list(name, @prov.authored_by)
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
data/test/tc_read.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
#------------------------------------------------------------------------------
|
2
|
+
# Copyright (c) 2014 The University of Manchester, UK.
|
3
|
+
#
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
5
|
+
#
|
6
|
+
# Author: Robert Haines
|
7
|
+
#------------------------------------------------------------------------------
|
8
|
+
|
9
|
+
require 'test/unit'
|
10
|
+
require "ro-bundle"
|
11
|
+
|
12
|
+
class TestRead < Test::Unit::TestCase
|
13
|
+
|
14
|
+
def test_verify_valid
|
15
|
+
assert_nothing_raised(ZipContainer::MalformedContainerError, ZipContainer::ZipError) do
|
16
|
+
ROBundle::File.verify!($hello)
|
17
|
+
end
|
18
|
+
|
19
|
+
assert(ROBundle::File.verify($hello))
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_verify_invalid
|
23
|
+
assert_raises(ZipContainer::MalformedContainerError) do
|
24
|
+
ROBundle::File.verify!($invalid)
|
25
|
+
end
|
26
|
+
|
27
|
+
refute ROBundle::File.verify($invalid)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_manifest
|
31
|
+
ROBundle::File.open($hello) do |b|
|
32
|
+
assert_equal("/", b.id)
|
33
|
+
|
34
|
+
assert b.created_on.instance_of?(Time)
|
35
|
+
assert_nil b.authored_on
|
36
|
+
|
37
|
+
creator = b.created_by
|
38
|
+
assert creator.instance_of?(ROBundle::Agent)
|
39
|
+
|
40
|
+
author = b.authored_by
|
41
|
+
assert author.instance_of?(Array)
|
42
|
+
|
43
|
+
history = b.history
|
44
|
+
assert history.instance_of?(Array)
|
45
|
+
|
46
|
+
aggregates = b.aggregates
|
47
|
+
assert aggregates.instance_of?(Array)
|
48
|
+
|
49
|
+
annotations = b.annotations
|
50
|
+
assert annotations.instance_of?(Array)
|
51
|
+
|
52
|
+
refute b.commit_required?
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_aggregates
|
57
|
+
ROBundle::File.open($hello) do |b|
|
58
|
+
assert b.aggregate?(b.id)
|
59
|
+
assert b.aggregate?("/")
|
60
|
+
|
61
|
+
assert b.aggregate?("/inputs/name.txt")
|
62
|
+
assert b.aggregate?("inputs/name.txt")
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
data/test/tc_remove.rb
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
#------------------------------------------------------------------------------
|
2
|
+
# Copyright (c) 2014 The University of Manchester, UK.
|
3
|
+
#
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
5
|
+
#
|
6
|
+
# Author: Robert Haines
|
7
|
+
#------------------------------------------------------------------------------
|
8
|
+
|
9
|
+
require 'test/unit'
|
10
|
+
require "fileutils"
|
11
|
+
require "ro-bundle"
|
12
|
+
|
13
|
+
class TestRemove < Test::Unit::TestCase
|
14
|
+
|
15
|
+
def test_remove_entry
|
16
|
+
Dir.mktmpdir do |dir|
|
17
|
+
filename = File.join(dir, "test.bundle")
|
18
|
+
FileUtils.cp $hello, filename
|
19
|
+
|
20
|
+
rm_file = "workflow.wfbundle"
|
21
|
+
|
22
|
+
ROBundle::File.open(filename) do |b|
|
23
|
+
assert b.aggregate?(rm_file)
|
24
|
+
assert_not_nil b.find_entry(rm_file)
|
25
|
+
num_agg = b.aggregates.length
|
26
|
+
num_ann = b.annotations.length
|
27
|
+
|
28
|
+
b.remove(rm_file)
|
29
|
+
|
30
|
+
refute b.aggregate?(rm_file)
|
31
|
+
assert_nil b.find_entry(rm_file)
|
32
|
+
assert_equal num_agg - 1, b.aggregates.length
|
33
|
+
assert_equal num_ann - 4, b.annotations.length
|
34
|
+
end
|
35
|
+
|
36
|
+
removed_annotations = [
|
37
|
+
".ro/annotations/workflow.wfdesc.ttl",
|
38
|
+
".ro/annotations/d2757512-7149-4ff7-b7f8-78de3e3a2bd5.ttl"
|
39
|
+
]
|
40
|
+
|
41
|
+
ROBundle::File.open(filename) do |b|
|
42
|
+
assert_nil b.find_entry(rm_file)
|
43
|
+
removed_annotations.each do |ann|
|
44
|
+
assert_nil b.find_entry(ann, :include_hidden => true)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_remove_aggregate_by_filename
|
51
|
+
Dir.mktmpdir do |dir|
|
52
|
+
filename = File.join(dir, "test.bundle")
|
53
|
+
FileUtils.cp $hello, filename
|
54
|
+
|
55
|
+
rm_file = "workflow.wfbundle"
|
56
|
+
|
57
|
+
ROBundle::File.open(filename) do |b|
|
58
|
+
assert b.aggregate?(rm_file)
|
59
|
+
assert_not_nil b.find_entry(rm_file)
|
60
|
+
num_agg = b.aggregates.length
|
61
|
+
num_ann = b.annotations.length
|
62
|
+
|
63
|
+
b.remove_aggregate(rm_file)
|
64
|
+
|
65
|
+
refute b.aggregate?(rm_file)
|
66
|
+
assert_nil b.find_entry(rm_file)
|
67
|
+
assert_equal num_agg - 1, b.aggregates.length
|
68
|
+
assert_equal num_ann - 4, b.annotations.length
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_remove_aggregate_by_object
|
74
|
+
Dir.mktmpdir do |dir|
|
75
|
+
filename = File.join(dir, "test.bundle")
|
76
|
+
FileUtils.cp $hello, filename
|
77
|
+
|
78
|
+
ROBundle::File.open(filename) do |b|
|
79
|
+
rm_file = b.aggregates[0]
|
80
|
+
assert b.aggregate?(rm_file.file)
|
81
|
+
assert_not_nil b.find_entry(rm_file.file_entry)
|
82
|
+
num_agg = b.aggregates.length
|
83
|
+
num_ann = b.annotations.length
|
84
|
+
|
85
|
+
b.remove_aggregate(rm_file)
|
86
|
+
|
87
|
+
refute b.aggregate?(rm_file.file)
|
88
|
+
assert_nil b.find_entry(rm_file.file_entry)
|
89
|
+
assert_equal num_agg - 1, b.aggregates.length
|
90
|
+
assert_equal num_ann - 4, b.annotations.length
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_remove_aggregate_by_filename_keep_file
|
96
|
+
Dir.mktmpdir do |dir|
|
97
|
+
filename = File.join(dir, "test.bundle")
|
98
|
+
FileUtils.cp $hello, filename
|
99
|
+
|
100
|
+
rm_file = "workflow.wfbundle"
|
101
|
+
|
102
|
+
ROBundle::File.open(filename) do |b|
|
103
|
+
assert b.aggregate?(rm_file)
|
104
|
+
assert_not_nil b.find_entry(rm_file)
|
105
|
+
num_agg = b.aggregates.length
|
106
|
+
num_ann = b.annotations.length
|
107
|
+
|
108
|
+
b.remove_aggregate(rm_file, :keep_file => true)
|
109
|
+
|
110
|
+
refute b.aggregate?(rm_file)
|
111
|
+
assert_not_nil b.find_entry(rm_file)
|
112
|
+
assert_equal num_agg - 1, b.aggregates.length
|
113
|
+
assert_equal num_ann - 4, b.annotations.length
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_remove_aggregate_by_object_keep_file
|
119
|
+
Dir.mktmpdir do |dir|
|
120
|
+
filename = File.join(dir, "test.bundle")
|
121
|
+
FileUtils.cp $hello, filename
|
122
|
+
|
123
|
+
ROBundle::File.open(filename) do |b|
|
124
|
+
rm_file = b.aggregates[0]
|
125
|
+
assert b.aggregate?(rm_file.file)
|
126
|
+
assert_not_nil b.find_entry(rm_file.file_entry)
|
127
|
+
num_agg = b.aggregates.length
|
128
|
+
num_ann = b.annotations.length
|
129
|
+
|
130
|
+
b.remove_aggregate(rm_file, :keep_file => true)
|
131
|
+
|
132
|
+
refute b.aggregate?(rm_file.file)
|
133
|
+
assert_not_nil b.find_entry(rm_file.file_entry)
|
134
|
+
assert_equal num_agg - 1, b.aggregates.length
|
135
|
+
assert_equal num_ann - 4, b.annotations.length
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
end
|
data/test/tc_util.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
#------------------------------------------------------------------------------
|
2
|
+
# Copyright (c) 2014 The University of Manchester, UK.
|
3
|
+
#
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
5
|
+
#
|
6
|
+
# Author: Robert Haines
|
7
|
+
#------------------------------------------------------------------------------
|
8
|
+
|
9
|
+
require 'test/unit'
|
10
|
+
require "ro-bundle"
|
11
|
+
|
12
|
+
class TestUtil < Test::Unit::TestCase
|
13
|
+
|
14
|
+
def test_clean_json
|
15
|
+
json_ok = { :one => "one", :uri => URI.parse("/file.txt") }
|
16
|
+
json_nil = { :nil => nil }
|
17
|
+
json_empty = { :empty1 => "", :empty2 => [], :empty3 => {} }
|
18
|
+
json_mix = json_ok.merge(json_nil).merge(json_empty)
|
19
|
+
empty = {}
|
20
|
+
|
21
|
+
assert_same json_ok, ROBundle::Util.clean_json(json_ok)
|
22
|
+
assert_equal empty, ROBundle::Util.clean_json(json_nil)
|
23
|
+
assert_equal empty, ROBundle::Util.clean_json(json_empty)
|
24
|
+
assert_equal json_ok, ROBundle::Util.clean_json(json_mix)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_parse_time
|
28
|
+
now = Time.now
|
29
|
+
iso = now.iso8601
|
30
|
+
|
31
|
+
assert ROBundle::Util.parse_time(iso).instance_of?(Time)
|
32
|
+
assert_nil ROBundle::Util.parse_time(nil)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_absolute_uri
|
36
|
+
assert ROBundle::Util.is_absolute_uri?("http://example.com/test.txt")
|
37
|
+
assert ROBundle::Util.is_absolute_uri?("urn:uuid:and-so-on")
|
38
|
+
assert ROBundle::Util.is_absolute_uri?(URI.parse("http://example.com/test.txt"))
|
39
|
+
assert ROBundle::Util.is_absolute_uri?(URI.parse("urn:uuid:and-so-on"))
|
40
|
+
refute ROBundle::Util.is_absolute_uri?("/file.txt")
|
41
|
+
refute ROBundle::Util.is_absolute_uri?("file.txt")
|
42
|
+
refute ROBundle::Util.is_absolute_uri?(URI.parse("/file.txt"))
|
43
|
+
refute ROBundle::Util.is_absolute_uri?(URI.parse("file.txt"))
|
44
|
+
refute ROBundle::Util.is_absolute_uri?(":file.txt")
|
45
|
+
refute ROBundle::Util.is_absolute_uri?("")
|
46
|
+
refute ROBundle::Util.is_absolute_uri?(nil)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_strip_slash
|
50
|
+
str1 = ""
|
51
|
+
str2 = "/"
|
52
|
+
str3 = "test"
|
53
|
+
str4 = "test/path"
|
54
|
+
str5 = "test/path/trailing/"
|
55
|
+
|
56
|
+
assert_nil ROBundle::Util.strip_leading_slash(nil)
|
57
|
+
assert_equal str1, ROBundle::Util.strip_leading_slash(str1)
|
58
|
+
assert_equal str1, ROBundle::Util.strip_leading_slash(str2)
|
59
|
+
assert_equal str3, ROBundle::Util.strip_leading_slash("/#{str3}")
|
60
|
+
assert_equal str4, ROBundle::Util.strip_leading_slash("/#{str4}")
|
61
|
+
assert_equal str5, ROBundle::Util.strip_leading_slash("/#{str5}")
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#------------------------------------------------------------------------------
|
2
|
+
# Copyright (c) 2014 The University of Manchester, UK.
|
3
|
+
#
|
4
|
+
# BSD Licenced. See LICENCE.rdoc for details.
|
5
|
+
#
|
6
|
+
# Author: Robert Haines
|
7
|
+
#------------------------------------------------------------------------------
|
8
|
+
|
9
|
+
require 'coveralls'
|
10
|
+
Coveralls.wear!
|
11
|
+
|
12
|
+
# Example data files
|
13
|
+
$hello = "test/data/HelloAnyone.robundle"
|
14
|
+
$invalid = "test/data/invalid-manifest.robundle"
|
15
|
+
$man_ex3 = "test/data/example3-manifest.json"
|
16
|
+
$man_empty = "test/data/empty-manifest.json"
|
17
|
+
$man_invalid = "test/data/invalid-manifest.json"
|
18
|
+
|
19
|
+
require "tc_util"
|
20
|
+
require "tc_agent"
|
21
|
+
require "tc_provenance"
|
22
|
+
require "tc_annotation"
|
23
|
+
require "tc_aggregate"
|
24
|
+
require "tc_manifest"
|
25
|
+
require "tc_read"
|
26
|
+
require "tc_create"
|
27
|
+
require "tc_add_annotation"
|
28
|
+
require "tc_remove"
|
metadata
ADDED
@@ -0,0 +1,217 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ro-bundle
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Robert Haines
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-08-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.1'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rdoc
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.1'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: coveralls
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: ucf
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: json
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.8'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.8'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: uuid
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '2.3'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.3'
|
111
|
+
description: This library provides an API for manipulating Research Object (RO) bundles.
|
112
|
+
The RO bundle specification can be found at http://purl.org/wf4ever/ro-bundle.
|
113
|
+
email:
|
114
|
+
- support@mygrid.org.uk
|
115
|
+
executables:
|
116
|
+
- dir2ro
|
117
|
+
- ro-bundle-info
|
118
|
+
- verify-ro-bundle
|
119
|
+
- zip2ro
|
120
|
+
extensions: []
|
121
|
+
extra_rdoc_files:
|
122
|
+
- Changes.rdoc
|
123
|
+
- Licence.rdoc
|
124
|
+
- ReadMe.rdoc
|
125
|
+
files:
|
126
|
+
- .gitignore
|
127
|
+
- .ruby-env
|
128
|
+
- .ruby-gemset
|
129
|
+
- .ruby-version
|
130
|
+
- .travis.yml
|
131
|
+
- Changes.rdoc
|
132
|
+
- Gemfile
|
133
|
+
- Licence.rdoc
|
134
|
+
- Rakefile
|
135
|
+
- ReadMe.rdoc
|
136
|
+
- bin/dir2ro
|
137
|
+
- bin/ro-bundle-info
|
138
|
+
- bin/verify-ro-bundle
|
139
|
+
- bin/zip2ro
|
140
|
+
- lib/ro-bundle.rb
|
141
|
+
- lib/ro-bundle/exceptions.rb
|
142
|
+
- lib/ro-bundle/file.rb
|
143
|
+
- lib/ro-bundle/ro/agent.rb
|
144
|
+
- lib/ro-bundle/ro/aggregate.rb
|
145
|
+
- lib/ro-bundle/ro/annotation.rb
|
146
|
+
- lib/ro-bundle/ro/directory.rb
|
147
|
+
- lib/ro-bundle/ro/manifest.rb
|
148
|
+
- lib/ro-bundle/ro/provenance.rb
|
149
|
+
- lib/ro-bundle/util.rb
|
150
|
+
- lib/ro-bundle/version.rb
|
151
|
+
- ro-bundle.gemspec
|
152
|
+
- test/data/HelloAnyone.robundle
|
153
|
+
- test/data/empty-manifest.json
|
154
|
+
- test/data/example3-manifest.json
|
155
|
+
- test/data/invalid-manifest.json
|
156
|
+
- test/data/invalid-manifest.robundle
|
157
|
+
- test/helpers/fake_manifest.rb
|
158
|
+
- test/helpers/fake_provenance.rb
|
159
|
+
- test/helpers/list_tests.rb
|
160
|
+
- test/tc_add_annotation.rb
|
161
|
+
- test/tc_agent.rb
|
162
|
+
- test/tc_aggregate.rb
|
163
|
+
- test/tc_annotation.rb
|
164
|
+
- test/tc_create.rb
|
165
|
+
- test/tc_manifest.rb
|
166
|
+
- test/tc_provenance.rb
|
167
|
+
- test/tc_read.rb
|
168
|
+
- test/tc_remove.rb
|
169
|
+
- test/tc_util.rb
|
170
|
+
- test/ts_ro_bundle.rb
|
171
|
+
homepage: http://www.taverna.org.uk
|
172
|
+
licenses:
|
173
|
+
- BSD
|
174
|
+
metadata: {}
|
175
|
+
post_install_message:
|
176
|
+
rdoc_options:
|
177
|
+
- -N
|
178
|
+
- --tab-width=2
|
179
|
+
- --main=ReadMe.rdoc
|
180
|
+
require_paths:
|
181
|
+
- lib
|
182
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - ! '>='
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: 1.9.3
|
187
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
|
+
requirements:
|
189
|
+
- - ! '>='
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '0'
|
192
|
+
requirements: []
|
193
|
+
rubyforge_project:
|
194
|
+
rubygems_version: 2.2.2
|
195
|
+
signing_key:
|
196
|
+
specification_version: 4
|
197
|
+
summary: This library provides an API for manipulating Research Object (RO) bundles.
|
198
|
+
test_files:
|
199
|
+
- test/data/HelloAnyone.robundle
|
200
|
+
- test/data/empty-manifest.json
|
201
|
+
- test/data/example3-manifest.json
|
202
|
+
- test/data/invalid-manifest.json
|
203
|
+
- test/data/invalid-manifest.robundle
|
204
|
+
- test/helpers/fake_manifest.rb
|
205
|
+
- test/helpers/fake_provenance.rb
|
206
|
+
- test/helpers/list_tests.rb
|
207
|
+
- test/tc_add_annotation.rb
|
208
|
+
- test/tc_agent.rb
|
209
|
+
- test/tc_aggregate.rb
|
210
|
+
- test/tc_annotation.rb
|
211
|
+
- test/tc_create.rb
|
212
|
+
- test/tc_manifest.rb
|
213
|
+
- test/tc_provenance.rb
|
214
|
+
- test/tc_read.rb
|
215
|
+
- test/tc_remove.rb
|
216
|
+
- test/tc_util.rb
|
217
|
+
- test/ts_ro_bundle.rb
|