Class: Scriptorium::Widget::Pages
Constant Summary
collapse
- Title =
"Pages"
Instance Attribute Summary collapse
#config, #name, #path, #repo, #view
Instance Method Summary
collapse
Methods included from Contract
#assume, #check_invariants, enabled?, #invariant, #verify
Methods inherited from ListWidget
#load_data
#html_body, #html_card, #html_container
Methods included from Helpers
#cf_time, #change_config, #clean_slugify, #copy_gem_asset_to_user, #copy_to_clipboard, #d4, #escape_html, #generate_missing_asset_svg, #get_asset_path, #get_from_clipboard, #getvars, #list_gem_assets, #make_dir, #make_tree, #need, #read_commented_file, #read_file, #see, #see_file, #slugify, #substitute, #system!, #view_dir, #write_file, #write_file!, #ymdhms
Methods included from Exceptions
#make_exception
Constructor Details
#initialize(repo, view) ⇒ Pages
Returns a new instance of Pages.
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/scriptorium/widgets/pages.rb', line 14
def initialize(repo, view)
assume { repo.is_a?(Scriptorium::Repo) }
assume { view.is_a?(Scriptorium::View) }
super(repo, view)
@pages_dir = "#{@view.dir}/pages"
define_invariants
verify { @pages_dir.include?("pages") }
check_invariants
end
|
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
5
6
7
|
# File 'lib/scriptorium/widgets/pages.rb', line 5
def data
@data
end
|
Instance Method Details
#card ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/scriptorium/widgets/pages.rb', line 53
def card
check_invariants
assume { @view.is_a?(Scriptorium::View) }
assume { @name.is_a?(String) && !@name.empty? }
file = "#{@view.dir}/widgets/#@name/#@name-card.html"
result = read_file(file)
verify { result.is_a?(String) }
check_invariants
result
end
|
#define_invariants ⇒ Object
8
9
10
11
12
|
# File 'lib/scriptorium/widgets/pages.rb', line 8
def define_invariants
invariant { @pages_dir.is_a?(String) && !@pages_dir.empty? }
invariant { @data.is_a?(Array) }
invariant { Title.is_a?(String) && !Title.empty? }
end
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/scriptorium/widgets/pages.rb', line 72
def (html_content)
check_invariants
assume { html_content.is_a?(String) }
if match = html_content.match(/<title[^>]*>(.*?)<\/title>/i)
result = match[1].strip
elsif match = html_content.match(/<h1[^>]*>(.*?)<\/h1>/i)
result = match[1].strip
else
result = "Untitled"
end
verify { result.is_a?(String) && !result.empty? }
check_invariants
result
end
|
#generate ⇒ Object
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/scriptorium/widgets/pages.rb', line 32
def generate
check_invariants
assume { @view.is_a?(Scriptorium::View) }
write_main
write_card
result = true
verify { result == true }
check_invariants
result
end
|
#load_config ⇒ Object
26
27
28
29
30
|
# File 'lib/scriptorium/widgets/pages.rb', line 26
def load_config
check_invariants
check_invariants
end
|
#page_item(filename, title) ⇒ Object
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/scriptorium/widgets/pages.rb', line 92
def page_item(filename, title)
check_invariants
assume { filename.is_a?(String) && !filename.empty? }
assume { title.is_a?(String) && !title.empty? }
anchor = %[<a href="javascript:void(0)" onclick="load_main('pages/#{filename}.html')" style="text-decoration: none;">#{title}</a>]
result = %[<li class="list-group-item">#{anchor}</li>]
verify { result.is_a?(String) && result.include?("list-group-item") }
check_invariants
result
end
|
45
46
47
48
49
50
51
|
# File 'lib/scriptorium/widgets/pages.rb', line 45
def widget_title
check_invariants
result = Title
verify { result.is_a?(String) && !result.empty? }
check_invariants
result
end
|
#write_card ⇒ Object
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# File 'lib/scriptorium/widgets/pages.rb', line 105
def write_card
check_invariants
assume { @view.is_a?(Scriptorium::View) }
assume { @name.is_a?(String) && !@name.empty? }
assume { @data.is_a?(Array) }
assume { @pages_dir.is_a?(String) && !@pages_dir.empty? }
tag = @name
cardout = "#{@view.dir}/widgets/#@name/#@name-card.html"
card_title = Title
content = ""
@data.each do |filename|
html_file = "#{@pages_dir}/#{filename}.html"
if File.exist?(html_file)
html_content = read_file(html_file)
title = (html_content)
content << page_item(filename, title)
else
next
end
end
write_file(cardout, html_card(card_title, tag, content))
check_invariants
end
|
#write_main ⇒ Object
66
67
68
69
70
|
# File 'lib/scriptorium/widgets/pages.rb', line 66
def write_main
check_invariants
check_invariants
end
|