Class: MultiVersionCommonCartridge::Writers::BasicLtiVendorWriter

Inherits:
Object
  • Object
show all
Includes:
SupportedVersions
Defined in:
lib/multi_version_common_cartridge/writers/basic_lti_vendor_writer.rb

Constant Summary collapse

MESSAGES =
{
  no_code: 'A code is required.',
  no_name: 'A name is required.',
  no_contact_email: 'A contact email is required.'
}.freeze

Constants included from SupportedVersions

SupportedVersions::SUPPORTED_VERSIONS, SupportedVersions::UNSUPPORTED_VERSION_MSG_TEMPLATE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from SupportedVersions

#validate_version

Constructor Details

#initialize(vendor, version) ⇒ BasicLtiVendorWriter

Returns a new instance of BasicLtiVendorWriter.



30
31
32
33
# File 'lib/multi_version_common_cartridge/writers/basic_lti_vendor_writer.rb', line 30

def initialize(vendor, version)
  @vendor = vendor
  @version = validate_version(version)
end

Instance Attribute Details

#vendorObject (readonly)

Returns the value of attribute vendor.



28
29
30
# File 'lib/multi_version_common_cartridge/writers/basic_lti_vendor_writer.rb', line 28

def vendor
  @vendor
end

Instance Method Details

#finalizeObject



35
36
37
38
39
# File 'lib/multi_version_common_cartridge/writers/basic_lti_vendor_writer.rb', line 35

def finalize
  validate_code
  validate_name
  validate_contact_email
end

#vendor_elementObject



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/multi_version_common_cartridge/writers/basic_lti_vendor_writer.rb', line 41

def vendor_element
  @vendor_element ||= CommonCartridge::Elements::Resources::BasicLtiLink::Vendor.new.tap do |element|
    element.code = vendor.code
    element.name = vendor.name
    element.description = vendor.description if vendor.description
    element.url = vendor.url if vendor.url
    element.contact = CommonCartridge::Elements::Resources::BasicLtiLink::VendorContact.new(
      email: vendor.contact_email
    )
  end
end