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')
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
- #get_inline(ressource) ⇒ 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
Instance Method Details
#__standard_component(model, klass) ⇒ Object
81 82 83 84 85 |
# File 'lib/htmlgrid/template.rb', line 81 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
48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/htmlgrid/template.rb', line 48 def css_link(context, path=@lookandfeel.resource(:css)) properties = { "rel" => "stylesheet", "type" => "text/css", "async" => "true", 'href' => path, } if (content = get_inline(path)) properties.delete('href') context.style(properties) { content } else context.link(properties) end end |
#css_links(context, path = @lookandfeel.resource(:css)) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/htmlgrid/template.rb', line 62 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
72 73 74 |
# File 'lib/htmlgrid/template.rb', line 72 def dynamic_html_headers(context) '' end |
#foot(model, session = nil) ⇒ Object
75 76 77 |
# File 'lib/htmlgrid/template.rb', line 75 def foot(model, session=nil) __standard_component(model, self::class::FOOT) end |
#get_inline(ressource) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/htmlgrid/template.rb', line 39 def get_inline(ressource) local_file = File.join(@@local_doc_dir, URI(ressource).path) if File.exist?(local_file) # puts "Reading #{ressource} #{local_file} #{File.size(local_file)}" File.read(local_file) else nil end end |
#head(model, session = nil) ⇒ Object
78 79 80 |
# File 'lib/htmlgrid/template.rb', line 78 def head(model, session=nil) __standard_component(model, self::class::HEAD) end |
#html_head(context, &block) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/htmlgrid/template.rb', line 86 def html_head(context, &block) context.head { if(block_given?) block.call end context.head << title(context) << (context) << other_html_headers(context) << css_links(context) << javascripts(context) } end |
#javascripts(context) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/htmlgrid/template.rb', line 98 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
109 110 111 112 113 |
# File 'lib/htmlgrid/template.rb', line 109 def (context) self::class::META_TAGS.inject('') { |inj, properties| inj << context.(properties) } end |
#onload=(script) ⇒ Object
114 115 116 |
# File 'lib/htmlgrid/template.rb', line 114 def onload=(script) @attributes['onload'] = script end |
#other_html_headers(context) ⇒ Object
117 118 119 |
# File 'lib/htmlgrid/template.rb', line 117 def other_html_headers(context) dynamic_html_headers(context) end |
#template_html(context, &block) ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/htmlgrid/template.rb', line 120 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
131 132 133 |
# File 'lib/htmlgrid/template.rb', line 131 def (context, &block) block.call end |
#title(context) ⇒ Object
134 135 136 |
# File 'lib/htmlgrid/template.rb', line 134 def title(context) context.title { @lookandfeel.lookup(:html_title) } end |
#to_html(context) ⇒ Object
137 138 139 140 141 |
# File 'lib/htmlgrid/template.rb', line 137 def to_html(context) template_html(context) { super(context) } end |