forked from instructure/canvas-lms
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.rb
More file actions
84 lines (74 loc) · 2.12 KB
/
Copy pathsetup.rb
File metadata and controls
84 lines (74 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#
# Copyright (C) 2011 Instructure, Inc.
#
# This file is part of Canvas.
#
# Canvas is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, version 3 of the License.
#
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
include Helpers::FilterHelper
def init
@breadcrumb = []
@page_title = options[:title]
if @file
if @file.is_a?(String)
@contents = File.read(@file)
@file = File.basename(@file)
else
@contents = @file.contents
@file = File.basename(@file.path)
end
def @object.source_type; nil; end
sections :layout, [:diskfile]
elsif options[:all_resources]
sections :layout, [T('topic')]
sections[:layout].push(T('appendix')) if DOC_OPTIONS[:all_resource_appendixes]
elsif options[:controllers]
sections :layout, [T('topic'), T('appendix')]
else
sections :layout, [:contents]
end
end
def contents
@contents
end
def index
legitimate_objects = @objects.reject {|o| o.root? || !is_class?(o) || !o.meths.find { |m| !m.tags('API').empty? } }
@resources = legitimate_objects.sort_by {|o| o.tags('API').first.text }
erb(:index)
end
def diskfile
content = "<div id='filecontents'>" +
case (File.extname(@file)[1..-1] || '').downcase
when 'htm', 'html'
@contents
when 'txt'
"<pre>#{@contents}</pre>"
when 'textile', 'txtile'
htmlify(@contents, :textile)
when 'markdown', 'md', 'mdown', 'mkd'
htmlify(@contents, :markdown)
else
htmlify(@contents, diskfile_shebang_or_default)
end +
"</div>"
options.delete(:no_highlight)
content
end
def diskfile_shebang_or_default
if @contents =~ /\A#!(\S+)\s*$/ # Shebang support
@contents = $'
$1.to_sym
else
options[:markup]
end
end