70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# File 'lib/fortitude/rails/rendering_methods.rb', line 70
def render_uniwith_fortitude(original_method, *args, &block)
if (options = args[0]).kind_of?(Hash) && (widget_block = options[:inline]) && (options[:type] == :fortitude)
options.delete(:inline)
rendering_context = fortitude_rendering_context_for(self, nil)
widget_class = Class.new(Fortitude::Widgets::Html5)
widget_class.use_instance_variables_for_assigns(true)
widget_class.(:use)
widget_class.send(:define_method, :content, &widget_block)
assigns = { }
instance_variables.each do |ivar_name|
value = instance_variable_get(ivar_name)
assigns[$1.to_sym] = value if ivar_name =~ /^@([^_].*)$/
end
assigns = assigns.merge(options[:locals] || { })
widget = widget_class.new(assigns)
new_args = [ options.merge(:widget => widget) ] + args[1..-1]
return original_method.call(*new_args, &block)
end
return original_method.call(*args, &block)
end
|