Class: Scriptorium::Widget::Links
Constant Summary
collapse
- Title =
"External links"
Instance Attribute Summary
#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) ⇒ Links
Returns a new instance of Links.
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/scriptorium/widgets/links.rb', line 12
def initialize(repo, view)
assume { repo.is_a?(Scriptorium::Repo) }
assume { view.is_a?(Scriptorium::View) }
super(repo, view)
@lines = @data
define_invariants
verify { @lines == @data }
check_invariants
end
|
Instance Method Details
#card ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/scriptorium/widgets/links.rb', line 62
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
7
8
9
10
|
# File 'lib/scriptorium/widgets/links.rb', line 7
def define_invariants
invariant { @lines.is_a?(Array) }
invariant { Title.is_a?(String) && !Title.empty? }
end
|
#generate ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/scriptorium/widgets/links.rb', line 41
def generate
check_invariants
assume { @view.is_a?(Scriptorium::View) }
write_main
write_card
result = true
verify { result == true }
check_invariants
result
end
|
#get_list ⇒ Object
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/scriptorium/widgets/links.rb', line 24
def get_list
check_invariants
assume { @lines.is_a?(Array) }
result = @lines.map { |line| line.chomp.split(/, */, 2) }
verify { result.is_a?(Array) }
check_invariants
result
end
|
#link_item(url, title) ⇒ Object
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/scriptorium/widgets/links.rb', line 81
def link_item(url, title)
check_invariants
assume { url.is_a?(String) && !url.empty? }
assume { title.is_a?(String) && !title.empty? }
anchor = %[<a href="#{url}" target="_blank" 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
|
#load_config ⇒ Object
35
36
37
38
39
|
# File 'lib/scriptorium/widgets/links.rb', line 35
def load_config
check_invariants
check_invariants
end
|
54
55
56
57
58
59
60
|
# File 'lib/scriptorium/widgets/links.rb', line 54
def widget_title
check_invariants
result = Title
verify { result.is_a?(String) && !result.empty? }
check_invariants
result
end
|
#write_card ⇒ Object
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/scriptorium/widgets/links.rb', line 94
def write_card
check_invariants
assume { @view.is_a?(Scriptorium::View) }
assume { @name.is_a?(String) && !@name.empty? }
assume { @data.is_a?(Array) }
tag = @name
cardout = "#{@view.dir}/widgets/#@name/#@name-card.html"
card_title = Title
content = ""
@data.each do |line|
url2, title = line.chomp.split(",")
content << link_item(url2, title)
end
write_file(cardout, html_card(card_title, tag, content))
check_invariants
end
|
#write_main ⇒ Object
75
76
77
78
79
|
# File 'lib/scriptorium/widgets/links.rb', line 75
def write_main
check_invariants
check_invariants
end
|