Sha256: 765aa92e7250222761d58708372014e6ac9dfb7a77c9a46fe9b54c977945ffe6

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

import java.util.HashMap
import java.util.regex.Pattern

import javax.servlet.http.HttpServlet

import com.google.appengine.api.datastore.Text
import com.google.appengine.ext.duby.db.Model

class Post < Model
  property 'title', String
  property 'body', Text
end

class MirahApp < HttpServlet
  def_edb(list, 'org/mirah/list.dhtml')

  def doGet(request, response)
    @posts = Post.all.run
    response.getWriter.write(list)
  end

  def doPost(request, response)
    post = Post.new
    post.title = request.getParameter('title')
    post.body = request.getParameter('body')
    post.save
    doGet(request, response)
  end


  def initialize
    @escape_pattern = Pattern.compile("[<>&'\"]")
    @escaped = HashMap.new
    @escaped.put("<", "&lt;")
    @escaped.put(">", "&gt;")
    @escaped.put("&", "&amp;")
    @escaped.put("\"", "&quot;")
    @escaped.put("'", "&#39;")
  end

  def h(text:String)
    return "" unless text
    matcher = @escape_pattern.matcher(text)
    buffer = StringBuffer.new
    while matcher.find
      replacement = String(@escaped.get(matcher.group))
      matcher.appendReplacement(buffer, replacement)
    end
    matcher.appendTail(buffer)
    return buffer.toString
  end

  def h(o:Object)
    return "" unless o
    h(o.toString)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mirah-0.0.4-java examples/appengine/src/org/mirah/MirahApp.mirah