Created
April 28, 2014 13:18
-
-
Save sebastjan-hribar/11371787 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'camping' | |
Camping.goes :Test | |
module Test::Models | |
class Post < Base | |
end | |
class BasicFields < V 1.0 | |
def self.up | |
create_table Post.table_name do |t| | |
t.string :title | |
end | |
end | |
def self.down | |
drop_table Post.table_name | |
end | |
end | |
end | |
module Test::Controllers | |
class Index | |
def get | |
@posts = Post.find(:all) | |
render :index | |
end | |
end | |
class PostNew | |
def get | |
@post = Post.new | |
render :new | |
end | |
def post | |
@post = Post.create(title: input.title) | |
redirect PostN, @post | |
end | |
end | |
class PostN | |
def get(id) | |
@post = Post.find(id) | |
render :view | |
end | |
end | |
class PostNEdit | |
def get(id) | |
@post = Post.find(id) | |
render :edit | |
end | |
def post(id) | |
@post = Post.find(id) | |
@post.update_attribute(:title, input.title) | |
redirect PostN, @post | |
end | |
end | |
end | |
module Test::Views | |
def layout | |
html do | |
head do | |
meta charset: "UTF-8" | |
title 'test' | |
end | |
body do | |
self << yield | |
end | |
end | |
end | |
def index | |
p "All posts" | |
@posts.each do |post| | |
ul do | |
li do | |
a post.title, href: R(PostN, post) | |
end | |
end | |
end | |
a "New post", href: R(PostNew) | |
end | |
def new | |
_form(action: R(PostNew)) | |
end | |
def edit | |
_form(action: R(PostNEdit, @post)) | |
end | |
def _form(route) | |
form route, method: 'post' do | |
label 'Title: ', for: 'title' | |
input type: 'text', name: 'title', | |
value: @post.title | |
input type: 'submit', value: 'Submit' | |
end | |
end | |
def view | |
h1 "Display post" | |
a "Home", href: R(Index) | |
hr | |
@post.attributes.each do |attribute| | |
p attribute | |
end | |
a "Edit", href: R(PostNEdit, @post) | |
end | |
end | |
def Test.create | |
Test::Models.create_schema | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment