Skip to content

Instantly share code, notes, and snippets.

@XuefengWu
XuefengWu / Mailloy.scala
Created March 27, 2012 08:01 — forked from crockpotveggies/Mailloy.scala
A mailer trait for sending HTML emails for Play! Framework 2.0
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@XuefengWu
XuefengWu / UndirectedGraph
Created November 17, 2013 10:41
UndirectedGraph for demo
package rel
import scala.collection.mutable.ListBuffer
case class Graph(adj: Array[ListBuffer[Int]])
object GraphBuild {
def apply(size: Int, data: (Int,Int) *) = {
val vertexs = new Array[ListBuffer[Int]](size)
@XuefengWu
XuefengWu / PackageClassReader
Created November 17, 2013 10:42
Read classes from pageckage
package rel
object PackageClassReaderDemo extends App{
println(PackageClassReader.getClassNamesFromPackage("org.apache.spark.examples","/Users/xfwu/hadoop/workspace/app/app.jar").mkString("\n"))
}
object PackageClassReader {
def getClassNamesFromPackage(packageName: String,file:String): Seq[String] = {
@XuefengWu
XuefengWu / CatchingUrl
Created November 17, 2013 23:59
CSV.parse and url regular expression
package myaccount
import scala.util.parsing.combinator.RegexParsers
object CatchingUrl extends App {
val path = "/Users/twer/Downloads/Enquiries - 107718461.csv"
val urlPat = """(.*)([ \t\r\n\f=]+(https?://)?([\d\w-]+\.)+[A-Za-z]+[\w- ./?%&=]*)(.*)""".r
val lines = CSV.parse(path)
lines.map {
@XuefengWu
XuefengWu / yarn-site.xml
Created November 21, 2013 11:29
yarn-site.xml for hadoop 2.0.5 example
<?xml version="1.0"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
/**
* Algebraic Data Type (ADT) for results that the business layers return to controllers.
* It has two cases:
* <ul>
* <li> OKResult wrapping a value
* <li> FailedResult containing a discriminator value and a list of error messages.
* <ul>
* Author: https://github.com/kenbot
*/
sealed trait BusinessResult[+A] {
import scala.util.{Failure, Success, Try}
import play.api.libs.json.{Json, JsValue}
import play.api.LoggerLike
trait BusinessProcess extends PropertiesContext {
def logger: LoggerLike
def processRequest[A, B](bodyExtractor: => A, doBusiness: A => BusinessResult[B]): BusinessResult[B] = {
package myaccount.rest
import com.dius.pact.model.{Request, Pact}
import com.dius.pact.runner.PactFileSource
import org.specs2.mutable.Specification
import play.api.test.WithServer
import play.api.libs.ws.WS
import play.api.test.Helpers._
import scala.concurrent.Await
import scala.concurrent.duration._
package com.dius.pact.runner
import spray.routing.SimpleRoutingApp
import akka.actor.ActorSystem
import com.dius.pact.model.{Interaction, Pact}
object PactMockService extends App with SimpleRoutingApp {
implicit val system = ActorSystem("pack-mock-system")
val basePath = "src/test/resources"
{
"provider": {
"name": "Activate Service"
},
"consumer": {
"name": "Zoo App"
},
"interactions": [
{
"description": "Activate user with empty request body",