resync 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGES.md +8 -0
- data/README.md +14 -14
- data/lib/resync/capability_list.rb +2 -0
- data/lib/resync/change_dump_index.rb +15 -0
- data/lib/resync/change_list_index.rb +0 -11
- data/lib/resync/resource_dump_index.rb +15 -0
- data/lib/resync/shared/base_resource_list.rb +1 -0
- data/lib/resync/shared/sorted_resource_list.rb +7 -0
- data/lib/resync/types/change.rb +2 -1
- data/lib/resync/types/change_frequency.rb +1 -0
- data/lib/resync/version.rb +1 -1
- data/lib/resync/xml_parser.rb +3 -1
- data/spec/acceptance/xml_parser_spec.rb +57 -0
- data/spec/data/changedump-index.xml +22 -0
- data/spec/data/resourcedump-index.xml +21 -0
- data/spec/unit/resync/change_dump_index_spec.rb +49 -0
- data/spec/unit/resync/resource_dump_index_spec.rb +53 -0
- metadata +13 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ac849438f247e3776ef21a93c6466e83e3bb45f
|
4
|
+
data.tar.gz: 184a1d96dd47fd6bc0c1b413d7cbc318411e5e3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cdd7b2571b0caaea6aaeff82212072edbfc5f3b020d4c924c0cec227fa8f2c0ab8c1c1f1ee88171f8d2ca5c1ce0379c01db56ae40013db9375354c3a6533a41
|
7
|
+
data.tar.gz: ac5c5df6d0c6f3c02f0dbde7c6a4c79b9b0aeb340a46a33cf3e01525f8383805eb849db0a0e8bda7a72fa11d7c6b46638a9dac00f16357ba6d7f92a6741e7f3d
|
data/CHANGES.md
ADDED
data/README.md
CHANGED
@@ -8,10 +8,6 @@ It consists of the following:
|
|
8
8
|
- Classes for the [major sub-structures](http://www.openarchives.org/rs/1.0/resourcesync#DocumentFormats) of those documents, such as the `<url>` and `<sitemap>` tags (subsumed under the [Resource](lib/resync/resource.rb) class) defined by the Sitemap specification, as well as the ResourceSync-specific `<rs:ln>` and `<rs:md>` tags (the [Link](lib/resync/link.rb) and [Metadata](lib/resync/metadata.rb) classes, respectively).
|
9
9
|
- An [XMLParser](lib/resync/xml_parser.rb) class that can take a ResourceSync-augmented Sitemap document (in the form of an `REXML::Element`, an `REXML::Document`, a string, an `IO`, or something sufficiently `IO`-like that `REXML::Document` can parse it) and produce an instance of the appropriate class based on the `capability` attribute in the root element's metadata.
|
10
10
|
|
11
|
-
## Status
|
12
|
-
|
13
|
-
This is a work in progress. We welcome bug reports and feature requests (particularly on the document creation side, which our use cases haven't really explored).
|
14
|
-
|
15
11
|
## Usage
|
16
12
|
|
17
13
|
### Parsing a ResourceSync document
|
@@ -29,10 +25,10 @@ capability_list = Resync::XMLParser.parse(data)
|
|
29
25
|
require 'resync'
|
30
26
|
|
31
27
|
change_list = Resync::ChangeList.new(
|
32
|
-
links: [ Resync::Link.new(rel
|
28
|
+
links: [ Resync::Link.new(rel: 'up', href: 'http://example.com/my-dataset/my-capability-list.xml') ],
|
33
29
|
metadata: Resync::Metadata.new(
|
34
|
-
capability
|
35
|
-
from_time
|
30
|
+
capability: 'changelist',
|
31
|
+
from_time: Time.utc(2013, 1, 3)
|
36
32
|
)
|
37
33
|
resources: [
|
38
34
|
# ... generate list of changes here ...
|
@@ -47,28 +43,32 @@ formatter.write(xml, $stdout)
|
|
47
43
|
|
48
44
|
[resync-client](https://github.com/dmolesUC3/resync-client), a Ruby client library for ResourceSync.
|
49
45
|
|
50
|
-
##
|
46
|
+
## Status
|
47
|
+
|
48
|
+
This is a work in progress. Bug reports and feature requests are welcome (particularly on the document creation side, which our use cases haven't really explored).
|
49
|
+
|
50
|
+
### Known limitations
|
51
51
|
|
52
|
-
|
52
|
+
#### Structural inconvenience and unnecessary repetition
|
53
53
|
|
54
54
|
There are certain well-specified relationships between elements: most document types should always have a link with an `up` relationship, many resources should have metadata with a defined `capability` attribute, and so on. In some cases there are convenience getters for these attributes on the 'parent' object (e.g. you can ask for the `capability` directly without violating the law of Demeter), but there generally aren't corresponding convenience setters, or convenience initializer parameters.
|
55
55
|
|
56
56
|
Document types (`ChangeList`, `ResourceList`, etc.) will create a `Metadata` with the appropriate capability for themselves if none is specified, but if they're initialized with one that doesn't declare a capability, they'll raise an exception rather than fill it in (just as they'll raise an exception if the wrong capability is specified).
|
57
57
|
|
58
|
-
|
58
|
+
#### Logical relationships between elements
|
59
59
|
|
60
60
|
A `ChangeList` should contain only resources with `Metadata` declaring a `change` type. The resources in a `ResourceDumpManifest` should each declare a `path` indicating their locations in the ZIP file. `resync` doesn't currently do anything to enforce, validate, or assist in compliance with these and similar restrictions.
|
61
61
|
|
62
62
|
(An exception: document types will complain if initialized with `Metadata` having the wrong capability.)
|
63
63
|
|
64
|
-
|
64
|
+
#### Time attribute requirements
|
65
65
|
|
66
66
|
The required/forbidden time attributes defined in Appendix A,
|
67
67
|
"[Time Attribute Requirements](http://www.openarchives.org/rs/1.0/resourcesync#TimeAttributeReqs)",
|
68
68
|
of the ResourceSync specification are not enforced; it's possible to
|
69
69
|
create, e.g., a `ResourceList` with a `from_time` on its metadata, or a `ChangeList` with members whose metadata does not declare a `modified_time`, even though both scenarios are forbidden by the specification.
|
70
70
|
|
71
|
-
|
71
|
+
#### Value restrictions from XML schemata
|
72
72
|
|
73
73
|
The [ResourceSync schema](http://www.openarchives.org/rs/0.9.1/resourcesync.xsd) defines restrictions on the values of several attributes:
|
74
74
|
|
@@ -83,10 +83,10 @@ The [Sitemap](http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd) and [Site
|
|
83
83
|
|
84
84
|
None of these restrictions are currently enforced by `resync`.
|
85
85
|
|
86
|
-
|
86
|
+
#### Element order
|
87
87
|
|
88
88
|
When reading a ResourceSync document from XML and writing it back out, `<rs:ln>` elements will always appear before `<rs:md>` elements, regardless of their order in the original source.
|
89
89
|
|
90
|
-
|
90
|
+
#### Namespace weirdness
|
91
91
|
|
92
92
|
The [XML::Mapping](https://github.com/multi-io/xml-mapping) library `resync` uses doesn't support namespaces, so namespace handling in `resync` is a bit hacky. In particular, you may see strange behavior when using `<rs:ln>`, `<rs:md>`, `<url>`, or `<sitemap>` tags outside the context of a `<urlset>`/`<sitemapindex>`.
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative 'shared/sorted_resource_list'
|
2
|
+
require_relative 'shared/sitemap_index'
|
3
|
+
|
4
|
+
module Resync
|
5
|
+
# A change dump index. See under section 13.1,
|
6
|
+
# "{http://www.openarchives.org/rs/1.0/resourcesync#ChangeDumpIndex Change Dump}",
|
7
|
+
# in the ResourceSync specification.
|
8
|
+
class ChangeDumpIndex < SortedResourceList
|
9
|
+
include ::XML::Mapping
|
10
|
+
include SitemapIndex
|
11
|
+
|
12
|
+
# The capability provided by this type.
|
13
|
+
CAPABILITY = 'changedump'
|
14
|
+
end
|
15
|
+
end
|
@@ -11,16 +11,5 @@ module Resync
|
|
11
11
|
|
12
12
|
# The capability provided by this type.
|
13
13
|
CAPABILITY = 'changelist'
|
14
|
-
|
15
|
-
# use_mapping :sitemapindex
|
16
|
-
# root_element_name 'sitemapindex'
|
17
|
-
# array_node :resources, 'sitemap', class: Resource, default_value: [], sub_mapping: :_default
|
18
|
-
#
|
19
|
-
# # Ensures that an index is always written as a +<sitemapindex>+.
|
20
|
-
# # Overrides +::XML::Mapping.save_to_xml+.
|
21
|
-
# def save_to_xml(options = { mapping: :_default })
|
22
|
-
# options = options.merge(mapping: :sitemapindex)
|
23
|
-
# super(options)
|
24
|
-
# end
|
25
14
|
end
|
26
15
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative 'shared/base_resource_list'
|
2
|
+
require_relative 'shared/sitemap_index'
|
3
|
+
|
4
|
+
module Resync
|
5
|
+
# A resource dump index. See under section 11.1,
|
6
|
+
# "{http://www.openarchives.org/rs/1.0/resourcesync#ResourceDumpIndex Resource Dump}",
|
7
|
+
# in the ResourceSync specification.
|
8
|
+
class ResourceDumpIndex < BaseResourceList
|
9
|
+
include ::XML::Mapping
|
10
|
+
include SitemapIndex
|
11
|
+
|
12
|
+
# The capability provided by this type.
|
13
|
+
CAPABILITY = 'resourcedump'
|
14
|
+
end
|
15
|
+
end
|
@@ -19,13 +19,20 @@ module Resync
|
|
19
19
|
# ------------------------------------------------------------
|
20
20
|
# Custom accessors
|
21
21
|
|
22
|
+
# @return [Hash<URI, Array<Resource>>] resources grouped by URI.
|
23
|
+
# Order is not guaranteed.
|
22
24
|
attr_reader :resources_by_uri
|
23
25
|
|
26
|
+
# @param uri [URI] the URI of the resource
|
27
|
+
# @return [Resource] the resource with the most recent modified time
|
28
|
+
# for the specified URI.
|
24
29
|
def latest_for(uri:)
|
25
30
|
uri = XML.to_uri(uri)
|
26
31
|
@resources_by_uri[uri].last
|
27
32
|
end
|
28
33
|
|
34
|
+
# @return [Array<URI>] the set of all URIs for which this list has
|
35
|
+
# resources. Order is not guaranteed.
|
29
36
|
def all_uris
|
30
37
|
@resources_by_uri.keys
|
31
38
|
end
|
data/lib/resync/types/change.rb
CHANGED
@@ -2,7 +2,8 @@ require 'ruby-enum'
|
|
2
2
|
|
3
3
|
module Resync
|
4
4
|
module Types
|
5
|
-
# The type of change indicated by a reference in a
|
5
|
+
# The type of change indicated by a reference in a {ChangeList}, {ChangeDump}, etc.
|
6
|
+
# Values: +CREATED+, +UPDATED+, +DELETED+
|
6
7
|
class Change
|
7
8
|
include Ruby::Enum
|
8
9
|
|
data/lib/resync/version.rb
CHANGED
data/lib/resync/xml_parser.rb
CHANGED
@@ -1045,5 +1045,62 @@ module Resync
|
|
1045
1045
|
expect(ln.length).to eq(8876)
|
1046
1046
|
expect(ln.mime_type).to be_mime_type('text/html')
|
1047
1047
|
end
|
1048
|
+
|
1049
|
+
it 'parses a change dump index' do
|
1050
|
+
data = File.read('spec/data/changedump-index.xml')
|
1051
|
+
sitemapindex = XMLParser.parse(data)
|
1052
|
+
expect(sitemapindex).to be_a(ChangeDumpIndex)
|
1053
|
+
|
1054
|
+
links = sitemapindex.links
|
1055
|
+
expect(links.size).to eq(1)
|
1056
|
+
ln0 = links[0]
|
1057
|
+
expect(ln0.rel).to eq('up')
|
1058
|
+
expect(ln0.uri).to eq(URI('http://example.com/dataset1/capabilitylist.xml'))
|
1059
|
+
|
1060
|
+
md = sitemapindex.metadata
|
1061
|
+
expect(md.capability).to eq('changedump')
|
1062
|
+
expect(md.from_time).to be_time(Time.utc(2013, 1, 1))
|
1063
|
+
|
1064
|
+
sitemaps = sitemapindex.resources
|
1065
|
+
expect(sitemaps.size).to eq(3)
|
1066
|
+
|
1067
|
+
expected_froms = [Time.utc(2013, 1, 1), Time.utc(2013, 1, 2), Time.utc(2013, 1, 3)]
|
1068
|
+
expected_untils = [Time.utc(2013, 1, 2), Time.utc(2013, 1, 3), nil]
|
1069
|
+
(0..2).each do |i|
|
1070
|
+
sitemap = sitemaps[i]
|
1071
|
+
expect(sitemap.uri).to eq(URI("http://example.com/2013010#{i + 1}-changedump.xml"))
|
1072
|
+
md = sitemap.metadata
|
1073
|
+
expect(md.from_time).to be_time(expected_froms[i])
|
1074
|
+
expect(md.until_time).to be_time(expected_untils[i])
|
1075
|
+
end
|
1076
|
+
end
|
1077
|
+
|
1078
|
+
it 'parses a resource dump index' do
|
1079
|
+
data = File.read('spec/data/resourcedump-index.xml')
|
1080
|
+
sitemapindex = XMLParser.parse(data)
|
1081
|
+
expect(sitemapindex).to be_a(ResourceDumpIndex)
|
1082
|
+
|
1083
|
+
links = sitemapindex.links
|
1084
|
+
expect(links.size).to eq(1)
|
1085
|
+
ln0 = links[0]
|
1086
|
+
expect(ln0.rel).to eq('up')
|
1087
|
+
expect(ln0.uri).to eq(URI('http://example.com/dataset1/capabilitylist.xml'))
|
1088
|
+
|
1089
|
+
md = sitemapindex.metadata
|
1090
|
+
expect(md.capability).to eq('resourcedump')
|
1091
|
+
expect(md.at_time).to be_time(Time.utc(2013, 1, 3, 9))
|
1092
|
+
expect(md.completed_time).to be_time(Time.utc(2013, 1, 3, 9, 10))
|
1093
|
+
|
1094
|
+
sitemaps = sitemapindex.resources
|
1095
|
+
expect(sitemaps.size).to eq(3)
|
1096
|
+
|
1097
|
+
expected_times = [Time.utc(2013, 1, 3, 9), Time.utc(2013, 1, 3, 9, 3), Time.utc(2013, 1, 3, 9, 7)]
|
1098
|
+
(0..2).each do |i|
|
1099
|
+
sitemap = sitemaps[i]
|
1100
|
+
expect(sitemap.uri).to eq(URI("http://example.com/resourcedump#{i + 1}.xml"))
|
1101
|
+
md = sitemap.metadata
|
1102
|
+
expect(md.at_time).to be_time(expected_times[i])
|
1103
|
+
end
|
1104
|
+
end
|
1048
1105
|
end
|
1049
1106
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
3
|
+
xmlns:rs="http://www.openarchives.org/rs/terms/">
|
4
|
+
<rs:ln rel="up"
|
5
|
+
href="http://example.com/dataset1/capabilitylist.xml"/>
|
6
|
+
<rs:md capability="changedump"
|
7
|
+
from="2013-01-01T00:00:00Z"/>
|
8
|
+
<sitemap>
|
9
|
+
<loc>http://example.com/20130101-changedump.xml</loc>
|
10
|
+
<rs:md from="2013-01-01T00:00:00Z"
|
11
|
+
until="2013-01-02T00:00:00Z"/>
|
12
|
+
</sitemap>
|
13
|
+
<sitemap>
|
14
|
+
<loc>http://example.com/20130102-changedump.xml</loc>
|
15
|
+
<rs:md from="2013-01-02T00:00:00Z"
|
16
|
+
until="2013-01-03T00:00:00Z"/>
|
17
|
+
</sitemap>
|
18
|
+
<sitemap>
|
19
|
+
<loc>http://example.com/20130103-changedump.xml</loc>
|
20
|
+
<rs:md from="2013-01-03T00:00:00Z"/>
|
21
|
+
</sitemap>
|
22
|
+
</sitemapindex>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
3
|
+
xmlns:rs="http://www.openarchives.org/rs/terms/">
|
4
|
+
<rs:ln rel="up"
|
5
|
+
href="http://example.com/dataset1/capabilitylist.xml"/>
|
6
|
+
<rs:md capability="resourcedump"
|
7
|
+
at="2013-01-03T09:00:00Z"
|
8
|
+
completed="2013-01-03T09:10:00Z"/>
|
9
|
+
<sitemap>
|
10
|
+
<loc>http://example.com/resourcedump1.xml</loc>
|
11
|
+
<rs:md at="2013-01-03T09:00:00Z"/>
|
12
|
+
</sitemap>
|
13
|
+
<sitemap>
|
14
|
+
<loc>http://example.com/resourcedump2.xml</loc>
|
15
|
+
<rs:md at="2013-01-03T09:03:00Z"/>
|
16
|
+
</sitemap>
|
17
|
+
<sitemap>
|
18
|
+
<loc>http://example.com/resourcedump3.xml</loc>
|
19
|
+
<rs:md at="2013-01-03T09:07:00Z"/>
|
20
|
+
</sitemap>
|
21
|
+
</sitemapindex>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require_relative 'shared/sorted_list_examples'
|
2
|
+
|
3
|
+
module Resync
|
4
|
+
describe ChangeDumpIndex do
|
5
|
+
it_behaves_like SortedResourceList
|
6
|
+
|
7
|
+
describe 'XML conversion' do
|
8
|
+
describe '#from_xml' do
|
9
|
+
it 'parses an XML string' do
|
10
|
+
|
11
|
+
xml = File.read('spec/data/changedump-index.xml')
|
12
|
+
sitemapindex = ChangeDumpIndex.load_from_xml(XML.element(xml))
|
13
|
+
|
14
|
+
links = sitemapindex.links
|
15
|
+
expect(links.size).to eq(1)
|
16
|
+
ln0 = links[0]
|
17
|
+
expect(ln0.rel).to eq('up')
|
18
|
+
expect(ln0.uri).to eq(URI('http://example.com/dataset1/capabilitylist.xml'))
|
19
|
+
|
20
|
+
md = sitemapindex.metadata
|
21
|
+
expect(md.capability).to eq('changedump')
|
22
|
+
expect(md.from_time).to be_time(Time.utc(2013, 1, 1))
|
23
|
+
|
24
|
+
sitemaps = sitemapindex.resources
|
25
|
+
expect(sitemaps.size).to eq(3)
|
26
|
+
|
27
|
+
expected_froms = [Time.utc(2013, 1, 1), Time.utc(2013, 1, 2), Time.utc(2013, 1, 3)]
|
28
|
+
expected_untils = [Time.utc(2013, 1, 2), Time.utc(2013, 1, 3), nil]
|
29
|
+
(0..2).each do |i|
|
30
|
+
sitemap = sitemaps[i]
|
31
|
+
expect(sitemap.uri).to eq(URI("http://example.com/2013010#{i + 1}-changedump.xml"))
|
32
|
+
md = sitemap.metadata
|
33
|
+
expect(md.from_time).to be_time(expected_froms[i])
|
34
|
+
expect(md.until_time).to be_time(expected_untils[i])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#save_to_xml' do
|
40
|
+
it 'can round-trip to XML' do
|
41
|
+
data = File.read('spec/data/changedump-index.xml')
|
42
|
+
list = ChangeDumpIndex.load_from_xml(XML.element(data))
|
43
|
+
xml = list.save_to_xml
|
44
|
+
expect(xml).to be_xml(data)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require_relative 'shared/base_resource_list_examples'
|
2
|
+
|
3
|
+
module Resync
|
4
|
+
describe ResourceListIndex do
|
5
|
+
it_behaves_like BaseResourceList
|
6
|
+
|
7
|
+
describe 'links' do
|
8
|
+
it_behaves_like Augmented
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'XML conversion' do
|
12
|
+
describe '#from_xml' do
|
13
|
+
it 'parses an XML string' do
|
14
|
+
data = File.read('spec/data/resourcedump-index.xml')
|
15
|
+
sitemapindex = ResourceDumpIndex.load_from_xml(XML.element(data))
|
16
|
+
|
17
|
+
links = sitemapindex.links
|
18
|
+
expect(links.size).to eq(1)
|
19
|
+
ln0 = links[0]
|
20
|
+
expect(ln0.rel).to eq('up')
|
21
|
+
expect(ln0.uri).to eq(URI('http://example.com/dataset1/capabilitylist.xml'))
|
22
|
+
|
23
|
+
md = sitemapindex.metadata
|
24
|
+
expect(md.capability).to eq('resourcedump')
|
25
|
+
expect(md.at_time).to be_time(Time.utc(2013, 1, 3, 9))
|
26
|
+
expect(md.completed_time).to be_time(Time.utc(2013, 1, 3, 9, 10))
|
27
|
+
|
28
|
+
sitemaps = sitemapindex.resources
|
29
|
+
expect(sitemaps.size).to eq(3)
|
30
|
+
|
31
|
+
expected_times = [Time.utc(2013, 1, 3, 9), Time.utc(2013, 1, 3, 9, 3), Time.utc(2013, 1, 3, 9, 7)]
|
32
|
+
(0..2).each do |i|
|
33
|
+
sitemap = sitemaps[i]
|
34
|
+
expect(sitemap.uri).to eq(URI("http://example.com/resourcedump#{i + 1}.xml"))
|
35
|
+
md = sitemap.metadata
|
36
|
+
expect(md.at_time).to be_time(expected_times[i])
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe '#save_to_xml' do
|
42
|
+
it 'can round-trip to XML' do
|
43
|
+
data = File.read('spec/data/resourcedump-index.xml')
|
44
|
+
list = ResourceDumpIndex.load_from_xml(XML.element(data), mapping: :sitemapindex)
|
45
|
+
xml = list.save_to_xml
|
46
|
+
expect(xml).to be_xml(data)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Moles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mime-types
|
@@ -161,6 +161,7 @@ files:
|
|
161
161
|
- ".rubocop.yml"
|
162
162
|
- ".ruby-version"
|
163
163
|
- ".travis.yml"
|
164
|
+
- CHANGES.md
|
164
165
|
- Gemfile
|
165
166
|
- LICENSE.md
|
166
167
|
- README.md
|
@@ -169,6 +170,7 @@ files:
|
|
169
170
|
- lib/resync.rb
|
170
171
|
- lib/resync/capability_list.rb
|
171
172
|
- lib/resync/change_dump.rb
|
173
|
+
- lib/resync/change_dump_index.rb
|
172
174
|
- lib/resync/change_dump_manifest.rb
|
173
175
|
- lib/resync/change_list.rb
|
174
176
|
- lib/resync/change_list_index.rb
|
@@ -176,6 +178,7 @@ files:
|
|
176
178
|
- lib/resync/metadata.rb
|
177
179
|
- lib/resync/resource.rb
|
178
180
|
- lib/resync/resource_dump.rb
|
181
|
+
- lib/resync/resource_dump_index.rb
|
179
182
|
- lib/resync/resource_dump_manifest.rb
|
180
183
|
- lib/resync/resource_list.rb
|
181
184
|
- lib/resync/resource_list_index.rb
|
@@ -193,6 +196,7 @@ files:
|
|
193
196
|
- lib/resync/xml_parser.rb
|
194
197
|
- resync.gemspec
|
195
198
|
- spec/acceptance/xml_parser_spec.rb
|
199
|
+
- spec/data/changedump-index.xml
|
196
200
|
- spec/data/examples/README.md
|
197
201
|
- spec/data/examples/example-1.xml
|
198
202
|
- spec/data/examples/example-12.xml
|
@@ -224,6 +228,7 @@ files:
|
|
224
228
|
- spec/data/examples/example-6.xml
|
225
229
|
- spec/data/examples/example-7.xml
|
226
230
|
- spec/data/examples/example-8.xml
|
231
|
+
- spec/data/resourcedump-index.xml
|
227
232
|
- spec/data/resourcesync.xsd
|
228
233
|
- spec/data/siteindex.xsd
|
229
234
|
- spec/data/sitemap.xsd
|
@@ -231,12 +236,14 @@ files:
|
|
231
236
|
- spec/spec_helper.rb
|
232
237
|
- spec/todo.rb
|
233
238
|
- spec/unit/resync/capability_list_spec.rb
|
239
|
+
- spec/unit/resync/change_dump_index_spec.rb
|
234
240
|
- spec/unit/resync/change_dump_manifest_spec.rb
|
235
241
|
- spec/unit/resync/change_dump_spec.rb
|
236
242
|
- spec/unit/resync/change_list_index_spec.rb
|
237
243
|
- spec/unit/resync/change_list_spec.rb
|
238
244
|
- spec/unit/resync/link_spec.rb
|
239
245
|
- spec/unit/resync/metadata_spec.rb
|
246
|
+
- spec/unit/resync/resource_dump_index_spec.rb
|
240
247
|
- spec/unit/resync/resource_dump_manifest_spec.rb
|
241
248
|
- spec/unit/resync/resource_dump_spec.rb
|
242
249
|
- spec/unit/resync/resource_list_index_spec.rb
|
@@ -278,6 +285,7 @@ specification_version: 4
|
|
278
285
|
summary: Utility library for ResourceSync
|
279
286
|
test_files:
|
280
287
|
- spec/acceptance/xml_parser_spec.rb
|
288
|
+
- spec/data/changedump-index.xml
|
281
289
|
- spec/data/examples/README.md
|
282
290
|
- spec/data/examples/example-1.xml
|
283
291
|
- spec/data/examples/example-12.xml
|
@@ -309,6 +317,7 @@ test_files:
|
|
309
317
|
- spec/data/examples/example-6.xml
|
310
318
|
- spec/data/examples/example-7.xml
|
311
319
|
- spec/data/examples/example-8.xml
|
320
|
+
- spec/data/resourcedump-index.xml
|
312
321
|
- spec/data/resourcesync.xsd
|
313
322
|
- spec/data/siteindex.xsd
|
314
323
|
- spec/data/sitemap.xsd
|
@@ -316,12 +325,14 @@ test_files:
|
|
316
325
|
- spec/spec_helper.rb
|
317
326
|
- spec/todo.rb
|
318
327
|
- spec/unit/resync/capability_list_spec.rb
|
328
|
+
- spec/unit/resync/change_dump_index_spec.rb
|
319
329
|
- spec/unit/resync/change_dump_manifest_spec.rb
|
320
330
|
- spec/unit/resync/change_dump_spec.rb
|
321
331
|
- spec/unit/resync/change_list_index_spec.rb
|
322
332
|
- spec/unit/resync/change_list_spec.rb
|
323
333
|
- spec/unit/resync/link_spec.rb
|
324
334
|
- spec/unit/resync/metadata_spec.rb
|
335
|
+
- spec/unit/resync/resource_dump_index_spec.rb
|
325
336
|
- spec/unit/resync/resource_dump_manifest_spec.rb
|
326
337
|
- spec/unit/resync/resource_dump_spec.rb
|
327
338
|
- spec/unit/resync/resource_list_index_spec.rb
|