skinny.controller

feature

package feature

Visibility
  1. Public
  2. All

Type Members

  1. trait ActionDefinitionFeature extends ScalatraBase

    Action definitions for this controller.

    Action definitions for this controller. These definitions will be used for beforeAction/afterAction's only/except.

  2. trait AngularJSONFeature extends JSONFeature with AngularJSONStringOps

    Angular application's server side API support.

  3. trait AngularXHRServerFeature extends AngularJSONFeature with JSONParamsAutoBinderFeature with AngularXSRFProtectionFeature

    Server side implementation for Angular apps.

  4. trait AngularXSRFCookieProviderFeature extends AnyRef

    Angular.js Cross Site Request Forgery (XSRF) Protection support.

    Angular.js Cross Site Request Forgery (XSRF) Protection support.

    https://docs.angularjs.org/api/ng/service/$http#cross-site-request-forgery-xsrf-protection

  5. trait AngularXSRFProtectionFeature extends AngularXSRFCookieProviderFeature

    Angular.js Cross Site Request Forgery (XSRF) Protection support.

    Angular.js Cross Site Request Forgery (XSRF) Protection support.

    https://docs.angularjs.org/api/ng/service/$http#cross-site-request-forgery-xsrf-protection

  6. trait BeforeAfterActionFeature extends ScalatraBase

    beforeAction/afterAction support.

    beforeAction/afterAction support.

    See also

    http://guides.rubyonrails.org/action_controller_overview.html

  7. trait CSRFProtectionFeature extends CsrfTokenSupport

    Provides Cross-Site Request Forgery (CSRF) protection.

  8. trait EnvFeature extends ScalatraBase

    SkinnyEnv support.

  9. trait ExplicitRedirectFeature extends SkinnyScalatraBase

    Explicit redirect method support.

  10. trait FileUploadFeature extends FileUploadSupport

    File upload feature.

    File upload feature.

    When using file upload feature, we cannot use SkinnyController(= serlvet Filter) due to Servlet restriction.

    // src/main/scala/controller/FileUploadController.scala
    
    class FileUploadController extends SkinnyServlet with FileUploadFeature {
      def form = render("/fileUpload/form")
      def submit = {
        fileParams.get("file") match {
          case Some(file) => println(new String(file.get()))
          case None => println("file not found")
        }
      redirect(url(Controllers.fileUpload.formUrl))
    }
    
    // src/main/scala/controller/Controllers.scala
    
    object fileUpload extends FileUploadController with Routes {
      val formUrl = get("/fileupload")(form).as('form)
      val submitUrl = post("/fileupload/submit")(submit).as('submit)
    }
    fileUpload.mount(ctx)
  11. trait FlashFeature extends FlashMapSupport

    Easy-to-use Flash support.

  12. trait FutureOpsFeature extends AnyRef

    Provides seamless Future operations within SkinnyController.

    Provides seamless Future operations within SkinnyController. This trait enables accessing request, session and RequestScope from Future operations safely.

    import scala.concurrent._
    import scala.concurrent.duration._
    import scala.concurrent.ExecutionContext.Implicits.global
    
    class SomeControllerOps(controller: SomeController) {
      def setOther(implicit req: HttpServletRequest) = {
        controller.set("bar", Seq(1,2,3)) // implicit request is not ambiguous here
      }
    }
    
    class SomeController extends ApplicationController {
      def index = {
        val ops = new SomeControllerOps(this)
        awaitFutures(5.seconds)(
          futureWithRequest { implicit req =>
            // Explicitly specify HttpServletRequest here
            set("foo" -> FooService.getSomething()))(req)
          },
          futureWithRequest(req => ops.setOther(req))
        )
        render("/some/index")
      }
    }
  13. trait JSONFeature extends JacksonJsonSupport with JSONStringOps

    JSON response support.

  14. trait JSONParamsAutoBinderFeature extends SkinnyScalatraBase with JSONFeature with logging.Logging

    Merging JSON request body into Scalatra params.

    Merging JSON request body into Scalatra params.

    When you'd like to avoid merging JSON request body into params in some actions, please separate controllers.

  15. trait LocaleFeature extends ScalatraBase

    Easy-to-use default/session-based Locale configuration.

  16. trait RequestScopeFeature extends ScalatraBase with SnakeCasedParamKeysFeature with LocaleFeature with logging.Logging

    Request scope support.

  17. trait RichRouteFeature extends ScalatraBase

    RichRoute support.

  18. trait ScalateTemplateEngineFeature extends TemplateEngineFeature with ScalateSupport

    Scalate implementation of TemplateEngineSupport.

    Scalate implementation of TemplateEngineSupport.

    This is basically same as Scalatra's Scalate support, but the convention of template file path is inspired by Ruby on Rails.

    render("/members/index")

    The above code expects "src/main/webapp/WEB-INF/views/members/index.html.ssp" by default.

    If you need to use scaml instead,

    override lazy val scalateExtension: String = "scaml"

    And then, Skinny expects "src/main/webapp/WEB-INF/views/members/index.html.scaml"

  19. trait SensitiveParametersFeature extends AnyRef

    Filtering sensitive parameters.

    Filtering sensitive parameters.

    config.filter_parameters in Rails.

  20. trait SnakeCasedParamKeysFeature extends ScalatraBase

    Supports snake_case'd keys for parameter names.

  21. trait TemplateEngineFeature extends SkinnyControllerBase with RequestScopeFeature with JSONFeature with logging.Logging

    TemplateEngine support for Skinny app.

  22. trait ThreadLocalRequestFeature extends AnyRef

  23. trait TimeLoggingFeature extends TimeLogging with SensitiveParametersFeature

    Enables time logging.

  24. trait ValidationFeature extends AnyRef

    Validation support for Skinny app.

Value Members

  1. object AngularJSSpecification

  2. object CSRFProtectionFeature

  3. object RequestScopeFeature extends logging.Logging

Ungrouped