Sha256: 8a0c5c67c3d5923c867cca3848ad7280d7eebd3b3d73ec933abb0381364d40c2
Contents?: true
Size: 1.17 KB
Versions: 5
Compression:
Stored size: 1.17 KB
Contents
module ApiTaster class FormBuilder < AbstractController::Base include AbstractController::Rendering include ActionView::Context include ActionView::Helpers::CaptureHelper self.view_paths = ApiTaster::Engine.root.join('app/views') def initialize(params) flush_output_buffer @_buffer = '' add_to_buffer(params) end def html @_buffer end private def add_to_buffer(params, parent_labels = []) params.each do |label, value| if value.is_a?(String) @_buffer += render( :partial => 'api_taster/routes/param_form_element', :locals => { :label => "#{print_labels(parent_labels)}#{label}", :label_text => label, :value => value } ) else parent_labels << label @_buffer += render( :partial => 'api_taster/routes/param_form_legend', :locals => { :label => print_labels(parent_labels) } ) add_to_buffer(value, parent_labels) end end end def print_labels(parent_labels) "[#{parent_labels * ']['}]" end end end
Version data entries
5 entries across 5 versions & 1 rubygems