Packages

case class MicroBot[P, Q, W, V, ID](response: (V) => (P) => Future[Q], predicate: (P) => (V) => Boolean = (_: P) => (_ : V) => true, name: Option[String] = None)(implicit ppw: Postable[P, W, ID], qw: Postable[Q, W, ID], lv: LocalQueryable[V, W, ID], dg: DataGetter[Q, W, ID]) extends TypedPostResponse[P, W, ID] with Product with Serializable

Bot responding to a post returning a vector of posts, one for each value of the auxiliary queryable (in simple cases a singleton is returned)

response

the action of the bot

predicate

the condition the post must satisfy to trigger the bot

qw

postability of the response post type

lv

queryability of the other arguments

Linear Supertypes
Serializable, Product, Equals, TypedPostResponse[P, W, ID], PostResponse[W, ID], AnyRef, Any
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MicroBot
  2. Serializable
  3. Product
  4. Equals
  5. TypedPostResponse
  6. PostResponse
  7. AnyRef
  8. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new MicroBot(response: (V) => (P) => Future[Q], predicate: (P) => (V) => Boolean = (_: P) => (_ : V) => true, name: Option[String] = None)(implicit ppw: Postable[P, W, ID], qw: Postable[Q, W, ID], lv: LocalQueryable[V, W, ID], dg: DataGetter[Q, W, ID])

    response

    the action of the bot

    predicate

    the condition the post must satisfy to trigger the bot

    qw

    postability of the response post type

    lv

    queryability of the other arguments

Type Members

  1. type PostType = P
    Definition Classes
    TypedPostResponsePostResponse

Value Members

  1. def &&(that: TypedPostResponse[P, W, ID]): ConcurrentResponse[P, W, ID]
    Definition Classes
    TypedPostResponse
  2. def :+[QQ, VV](that: MicroBot[P, QQ, W, VV, ID])(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[QQ], arg1: scala.reflect.api.JavaUniverse.TypeTag[VV], qqw: Postable[QQ, W, ID], dgqq: DataGetter[QQ, W, ID], nilGetter: Postable[HNil, W, ID]): MicroBot[P, ::[Q, ::[QQ, HNil]], W, ::[V, ::[VV, HNil]], ID]
  3. def >>[Q](that: TypedPostResponse[Q, W, ID])(implicit qw: Postable[Q, W, ID], dg: DataGetter[Q, W, ID]): ComposedResponse[P, Q, W, ID]
    Definition Classes
    TypedPostResponse
  4. def andThen[Q, V](second: Callback[Q, W, V, ID])(implicit pw: Postable[P, W, ID], qw: Postable[Q, W, ID]): AndThen[P, Q, V, W, ID]
    Definition Classes
    TypedPostResponse
  5. implicit val dg: DataGetter[Q, W, ID]
  6. implicit val lv: LocalQueryable[V, W, ID]
  7. val name: Option[String]
  8. def post(web: W, content: P, id: ID): Future[Vector[PostData[_, W, ID]]]
    Definition Classes
    MicroBotTypedPostResponsePostResponse
  9. implicit val ppw: Postable[P, W, ID]
  10. val predicate: (P) => (V) => Boolean
  11. def productElementNames: Iterator[String]
    Definition Classes
    Product
  12. implicit val pw: Postable[P, W, ID]
    Definition Classes
    TypedPostResponse
  13. implicit val qw: Postable[Q, W, ID]
  14. def reduce[Q, R](reduction: (Vector[Q]) => R)(implicit qw: Postable[Q, W, ID], rw: Postable[R, W, ID], dgr: DataGetter[R, W, ID]): ReducedResponse[P, Q, R, W, ID]
    Definition Classes
    TypedPostResponse
  15. def respond(web: W)(pds: Vector[PostData[PostType, W, ID]]): Future[Vector[PostData[_, W, ID]]]
    Definition Classes
    PostResponse
  16. val response: (V) => (P) => Future[Q]
  17. def triggerMap[R](transform: (R) => P)(implicit rw: Postable[R, W, ID]): MicroBot[R, Q, W, ::[V, HNil], ID]
  18. def triggerWith[R](implicit rw: Postable[R, W, ID], pq: LocalQueryable[P, W, ID]): MicroBot[R, Q, W, ::[P, ::[V, HNil]], ID]