Module: Serbea::Helpers
- Defined in:
- lib/serbea/helpers.rb
Class Method Summary collapse
Instance Method Summary collapse
- #append(old_string, new_string) ⇒ Object
- #assign_to(input, varname, preserve: false) ⇒ Object
- #capture(*args) ⇒ Object
- #h(input) ⇒ Object (also: #escape)
- #helper(name, &helper_block) ⇒ Object (also: #macro)
- #import(*args, **kwargs, &block) ⇒ Object
- #pipeline(context, value) ⇒ Object
- #prepend(old_string, new_string) ⇒ Object
- #safe(input) ⇒ Object (also: #raw)
Class Method Details
.included(mod) ⇒ Object
16 17 18 |
# File 'lib/serbea/helpers.rb', line 16 def self.included(mod) Serbea::Pipeline.deny_value_method %i(escape h prepend append assign_to) end |
Instance Method Details
#append(old_string, new_string) ⇒ Object
63 64 65 |
# File 'lib/serbea/helpers.rb', line 63 def append(old_string, new_string) "#{old_string}#{new_string}" end |
#assign_to(input, varname, preserve: false) ⇒ Object
67 68 69 70 |
# File 'lib/serbea/helpers.rb', line 67 def assign_to(input, varname, preserve: false) self.instance_variable_set("@#{varname}", input) preserve ? input : nil end |
#capture(*args) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/serbea/helpers.rb', line 20 def capture(*args) previous_buffer_state = @_erbout @_erbout = Serbea::OutputBuffer.new result = yield(*args) result = @_erbout.empty? ? result : @_erbout @_erbout = previous_buffer_state Serbea::OutputBuffer === result ? result.html_safe : result end |
#h(input) ⇒ Object Also known as: escape
49 50 51 |
# File 'lib/serbea/helpers.rb', line 49 def h(input) Erubi.h(input.to_s) end |
#helper(name, &helper_block) ⇒ Object Also known as: macro
34 35 36 37 38 |
# File 'lib/serbea/helpers.rb', line 34 def helper(name, &helper_block) self.class.define_method(name) do |*args, **kwargs, &block| capture { helper_block.call(*args, **kwargs, &block) } end end |
#import(*args, **kwargs, &block) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/serbea/helpers.rb', line 41 def import(*args, **kwargs, &block) helper_names = %i(partial render) available_helper = helper_names.find { |meth| respond_to?(meth) } raise Serbea::Error, "Serbea Error: no `render' or `partial' helper available in #{self.class}" unless available_helper available_helper == :partial ? partial(*args, **kwargs, &block) : render(*args, **kwargs, &block) nil end |
#pipeline(context, value) ⇒ Object
30 31 32 |
# File 'lib/serbea/helpers.rb', line 30 def pipeline(context, value) Pipeline.new(context, value) end |
#prepend(old_string, new_string) ⇒ Object
59 60 61 |
# File 'lib/serbea/helpers.rb', line 59 def prepend(old_string, new_string) "#{new_string}#{old_string}" end |
#safe(input) ⇒ Object Also known as: raw
54 55 56 |
# File 'lib/serbea/helpers.rb', line 54 def safe(input) input.to_s.html_safe end |