Module: S2P::Component
- Defined in:
- lib/s2p/component.rb
Defined Under Namespace
Modules: ClassMethods
Classes: Buffer
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.helpers ⇒ Object
4
|
# File 'lib/s2p/component.rb', line 4
def self.helpers = self.renderer.helpers
|
.included(base) ⇒ Object
19
|
# File 'lib/s2p/component.rb', line 19
def self.included(base) = base.extend(ClassMethods)
|
.renderer ⇒ Object
3
|
# File 'lib/s2p/component.rb', line 3
def self.renderer = ApplicationController
|
Instance Method Details
#+(other) ⇒ Object
29
|
# File 'lib/s2p/component.rb', line 29
def +(other) = Buffer.new(to_s + other.to_s)
|
#accepts_slot(block) ⇒ Object
31
|
# File 'lib/s2p/component.rb', line 31
def accepts_slot(block) = @_slot = block
|
#capture(&block) ⇒ Object
33
|
# File 'lib/s2p/component.rb', line 33
def capture(&block) = block.call.to_s.html_safe
|
#default_template_name ⇒ Object
35
|
# File 'lib/s2p/component.rb', line 35
def default_template_name = "shared/#{self.class.name.underscore}"
|
#o(&block) ⇒ Object
27
|
# File 'lib/s2p/component.rb', line 27
def o(&block) = block.binding.receiver.capture(&block)
|
#render_in(context) ⇒ Object
41
|
# File 'lib/s2p/component.rb', line 41
def render_in(context) = context.render(:inline => to_html)
|
#slot ⇒ Object
45
46
47
48
49
|
# File 'lib/s2p/component.rb', line 45
def slot
context = @_slot.binding.receiver
context.capture { @_slot.call.to_s }
end
|
#t(template, **locals) ⇒ Object
21
|
# File 'lib/s2p/component.rb', line 21
def t(template, **locals) = renderer.render(inline: template, locals:)
|
#t!(template, **locals) ⇒ Object
23
|
# File 'lib/s2p/component.rb', line 23
def t!(template, **locals) = renderer.render(template, locals:, layout: nil)
|
#to_html ⇒ Object
51
52
53
54
55
56
57
58
59
|
# File 'lib/s2p/component.rb', line 51
def to_html
helpers.capture do
if self.class.const_defined?(:TEMPLATE)
t(self.class.const_get(:TEMPLATE), c: self, x: self.x )
else
t!(default_template_name, c: self, x: self.x )
end
end
end
|
#to_s ⇒ Object
43
|
# File 'lib/s2p/component.rb', line 43
def to_s = to_html
|
#x ⇒ Object
25
|
# File 'lib/s2p/component.rb', line 25
def x = helpers.tag
|