resync 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d976bb155b49ce7339df955bfa20d30392d22b5e
4
- data.tar.gz: 3c3fdaebce38202912ce7d56805a429578f77b1d
3
+ metadata.gz: 1ac849438f247e3776ef21a93c6466e83e3bb45f
4
+ data.tar.gz: 184a1d96dd47fd6bc0c1b413d7cbc318411e5e3c
5
5
  SHA512:
6
- metadata.gz: d567ccc2977f4c46ea357765bb46b72d40a8ee20673c2fdd9f76e66f3cc1e5ca18c16f7fe9cbeb51788121b1f33b70bec6e0ba7b71fcf09eae431ee4a3875afa
7
- data.tar.gz: f97193935fc1dc19de8e715a9502e6afc2cd150528eb71a471acb41be24bd7a95ab8e139f9245026d1ee45607e79aeb05ce231a6902599261994659ca14ed3ae
6
+ metadata.gz: 1cdd7b2571b0caaea6aaeff82212072edbfc5f3b020d4c924c0cec227fa8f2c0ab8c1c1f1ee88171f8d2ca5c1ce0379c01db56ae40013db9375354c3a6533a41
7
+ data.tar.gz: ac5c5df6d0c6f3c02f0dbde7c6a4c79b9b0aeb340a46a33cf3e01525f8383805eb849db0a0e8bda7a72fa11d7c6b46638a9dac00f16357ba6d7f92a6741e7f3d
data/CHANGES.md ADDED
@@ -0,0 +1,8 @@
1
+ ## 0.1.1
2
+
3
+ - Add support for [Change Dump Indices](http://www.openarchives.org/rs/1.0/resourcesync#ChangeDumpIndex)
4
+ - Add support for [Resource Dump Indices](http://www.openarchives.org/rs/1.0/resourcesync#ResourceDumpIndex)
5
+
6
+ ## 0.1.0
7
+
8
+ - Initial release
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='up', href='http://example.com/my-dataset/my-capability-list.xml') ],
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 = 'changelist',
35
- from_time = Time.utc(2013, 1, 3)
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
- ## Limitations
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
- ### Structural inconvenience and unnecessary repetition
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
- ### Logical relationships between elements
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
- ### Time attribute requirements
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
- ### Value restrictions from XML schemata
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
- ### Element order
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
- ### Namespace weirdness
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>`.
@@ -64,6 +64,8 @@ module Resync
64
64
  # ------------------------------
65
65
  # Conversions
66
66
 
67
+ private
68
+
67
69
  def to_capability_map(resources)
68
70
  capabilities = {}
69
71
  (resources || []).each do |resource|
@@ -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
@@ -54,6 +54,7 @@ module Resync
54
54
  # ------------------------------------------------------------
55
55
  # Custom getters
56
56
 
57
+ # @return [String] the capability provided by this document
57
58
  def capability
58
59
  @metadata.capability
59
60
  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
@@ -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 +ChangeList+, +ChangeDump+, etc.
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
 
@@ -3,6 +3,7 @@ require 'ruby-enum'
3
3
  module Resync
4
4
  module Types
5
5
  # The frequency of changes to a resource.
6
+ # Values: +ALWAYS+, +HOURLY+, +DAILY+, +WEEKLY+, +MONTHLY+, +YEARLY+, +NEVER+
6
7
  class ChangeFrequency
7
8
  include Ruby::Enum
8
9
 
@@ -1,4 +1,4 @@
1
1
  module Resync
2
2
  # The version of this gem.
3
- VERSION = '0.1.0'
3
+ VERSION = '0.1.1'
4
4
  end
@@ -17,7 +17,9 @@ module Resync
17
17
  ],
18
18
  sitemapindex: [
19
19
  ChangeListIndex,
20
- ResourceListIndex
20
+ ResourceListIndex,
21
+ ChangeDumpIndex,
22
+ ResourceDumpIndex
21
23
  ]
22
24
  }
23
25
  private_constant :ROOT_TYPES
@@ -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.0
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-01 00:00:00.000000000 Z
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