Module: IMS::LTI::Extensions::Content::ToolProvider

Includes:
Base, ExtensionBase
Defined in:
lib/ims/lti/extensions/content.rb

Instance Method Summary collapse

Methods included from Base

#extend_outcome_request, #extend_outcome_response, #outcome_request_extensions, #outcome_response_extensions

Methods included from ExtensionBase

#outcome_request_extensions, #outcome_response_extensions

Instance Method Details

#accepted_content_typesObject

a list of the supported outcome data types



27
28
29
30
31
32
33
34
35
# File 'lib/ims/lti/extensions/content.rb', line 27

def accepted_content_types
  return @content_types if @content_types
  @content_types = []
  if val = @ext_params["content_return_types"]
    @content_types = val.split(',').map {|i| i.to_sym}
  end

  @content_types
end

#accepted_file_extensionsObject



37
38
39
40
41
42
43
44
45
# File 'lib/ims/lti/extensions/content.rb', line 37

def accepted_file_extensions
  return @file_extensions if @file_extensions
  @file_extensions = []
  if val = @ext_params["content_file_extensions"]
    @file_extensions = val.split(',').map {|i| i.downcase.strip}
  end

  @file_extensions
end

#accepts_content?Boolean

check if the content extension is supported

Returns:

  • (Boolean)


79
80
81
# File 'lib/ims/lti/extensions/content.rb', line 79

def accepts_content?
  !!@ext_params["content_return_types"]
end

#accepts_content_type?(content_type) ⇒ Boolean

check if the consumer accepts a given type of content

Returns:

  • (Boolean)


84
85
86
# File 'lib/ims/lti/extensions/content.rb', line 84

def accepts_content_type?(content_type)
  accepted_content_types.include? content_type.to_sym
end

#accepts_file?(file_name = nil) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
50
51
52
# File 'lib/ims/lti/extensions/content.rb', line 47

def accepts_file?(file_name = nil)
  accepted_content_types.include?(:file) &&
    ( file_name.nil? ||
      accepted_file_extensions.empty? ||
      accepted_file_extensions.any?{|ext| file_name.downcase[/#{ext}$/]} )
end

#accepts_iframe?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/ims/lti/extensions/content.rb', line 66

def accepts_iframe?
  accepted_content_types.include?(:iframe)
end

#accepts_image_url?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/ims/lti/extensions/content.rb', line 62

def accepts_image_url?
  accepted_content_types.include?(:image_url)
end

#accepts_lti_launch_url?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/ims/lti/extensions/content.rb', line 58

def accepts_lti_launch_url?
  accepted_content_types.include?(:lti_launch_url)
end

#accepts_oembed?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/ims/lti/extensions/content.rb', line 70

def accepts_oembed?
  accepted_content_types.include?(:oembed)
end

#accepts_url?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/ims/lti/extensions/content.rb', line 54

def accepts_url?
  accepted_content_types.include?(:url)
end

#content_intended_useObject



74
75
76
# File 'lib/ims/lti/extensions/content.rb', line 74

def content_intended_use
  @ext_params["content_intended_use"].to_sym if  @ext_params["content_intended_use"]
end

#content_return_urlObject



93
94
95
# File 'lib/ims/lti/extensions/content.rb', line 93

def content_return_url
  @ext_params["content_return_url"]
end

#file_content_return_url(url, text, content_type = nil) ⇒ Object

generates the return url for file submissions



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/ims/lti/extensions/content.rb', line 98

def file_content_return_url(url, text, content_type = nil)

  return_url = add_parameters(content_return_url, {
    return_type: 'file',
    url: url,
    text: text
  })

  if content_type
    return_url = add_parameters(return_url, {
      content_type: content_type
    })
  end

  return return_url
end

#iframe_content_return_url(url, width, height, title = nil) ⇒ Object

generates the return url for iframe submissions



165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/ims/lti/extensions/content.rb', line 165

def iframe_content_return_url(url, width, height, title = nil)

  return_url = add_parameters(content_return_url, {
    return_type: 'iframe',
    url: url,
    width: width.to_s,
    height: height.to_s
  })

  if title
    return_url = add_parameters(return_url, {
      title:title
    })
  end

  return return_url
end

#image_content_return_url(url, width, height, alt = '') ⇒ Object

generates the return url for image submissions



153
154
155
156
157
158
159
160
161
162
# File 'lib/ims/lti/extensions/content.rb', line 153

def image_content_return_url(url, width, height, alt = '')

  add_parameters(content_return_url, {
    return_type: 'image_url',
    url: url,
    width: width.to_s,
    height: height.to_s,
    alt: alt
  })
end

#is_content_for?(intended_use) ⇒ Boolean

check the use of the content

Returns:

  • (Boolean)


89
90
91
# File 'lib/ims/lti/extensions/content.rb', line 89

def is_content_for? (intended_use)
  content_intended_use == intended_use
end

#lti_launch_content_return_url(url, text = 'link', title = nil) ⇒ Object

generates the return url for lti launch submissions



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# File 'lib/ims/lti/extensions/content.rb', line 135

def lti_launch_content_return_url(url, text='link', title=nil)

  return_url = add_parameters(content_return_url, {
    return_type: 'lti_launch_url',
    url: url,
    text: text
  })

  if title
    return_url = add_parameters(return_url, {
      title:title
    })
  end

  return return_url
end

#oembed_content_return_url(url, endpoint) ⇒ Object

generates the return url for oembed submissions



184
185
186
187
188
189
190
191
# File 'lib/ims/lti/extensions/content.rb', line 184

def oembed_content_return_url(url, endpoint)

  add_parameters(content_return_url, {
    return_type: 'oembed',
    url: url,
    endpoint: endpoint
  })
end

#url_content_return_url(url, title = nil, text = 'link', target = '_blank') ⇒ Object

generates the return url for url submissions



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# File 'lib/ims/lti/extensions/content.rb', line 116

def url_content_return_url(url, title = nil, text = 'link', target = '_blank')

  return_url = add_parameters(content_return_url, {
    return_type: 'url',
    url: url,
    text: text,
    target: target
  })

  if title
    return_url = add_parameters(return_url, {
      title:title
    })
  end

  return return_url
end