multi_version_common_cartridge 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.rspec +1 -0
  4. data/.rubocop.yml +54 -0
  5. data/Gemfile +2 -0
  6. data/LICENSE +674 -0
  7. data/README.md +36 -0
  8. data/lib/multi_version_common_cartridge.rb +38 -0
  9. data/lib/multi_version_common_cartridge/cartridge.rb +53 -0
  10. data/lib/multi_version_common_cartridge/cartridge_versions.rb +25 -0
  11. data/lib/multi_version_common_cartridge/item.rb +29 -0
  12. data/lib/multi_version_common_cartridge/manifest.rb +33 -0
  13. data/lib/multi_version_common_cartridge/resources/basic_lti_link.rb +46 -0
  14. data/lib/multi_version_common_cartridge/resources/resource.rb +23 -0
  15. data/lib/multi_version_common_cartridge/sax_machine_nokogiri_xml_saver.rb +85 -0
  16. data/lib/multi_version_common_cartridge/version.rb +19 -0
  17. data/lib/multi_version_common_cartridge/writers/basic_lti_extension_writer.rb +45 -0
  18. data/lib/multi_version_common_cartridge/writers/basic_lti_link_writer.rb +241 -0
  19. data/lib/multi_version_common_cartridge/writers/basic_lti_vendor_writer.rb +66 -0
  20. data/lib/multi_version_common_cartridge/writers/cartridge_writer.rb +85 -0
  21. data/lib/multi_version_common_cartridge/writers/factory.rb +59 -0
  22. data/lib/multi_version_common_cartridge/writers/item_writer.rb +60 -0
  23. data/lib/multi_version_common_cartridge/writers/manifest_metadata_writer.rb +62 -0
  24. data/lib/multi_version_common_cartridge/writers/manifest_organization_writer.rb +67 -0
  25. data/lib/multi_version_common_cartridge/writers/manifest_resources_writer.rb +48 -0
  26. data/lib/multi_version_common_cartridge/writers/manifest_writer.rb +88 -0
  27. data/lib/multi_version_common_cartridge/writers/resource_writer.rb +53 -0
  28. data/lib/multi_version_common_cartridge/writers/supported_versions.rb +37 -0
  29. data/lib/multi_version_common_cartridge/xml_definitions.rb +149 -0
  30. data/multi_version_common_cartridge.gemspec +27 -0
  31. metadata +163 -0
@@ -0,0 +1,60 @@
1
+ # multi_version_common_cartridge
2
+ # Copyright © 2019 Vista Higher Learning, Inc.
3
+ #
4
+ # multi_version_common_cartridge is free software: you can redistribute it
5
+ # and/or modify it under the terms of the GNU General Public
6
+ # License as published by the Free Software Foundation, either
7
+ # version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # multi_version_common_cartridge is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ module MultiVersionCommonCartridge
18
+ module Writers
19
+ class ItemWriter
20
+ include SupportedVersions
21
+
22
+ MESSAGES = {
23
+ no_title: 'A title is required',
24
+ no_identifier: 'An identifier is required'
25
+ }.freeze
26
+
27
+ attr_reader :item
28
+
29
+ def initialize(item, factory, version)
30
+ @item = item
31
+ @factory = factory
32
+ @version = validate_version(version)
33
+ end
34
+
35
+ def finalize
36
+ validate_title
37
+ validate_identifier
38
+ end
39
+
40
+ def organization_item_element
41
+ CommonCartridge::Elements::Organizations::Item.new.tap do |item_element|
42
+ item_element.identifier = item.identifier
43
+ item_element.identifierref = item.resource.identifier if item.resource
44
+ item_element.title = item.title
45
+ item_element.items = item.children.map do |child|
46
+ @factory.item_writer(child).organization_item_element
47
+ end
48
+ end
49
+ end
50
+
51
+ private def validate_title
52
+ raise StandardError, MESSAGES[:no_title] unless item.title
53
+ end
54
+
55
+ private def validate_identifier
56
+ raise StandardError, MESSAGES[:no_identifier] unless item.identifier
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,62 @@
1
+ # multi_version_common_cartridge
2
+ # Copyright © 2019 Vista Higher Learning, Inc.
3
+ #
4
+ # multi_version_common_cartridge is free software: you can redistribute it
5
+ # and/or modify it under the terms of the GNU General Public
6
+ # License as published by the Free Software Foundation, either
7
+ # version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # multi_version_common_cartridge is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ require 'common_cartridge'
18
+
19
+ module MultiVersionCommonCartridge
20
+ module Writers
21
+ class ManifestMetadataWriter
22
+ # http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd
23
+ # ManifestMetadata.Type
24
+ include SupportedVersions
25
+
26
+ attr_reader :manifest
27
+
28
+ def initialize(manifest, version)
29
+ @manifest = manifest
30
+ @version = validate_version(version)
31
+ end
32
+
33
+ def finalize
34
+ # nothing to check
35
+ end
36
+
37
+ def metadata_element
38
+ CommonCartridge::Elements::Metadata.new.tap do |metadata|
39
+ metadata.schema = XmlDefinitions::SCHEMA[@version]
40
+ metadata.schemaversion = XmlDefinitions::SCHEMA_VERSION[@version]
41
+ metadata.lom = lom_element
42
+ end
43
+ end
44
+
45
+ private def lom_element
46
+ CommonCartridge::Elements::Lom::Lom.new.tap do |lom|
47
+ lom.general = CommonCartridge::Elements::Lom::General.new.tap do |general|
48
+ general.title = lom_general_title_element
49
+ end
50
+ end
51
+ end
52
+
53
+ private def lom_general_title_element
54
+ CommonCartridge::Elements::Lom::Title.new.tap do |title_element|
55
+ title_element.strings = manifest.titles.map do |language, value|
56
+ CommonCartridge::Elements::Lom::LanguageString.new(language: language, value: value)
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,67 @@
1
+ # multi_version_common_cartridge
2
+ # Copyright © 2019 Vista Higher Learning, Inc.
3
+ #
4
+ # multi_version_common_cartridge is free software: you can redistribute it
5
+ # and/or modify it under the terms of the GNU General Public
6
+ # License as published by the Free Software Foundation, either
7
+ # version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # multi_version_common_cartridge is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ require 'common_cartridge'
18
+
19
+ module MultiVersionCommonCartridge
20
+ module Writers
21
+ class ManifestOrganizationWriter
22
+ # http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd
23
+ # Organizations.Type, Organization.Type
24
+ include SupportedVersions
25
+
26
+ ORGANIZATION_STRUCTURE = 'rooted-hierarchy'.freeze
27
+ DEFAULT_ROOT_ITEM_IDENTIFIER = 'root'.freeze
28
+
29
+ MESSAGES = {
30
+ no_identifier: 'An identifier is required'
31
+ }.freeze
32
+
33
+ attr_reader :cartridge
34
+
35
+ def initialize(cartridge, factory, version)
36
+ @cartridge = cartridge
37
+ @factory = factory
38
+ @version = validate_version(version)
39
+ end
40
+
41
+ def finalize
42
+ validate_identifier
43
+ end
44
+
45
+ def organization_element
46
+ CommonCartridge::Elements::Organizations::Organization.new.tap do |element|
47
+ element.identifier = ''
48
+ element.structure = ORGANIZATION_STRUCTURE
49
+ element.root_item = root_item
50
+ end
51
+ end
52
+
53
+ private def root_item
54
+ CommonCartridge::Elements::Organizations::RootItem.new.tap do |root_item|
55
+ root_item.identifier = cartridge.manifest.organization_identifier || DEFAULT_ROOT_ITEM_IDENTIFIER
56
+ root_item.items = cartridge.items.map do |item|
57
+ @factory.item_writer(item).organization_item_element
58
+ end
59
+ end
60
+ end
61
+
62
+ private def validate_identifier
63
+ # raise StandardError, MESSAGES[:no_identifier] unless manifest..identifier
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,48 @@
1
+ # multi_version_common_cartridge
2
+ # Copyright © 2019 Vista Higher Learning, Inc.
3
+ #
4
+ # multi_version_common_cartridge is free software: you can redistribute it
5
+ # and/or modify it under the terms of the GNU General Public
6
+ # License as published by the Free Software Foundation, either
7
+ # version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # multi_version_common_cartridge is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ require 'common_cartridge'
18
+
19
+ module MultiVersionCommonCartridge
20
+ module Writers
21
+ class ManifestResourcesWriter
22
+ # http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd
23
+ # Resources.type
24
+ include SupportedVersions
25
+
26
+ attr_reader :cartridge
27
+
28
+ def initialize(cartridge, factory, version)
29
+ @cartridge = cartridge
30
+ @factory = factory
31
+ @resource_writers = {}
32
+ @version = validate_version(version)
33
+ end
34
+
35
+ def finalize
36
+ # nothing to check
37
+ end
38
+
39
+ def root_resource_element
40
+ @root_resource_element ||= CommonCartridge::Elements::Resources::RootResource.new(
41
+ resources: cartridge.all_resources.map do |resource|
42
+ @factory.resource_writer(resource).resource_element
43
+ end
44
+ )
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,88 @@
1
+ # multi_version_common_cartridge
2
+ # Copyright © 2019 Vista Higher Learning, Inc.
3
+ #
4
+ # multi_version_common_cartridge is free software: you can redistribute it
5
+ # and/or modify it under the terms of the GNU General Public
6
+ # License as published by the Free Software Foundation, either
7
+ # version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # multi_version_common_cartridge is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ require 'common_cartridge'
18
+
19
+ module MultiVersionCommonCartridge
20
+ module Writers
21
+ class ManifestWriter
22
+ include SupportedVersions
23
+
24
+ MESSAGES = {
25
+ no_identifier: 'An identifier is required',
26
+ }.freeze
27
+
28
+ attr_reader :manifest
29
+
30
+ def initialize(manifest, factory, version)
31
+ @manifest = manifest
32
+ @factory = factory
33
+ @version = validate_version(version)
34
+ end
35
+
36
+ def finalize
37
+ raise StandardError, MESSAGES[:no_identifier] unless manifest.identifier
38
+ metadata_writer.finalize
39
+ organization_writer.finalize
40
+ resources_writer.finalize
41
+ end
42
+
43
+ def write(dir)
44
+ doc = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |builder|
45
+ SaxMachineNokogiriXmlSaver.new.save(builder, manifest_element, 'manifest')
46
+ end
47
+ File.open(File.join(dir, 'imsmanifest.xml'), 'w') { |file| file.write(doc.to_xml) }
48
+ end
49
+
50
+ def manifest_element
51
+ @manifest_element ||= CommonCartridge::Elements::Manifest.new.tap do |element|
52
+ element.identifier = manifest.identifier
53
+ element.xmlns = required_namespaces['xmlns']
54
+ element.xmlns_lomimscc = required_namespaces['xmlns:lomimscc']
55
+ element.xmlns_lom = required_namespaces['xmlns:lom']
56
+ element.xmlns_xsi = required_namespaces['xmlns:xsi']
57
+ element.xsi_schema_location = xsi_schema_location
58
+ element.metadata = metadata_writer.metadata_element
59
+ element.root_organization = CommonCartridge::Elements::Organizations::RootOrganization.new(
60
+ organizations: [organization_writer.organization_element]
61
+ )
62
+ element.root_resource = resources_writer.root_resource_element
63
+ end
64
+ end
65
+
66
+ private def metadata_writer
67
+ @factory.manifest_metadata_writer
68
+ end
69
+
70
+ private def organization_writer
71
+ @factory.manifest_organization_writer
72
+ end
73
+
74
+ private def resources_writer
75
+ @factory.manifest_resources_writer
76
+ end
77
+
78
+ private def required_namespaces
79
+ XmlDefinitions::REQUIRED_NAMESPACES[@version]
80
+ end
81
+
82
+ private def xsi_schema_location
83
+ locations = XmlDefinitions::REQUIRED_SCHEMA_LOCATIONS[@version]
84
+ locations.flatten.join(' ')
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,53 @@
1
+ # multi_version_common_cartridge
2
+ # Copyright © 2019 Vista Higher Learning, Inc.
3
+ #
4
+ # multi_version_common_cartridge is free software: you can redistribute it
5
+ # and/or modify it under the terms of the GNU General Public
6
+ # License as published by the Free Software Foundation, either
7
+ # version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # multi_version_common_cartridge is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ module MultiVersionCommonCartridge
18
+ module Writers
19
+ class ResourceWriter
20
+ include SupportedVersions
21
+
22
+ attr_reader :resource
23
+
24
+ def initialize(resource, version)
25
+ @resource = resource
26
+ @version = validate_version(version)
27
+ end
28
+
29
+ def finalize
30
+ resource.identifier ||= 'i_' + Digest::MD5.hexdigest("resource #{resource.object_id}")
31
+ end
32
+
33
+ def resource_element
34
+ CommonCartridge::Elements::Resources::Resource.new.tap do |element|
35
+ element.identifier = resource.identifier
36
+ element.type = type
37
+ element.files = files.map do |file|
38
+ CommonCartridge::Elements::Resources::File.new(href: file)
39
+ end
40
+ end
41
+ end
42
+
43
+ def type
44
+ raise NotImplementedError, 'Subclasses must implement the type method ' \
45
+ 'that returns the correct resource type.'
46
+ end
47
+
48
+ def files
49
+ []
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,37 @@
1
+ # multi_version_common_cartridge
2
+ # Copyright © 2019 Vista Higher Learning, Inc.
3
+ #
4
+ # multi_version_common_cartridge is free software: you can redistribute it
5
+ # and/or modify it under the terms of the GNU General Public
6
+ # License as published by the Free Software Foundation, either
7
+ # version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # multi_version_common_cartridge is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ module MultiVersionCommonCartridge
18
+ module Writers
19
+ module SupportedVersions
20
+ SUPPORTED_VERSIONS = [
21
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0,
22
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0,
23
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0,
24
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0,
25
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0
26
+ ].freeze
27
+ UNSUPPORTED_VERSION_MSG_TEMPLATE = "Unsupported common cartridge version '%<version>s'".freeze
28
+
29
+ def validate_version(version)
30
+ unless SUPPORTED_VERSIONS.include?(version)
31
+ raise ArgumentError, format(UNSUPPORTED_VERSION_MSG_TEMPLATE, version: version)
32
+ end
33
+ version
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,149 @@
1
+ # multi_version_common_cartridge
2
+ # Copyright © 2019 Vista Higher Learning, Inc.
3
+ #
4
+ # multi_version_common_cartridge is free software: you can redistribute it
5
+ # and/or modify it under the terms of the GNU General Public
6
+ # License as published by the Free Software Foundation, either
7
+ # version 3 of the License, or (at your option) any later version.
8
+ #
9
+ # multi_version_common_cartridge is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with multi_version_common_cartridge. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ module MultiVersionCommonCartridge
18
+ module XmlDefinitions
19
+ SCHEMA = {
20
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => 'IMS Common Cartridge',
21
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => 'IMS Common Cartridge',
22
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => 'IMS Common Cartridge',
23
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => 'IMS Thin Common Cartridge',
24
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => 'IMS Thin Common Cartridge'
25
+ }.freeze
26
+
27
+ SCHEMA_VERSION = {
28
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => '1.1.0',
29
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => '1.2.0',
30
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => '1.3.0',
31
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => '1.2.0',
32
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => '1.3.0'
33
+ }.freeze
34
+
35
+ REQUIRED_NAMESPACES = {
36
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => {
37
+ 'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1',
38
+ 'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource',
39
+ 'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/manifest',
40
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
41
+ },
42
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => {
43
+ 'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p2/imscp_v1p1',
44
+ 'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/resource',
45
+ 'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/manifest',
46
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
47
+ },
48
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => {
49
+ 'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',
50
+ 'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',
51
+ 'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',
52
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
53
+ },
54
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => {
55
+ 'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p2/imscp_v1p1',
56
+ 'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/resource',
57
+ 'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/manifest',
58
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
59
+ },
60
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => {
61
+ 'xmlns' => 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',
62
+ 'xmlns:lom' => 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',
63
+ 'xmlns:lomimscc' => 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',
64
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
65
+ }
66
+ }.freeze
67
+
68
+ REQUIRED_SCHEMA_LOCATIONS = {
69
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => [
70
+ [
71
+ 'http://www.imsglobal.org/xsd/imsccv1p1/imscp_v1p1',
72
+ 'http://www.imsglobal.org/profile/cc/ccv1p1/ccv1p1_imscp_v1p2_v1p0.xsd'
73
+ ],
74
+ [
75
+ 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/resource',
76
+ 'http://www.imsglobal.org/profile/cc/ccv1p1/LOM/ccv1p1_lomresource_v1p0.xsd'
77
+ ],
78
+ [
79
+ 'http://ltsc.ieee.org/xsd/imsccv1p1/LOM/manifest',
80
+ 'http://www.imsglobal.org/profile/cc/ccv1p1/LOM/ccv1p1_lommanifest_v1p0.xsd'
81
+ ]
82
+ ],
83
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => [
84
+ [
85
+ 'http://www.imsglobal.org/xsd/imsccv1p2/imscp_v1p1',
86
+ 'http://www.imsglobal.org/profile/cc/ccv1p2/ccv1p2_imscp_v1p2_v1p0.xsd'
87
+ ],
88
+ [
89
+ 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/resource',
90
+ 'http://www.imsglobal.org/profile/cc/ccv1p2/LOM/ccv1p2_lomresource_v1p0.xsd'
91
+ ],
92
+ [
93
+ 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/manifest',
94
+ 'http://www.imsglobal.org/profile/cc/ccv1p2/LOM/ccv1p2_lommanifest_v1p0.xsd'
95
+ ]
96
+ ],
97
+ MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => [
98
+ [
99
+ 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',
100
+ 'http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd'
101
+ ],
102
+ [
103
+ 'http://www.imsglobal.org/xsd/imsccv1p3/imscsmd_v1p0',
104
+ 'http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscsmd_v1p0.xsd'
105
+ ],
106
+ [
107
+ 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',
108
+ 'http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lomresource_v1p0.xsd'
109
+ ],
110
+ [
111
+ 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',
112
+ 'http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lommanifest_v1p0.xsd'
113
+ ]
114
+ ],
115
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => [
116
+ [
117
+ 'http://www.imsglobal.org/xsd/imsccv1p2/imscp_v1p1',
118
+ 'http://www.imsglobal.org/profile/cc/ccv1p2/ccv1p2_imscp_v1p2_v1p0.xsd'
119
+ ],
120
+ [
121
+ 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/resource',
122
+ 'http://www.imsglobal.org/profile/cc/ccv1p2/LOM/ccv1p2_lomresource_v1p0.xsd'
123
+ ],
124
+ [
125
+ 'http://ltsc.ieee.org/xsd/imsccv1p2/LOM/manifest',
126
+ 'http://www.imsglobal.org/profile/cc/ccv1p2/LOM/ccv1p2_lommanifest_v1p0.xsd'
127
+ ]
128
+ ],
129
+ MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => [
130
+ [
131
+ 'http://www.imsglobal.org/xsd/imsccv1p3/imscp_v1p1',
132
+ 'http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscp_v1p2_v1p0.xsd'
133
+ ],
134
+ [
135
+ 'http://www.imsglobal.org/xsd/imsccv1p3/imscsmd_v1p0',
136
+ 'http://www.imsglobal.org/profile/cc/ccv1p3/ccv1p3_imscsmd_v1p0.xsd'
137
+ ],
138
+ [
139
+ 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/resource',
140
+ 'http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lomresource_v1p0.xsd'
141
+ ],
142
+ [
143
+ 'http://ltsc.ieee.org/xsd/imsccv1p3/LOM/manifest',
144
+ 'http://www.imsglobal.org/profile/cc/ccv1p3/LOM/ccv1p3_lommanifest_v1p0.xsd'
145
+ ]
146
+ ]
147
+ }.freeze
148
+ end
149
+ end