class Jcompiler def self.b(brand) ["\"id\":#{brand.id}", "\"name\":\"#{brand.name}\""] end def self.a(brands) brands.map do |brand| "{#{b(brand).join(',')}}" end end def self.code(brands) "[#{a(brands).join(',')}]" end end class JcompilerHandler cattr_accessor :default_format self.default_format = Mime::JSON def self.call(template) "Jcompiler.code(@brands)" end end ActionView::Template.register_template_handler :jcompiler, JcompilerHandler