/**
  * Create from the given result a Response instance and send it.
  *
  * @param mixed  $response
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 protected function processResponse($response)
 {
     if ($response instanceof Renderable) {
         // If the response which is returned from the called Action is a Renderable instance,
         // we will assume we want to render it using the Controller's templated environment.
         if (is_string($this->layout) && !$response instanceof Layout) {
             $response = Template::make($this->layout, $this->template)->with('content', $response);
         }
         // Create a proper Response instance.
         $response = new Response($response->render(), 200, array('Content-Type' => 'text/html'));
     }
     // If the response is not a instance of Symfony Response, create a proper one.
     if (!$response instanceof SymfonyResponse) {
         $response = new Response($response);
     }
     return $response;
 }
 /**
  * Create a new Error Response instance.
  *
  * The Response Status code will be set using the specified code.
  *
  * The specified error should match a View in your Views/Error directory.
  *
  * <code>
  *      // Create a 404 response.
  *      return Response::error('404');
  *
  *      // Create a 404 response with data.
  *      return Response::error('404', array('message' => 'Not Found'));
  * </code>
  *
  * @param  int       $code
  * @param  array     $data
  * @return Response
  */
 public static function error($status, array $data = array(), $headers = array())
 {
     $view = Template::make('default')->shares('title', 'Error ' . $status)->nest('content', 'Error/' . $status, $data);
     return static::make($view, $status, $headers);
 }
 /**
  * Display a one time Message, then clear it from the Session.
  *
  * @param  string $name default Session name
  *
  * @return string
  */
 public static function message($name = 'success')
 {
     if (!static::exists($name)) {
         return null;
     }
     // Pull the Message from Session.
     $message = Session::pull($name);
     if (is_array($message)) {
         // The Message is structured in the New Style.
         $name = $message['type'];
         $message = $message['text'];
     }
     // Prepare the allert Type and Icon.
     $type = null;
     switch ($name) {
         case 'info':
             $icon = 'info';
             break;
         case 'warning':
             $icon = 'warning';
             break;
         case 'danger':
             $icon = 'bomb';
             break;
         default:
             $icon = 'check';
             $type = 'success';
     }
     $type = $type !== null ? $type : $name;
     // Fetch the associated Template Fragment and return the result.
     return Template::make('message', compact('type', 'icon', 'message'))->render();
 }
 protected static function createMessage($message, $name = null)
 {
     if (is_array($message)) {
         $type = $message['type'];
         $message = $message['text'];
     } else {
         $type = $name;
     }
     // Adjust the alert Type.
     switch ($type) {
         case 'info':
         case 'success':
         case 'warning':
         case 'danger':
             break;
         default:
             $type = 'success';
             break;
     }
     // Handle the multiple line messages.
     if ($message instanceof MessageBag) {
         $message = $message->all();
     }
     // Handle the array messages.
     if (is_array($message)) {
         if (count($message) > 1) {
             $message = '<ul><li>' . implode('</li><li>', $message) . '</li></ul>';
         } else {
             if (!empty($message)) {
                 $message = array_shift($message);
             } else {
                 // An empty array?
                 $message = '';
             }
         }
     }
     // Fetch the associated Template Fragment and return the result.
     return Template::make('message', compact('type', 'message'), TEMPLATE)->render();
 }