Class: Bade::Runtime::RenderBinding
- Inherits:
-
Object
- Object
- Bade::Runtime::RenderBinding
- Defined in:
- lib/bade/runtime/render_binding.rb
Defined Under Namespace
Classes: KeyError
Instance Attribute Summary collapse
-
#__base_indent ⇒ String
Holds.
- #__buffs_stack ⇒ Array<Array<String>>
- #__mixins ⇒ Hash<String, Mixin>
-
#__new_line ⇒ String
Holds.
Instance Method Summary collapse
-
#__buff ⇒ Object
— Methods for dealing with pushing and poping buffers in stack.
- #__buffs_pop ⇒ Object
- #__buffs_push ⇒ Object
-
#__create_block(name, &block) ⇒ Object
Shortcut for creating blocks.
- #__create_mixin(name, &block) ⇒ Object
- #__get_binding ⇒ Binding
-
#__html_escaped(text) ⇒ String
Escape input text with html escapes.
-
#__reset ⇒ nil
Resets this binding to default state, this method should be envoked after running the template lambda.
- #__tag_render_attribute(name, *values) ⇒ Object
-
#initialize(vars = {}) ⇒ RenderBinding
constructor
A new instance of RenderBinding.
Constructor Details
#initialize(vars = {}) ⇒ RenderBinding
Returns a new instance of RenderBinding.
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/bade/runtime/render_binding.rb', line 25 def initialize(vars = {}) __reset vars.each do |key, value| raise KeyError, "Already defined variable #{key.inspect} in this binding" if respond_to?(key.to_sym) define_singleton_method(key) do value end end end |
Instance Attribute Details
#__base_indent ⇒ String
Holds
21 22 23 |
# File 'lib/bade/runtime/render_binding.rb', line 21 def __base_indent @__base_indent end |
#__buffs_stack ⇒ Array<Array<String>>
12 13 14 |
# File 'lib/bade/runtime/render_binding.rb', line 12 def __buffs_stack @__buffs_stack end |
#__mixins ⇒ Hash<String, Mixin>
16 17 18 |
# File 'lib/bade/runtime/render_binding.rb', line 16 def __mixins @__mixins end |
#__new_line ⇒ String
Holds
21 22 23 |
# File 'lib/bade/runtime/render_binding.rb', line 21 def __new_line @__new_line end |
Instance Method Details
#__buff ⇒ Object
— Methods for dealing with pushing and poping buffers in stack
64 65 66 |
# File 'lib/bade/runtime/render_binding.rb', line 64 def __buff __buffs_stack.last end |
#__buffs_pop ⇒ Object
72 73 74 |
# File 'lib/bade/runtime/render_binding.rb', line 72 def __buffs_pop __buffs_stack.pop end |
#__buffs_push ⇒ Object
68 69 70 |
# File 'lib/bade/runtime/render_binding.rb', line 68 def __buffs_push __buffs_stack.push([]) end |
#__create_block(name, &block) ⇒ Object
Shortcut for creating blocks
54 55 56 |
# File 'lib/bade/runtime/render_binding.rb', line 54 def __create_block(name, &block) Bade::Runtime::Block.new(name, self, &block) end |
#__create_mixin(name, &block) ⇒ Object
58 59 60 |
# File 'lib/bade/runtime/render_binding.rb', line 58 def __create_mixin(name, &block) Bade::Runtime::Mixin.new(name, self, &block) end |
#__get_binding ⇒ Binding
48 49 50 |
# File 'lib/bade/runtime/render_binding.rb', line 48 def __get_binding binding end |
#__html_escaped(text) ⇒ String
Escape input text with html escapes
82 83 84 85 86 87 88 89 |
# File 'lib/bade/runtime/render_binding.rb', line 82 def __html_escaped(text) return nil if text.nil? text.gsub('&', '&') .gsub('<', '<') .gsub('>', '>') .gsub('"', '"') end |
#__reset ⇒ nil
Resets this binding to default state, this method should be envoked after running the template lambda
41 42 43 44 |
# File 'lib/bade/runtime/render_binding.rb', line 41 def __reset @__buffs_stack = [[]] @__mixins = Hash.new { |_hash, key| raise "Undefined mixin '#{key}'" } end |
#__tag_render_attribute(name, *values) ⇒ Object
91 92 93 94 95 96 |
# File 'lib/bade/runtime/render_binding.rb', line 91 def __tag_render_attribute(name, *values) values = values.compact return if values.empty? %( #{name}="#{values.join(' ')}") end |