Class: MultiVersionCommonCartridge::Writers::BasicLtiLinkWriter

Inherits:
ResourceWriter
  • Object
show all
Defined in:
lib/multi_version_common_cartridge/writers/basic_lti_link_writer.rb

Constant Summary collapse

REQUIRED_NAMESPACES =
{
  MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => {
    'xmlns' => 'http://www.imsglobal.org/xsd/imslticc_v1p0',
    'xmlns:blti' => 'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
    'xmlns:lticm' => 'http://www.imsglobal.org/xsd/imslticm_v1p0',
    'xmlns:lticp' => 'http://www.imsglobal.org/xsd/imslticp_v1p0',
    'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
  },
  MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => {
    'xmlns' => 'http://www.imsglobal.org/xsd/imslticc_v1p2',
    'xmlns:blti' => 'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
    'xmlns:lticm' => 'http://www.imsglobal.org/xsd/imslticm_v1p0',
    'xmlns:lticp' => 'http://www.imsglobal.org/xsd/imslticp_v1p0',
    'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
  },
  MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => {
    'xmlns' => 'http://www.imsglobal.org/xsd/imslticc_v1p3',
    'xmlns:blti' => 'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
    'xmlns:lticm' => 'http://www.imsglobal.org/xsd/imslticm_v1p0',
    'xmlns:lticp' => 'http://www.imsglobal.org/xsd/imslticp_v1p0',
    'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
  },
  MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => {
    'xmlns' => 'http://www.imsglobal.org/xsd/imslticc_v1p2',
    'xmlns:blti' => 'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
    'xmlns:lticm' => 'http://www.imsglobal.org/xsd/imslticm_v1p0',
    'xmlns:lticp' => 'http://www.imsglobal.org/xsd/imslticp_v1p0',
    'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
  },
  MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => {
    'xmlns' => 'http://www.imsglobal.org/xsd/imslticc_v1p3',
    'xmlns:blti' => 'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
    'xmlns:lticm' => 'http://www.imsglobal.org/xsd/imslticm_v1p0',
    'xmlns:lticp' => 'http://www.imsglobal.org/xsd/imslticp_v1p0',
    'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
  }
}.freeze
REQUIRED_SCHEMA_LOCATIONS =
{
  MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => [
    [
      'http://www.imsglobal.org/xsd/imslticc_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticc_v1p0p1.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticm_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticp_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd'
    ]
  ],
  MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => [
    [
      'http://www.imsglobal.org/xsd/imslticc_v1p2',
      'http://www.imsglobal.org/xsd/lti/ltiv1p2/imslticc_v1p2.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticm_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticp_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd'
    ]
  ],
  MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => [
    [
      'http://www.imsglobal.org/xsd/imslticc_v1p3',
      'http://www.imsglobal.org/xsd/lti/ltiv1p3/imslticc_v1p3.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticm_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticp_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd'
    ]
  ],
  MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => [
    [
      'http://www.imsglobal.org/xsd/imslticc_v1p2',
      'http://www.imsglobal.org/xsd/lti/ltiv1p2/imslticc_v1p2.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticm_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticp_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd'
    ]
  ],
  MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => [
    [
      'http://www.imsglobal.org/xsd/imslticc_v1p3',
      'http://www.imsglobal.org/xsd/lti/ltiv1p3/imslticc_v1p3.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imsbasiclti_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticm_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd'
    ],
    [
      'http://www.imsglobal.org/xsd/imslticp_v1p0',
      'http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd'
    ]
  ]
}.freeze
MESSAGES =
{
  no_title: 'A title is required.',
  no_secure_launch_url: 'A secure launch url is required.'
}.freeze
TYPE =
{
  MultiVersionCommonCartridge::CartridgeVersions::CC_1_1_0 => 'imsbasiclti_xmlv1p0',
  MultiVersionCommonCartridge::CartridgeVersions::CC_1_2_0 => 'imsbasiclti_xmlv1p0',
  MultiVersionCommonCartridge::CartridgeVersions::CC_1_3_0 => 'imsbasiclti_xmlv1p3',
  MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_2_0 => 'imsbasiclti_xmlv1p0',
  MultiVersionCommonCartridge::CartridgeVersions::THIN_CC_1_3_0 => 'imsbasiclti_xmlv1p3'
}.freeze
'basic_lti_link.xml'.freeze

Constants included from SupportedVersions

SupportedVersions::SUPPORTED_VERSIONS, SupportedVersions::UNSUPPORTED_VERSION_MSG_TEMPLATE

Instance Attribute Summary

Attributes inherited from ResourceWriter

#resource

Instance Method Summary collapse

Methods inherited from ResourceWriter

#dependencies, #initialize, #resource_element

Methods included from SupportedVersions

#validate_version

Constructor Details

This class inherits a constructor from MultiVersionCommonCartridge::Writers::ResourceWriter

Instance Method Details



192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
# File 'lib/multi_version_common_cartridge/writers/basic_lti_link_writer.rb', line 192

def basic_lti_link_element
  @basic_lti_link_element ||=
    CommonCartridge::Elements::Resources::BasicLtiLink::BasicLtiLink.new.tap do |element|
      element.xmlns = required_namespaces['xmlns']
      element.xmlns_blti = required_namespaces['xmlns:blti']
      element.xmlns_lticm = required_namespaces['xmlns:lticm']
      element.xmlns_lticp = required_namespaces['xmlns:lticp']
      element.xmlns_xsi = required_namespaces['xmlns:xsi']
      element.xsi_schema_location = xsi_schema_location
      element.title = resource.title
      element.description = resource.description if resource.description
      element.launch_url = resource.secure_launch_url
      element.secure_launch_url = resource.secure_launch_url
      element.vendor = vendor_writer.vendor_element
      element.extensions = extensions_element
    end
end

#create_files(out_dir) ⇒ Object



180
181
182
183
184
185
186
187
188
189
190
# File 'lib/multi_version_common_cartridge/writers/basic_lti_link_writer.rb', line 180

def create_files(out_dir)
  FileUtils.mkdir_p(File.join(out_dir, resource_path))
  doc = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |builder|
    SaxMachineNokogiriXmlSaver.new.save(
      builder, basic_lti_link_element, 'cartridge_basiclti_link'
    )
  end
  File.open(File.join(out_dir, resource_path, BASIC_LTI_LINK_FILENAME), 'w') do |file|
    file.write(doc.to_xml)
  end
end

#filesObject



174
175
176
177
178
# File 'lib/multi_version_common_cartridge/writers/basic_lti_link_writer.rb', line 174

def files
  [
    File.join(resource_path, BASIC_LTI_LINK_FILENAME)
  ]
end

#finalizeObject



163
164
165
166
167
168
# File 'lib/multi_version_common_cartridge/writers/basic_lti_link_writer.rb', line 163

def finalize
  super
  validate_title
  validate_secure_launch_url
  vendor_writer.finalize
end

#typeObject



170
171
172
# File 'lib/multi_version_common_cartridge/writers/basic_lti_link_writer.rb', line 170

def type
  TYPE[@version]
end