def object_to_engine(object, options = {}, &block)
      return if object.nil?

      options.reverse_merge!({
        :format     => "hash".freeze,
        :view_path  => view_path,
        :root       => (options[:root] || false)
      })

      Engine.new(options[:source], options).apply(context_scope, :object => object, :locals => options[:locals], &block)
    end
def object_to_engine(object, options = {}, &block)
      return if object.nil?

      options.reverse_merge!({
        :format     => "hash".freeze,
        :view_path  => view_path,
        :root       => (options[:root] || false)
      })

      Engine.new(options[:source], options).apply(context_scope, :object => object, :locals => options[:locals], &block)
    end
Returns an Engine based representation of any data object given ejs template block
 object_to_engine(@user) { attribute :full_name } => { ... }
 object_to_engine(@user, :source => "...") { attribute :full_name } => { ... }
 object_to_engine([@user], :source => "...") { attribute :full_name } => { ... }
 options must have :source (rabl file contents)
 options can have :source_location (source filename)