Module: HtmlGrid::TemplateMethods
- Included in:
- DivTemplate, Template
- Defined in:
- lib/htmlgrid/template.rb
Constant Summary collapse
- CONTENT =
nil
- FOOT =
nil
- HEAD =
nil
- META_TAGS =
[]
- LEGACY_INTERFACE =
true
- CSS_FILES =
[]
- JAVASCRIPTS =
[]
- @@local_doc_dir =
File.join(Dir.pwd, "doc")
Class Method Summary collapse
Instance Method Summary collapse
- #__standard_component(model, klass) ⇒ Object
- #content(model, session = nil) ⇒ Object
- #css_link(context, path = @lookandfeel.resource(:css)) ⇒ Object
- #css_links(context, path = @lookandfeel.resource(:css)) ⇒ Object
- #dynamic_html_headers(context) ⇒ Object
- #foot(model, session = nil) ⇒ Object
- #head(model, session = nil) ⇒ Object
- #html_head(context, &block) ⇒ Object
- #javascripts(context) ⇒ Object
- #meta_tags(context) ⇒ Object
- #onload=(script) ⇒ Object
- #other_html_headers(context) ⇒ Object
- #template_html(context, &block) ⇒ Object
- #template_tags(context, &block) ⇒ Object
- #title(context) ⇒ Object
- #to_html(context) ⇒ Object
Class Method Details
.get_inline(ressource) ⇒ Object
40 41 42 43 44 |
# File 'lib/htmlgrid/template.rb', line 40 def self.get_inline(ressource) return nil unless ressource local_file = File.join(@@local_doc_dir, URI(ressource).path) File.exist?(local_file) ? File.read(local_file) : nil end |
Instance Method Details
#__standard_component(model, klass) ⇒ Object
85 86 87 88 89 |
# File 'lib/htmlgrid/template.rb', line 85 def __standard_component(model, klass) if klass.is_a?(Class) klass.new(model, @session, self) end end |
#content(model, session = nil) ⇒ Object
69 70 71 |
# File 'lib/htmlgrid/template.rb', line 69 def content(model, session = nil) __standard_component(model, self.class::CONTENT) end |
#css_link(context, path = @lookandfeel.resource(:css)) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/htmlgrid/template.rb', line 46 def css_link(context, path = @lookandfeel.resource(:css)) properties = { "rel" => "stylesheet", "type" => "text/css", "async" => "true", "href" => path } if (content = TemplateMethods.get_inline(path)) properties.delete("href") context.style(properties) { content } else context.link(properties) end end |
#css_links(context, path = @lookandfeel.resource(:css)) ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/htmlgrid/template.rb', line 61 def css_links(context, path = @lookandfeel.resource(:css)) links = self.class.const_get(:CSS_FILES).collect { |key| css_link(context, @lookandfeel.resource(key)) } links.push(css_link(context, path)) if path links.join end |
#dynamic_html_headers(context) ⇒ Object
73 74 75 |
# File 'lib/htmlgrid/template.rb', line 73 def dynamic_html_headers(context) "" end |
#foot(model, session = nil) ⇒ Object
77 78 79 |
# File 'lib/htmlgrid/template.rb', line 77 def foot(model, session = nil) __standard_component(model, self.class::FOOT) end |
#head(model, session = nil) ⇒ Object
81 82 83 |
# File 'lib/htmlgrid/template.rb', line 81 def head(model, session = nil) __standard_component(model, self.class::HEAD) end |
#html_head(context, &block) ⇒ Object
91 92 93 94 95 96 97 98 99 100 |
# File 'lib/htmlgrid/template.rb', line 91 def html_head(context, &block) context.head { block&.call context.head << title(context) << (context) << other_html_headers(context) << css_links(context) << javascripts(context) } end |
#javascripts(context) ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 |
# File 'lib/htmlgrid/template.rb', line 102 def javascripts(context) jscripts = self.class.const_get(:JAVASCRIPTS).collect { |key| properties = { "language" => "JavaScript", "type" => "text/javascript", "src" => @lookandfeel.resource_global(:javascript, "#{key}.js") } context.script(properties) } jscripts.join end |
#meta_tags(context) ⇒ Object
114 115 116 117 118 |
# File 'lib/htmlgrid/template.rb', line 114 def (context) self.class::META_TAGS.inject("") { |inj, properties| inj << context.(properties) } end |
#onload=(script) ⇒ Object
120 121 122 |
# File 'lib/htmlgrid/template.rb', line 120 def onload=(script) @attributes["onload"] = script end |
#other_html_headers(context) ⇒ Object
124 125 126 |
# File 'lib/htmlgrid/template.rb', line 124 def other_html_headers(context) dynamic_html_headers(context) end |
#template_html(context, &block) ⇒ Object
128 129 130 131 132 133 134 135 136 137 138 |
# File 'lib/htmlgrid/template.rb', line 128 def template_html(context, &block) args = {} if (dtd = @lookandfeel.lookup(:DOCTYPE)) args.store("DOCTYPE", dtd) end context.html(args) { html_head(context) << context.body(@attributes) { (context, &block) } } end |
#template_tags(context, &block) ⇒ Object
140 141 142 |
# File 'lib/htmlgrid/template.rb', line 140 def (context, &block) block.call end |
#title(context) ⇒ Object
144 145 146 |
# File 'lib/htmlgrid/template.rb', line 144 def title(context) context.title { @lookandfeel.lookup(:html_title) } end |
#to_html(context) ⇒ Object
148 149 150 151 152 |
# File 'lib/htmlgrid/template.rb', line 148 def to_html(context) template_html(context) { super(context) } end |