ro-bundle 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|