-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Phil Pirj
committed
Nov 28, 2010
1 parent
fd97696
commit 4df9ed7
Showing
9 changed files
with
178 additions
and
118 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,3 +13,4 @@ src/retem/retem_parse.erl | |
src/retem/retem_scan.erl | ||
src/retem/retem.erl*.reb | ||
application_example/ryan.reb | ||
*.reb |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Ryan.get('/') do | ||
"hi, world. long time no see" | ||
end | ||
|
||
Ryan.get('/secret') do | ||
"secret page" | ||
end |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
#!/usr/bin/env reia | ||
|
||
module Go | ||
def run | ||
port = 8001 | ||
# port = args[1].to_int() if args[0] == '-p' or args[0] == '--port' | ||
|
||
# if args[0] == '-h' or args[0] == '--help' | ||
# help() | ||
# else | ||
dependencies() | ||
init_ets() | ||
erl.reia.load('app.re'.to_list()) | ||
|
||
erl.mochi_shim.start_mochi(port) | ||
# end | ||
end | ||
|
||
def dependencies | ||
'Loading Ryan libs: '.print() | ||
# ryan_dir = [erl.code.lib_dir().to_string(), 'ryan', 'lib'].join('/') | ||
ryan_dir = ['ebin'].join('/') | ||
# required = Dir.list(ryan_dir) | ||
required = ["controller.reb", "controllers.reb", "page.reb", "retem.reb", "core.reb", "session.reb"] | ||
required.each do |lib| | ||
'#{ryan_dir}/#{lib} '.print() | ||
erl.reia.load('#{ryan_dir}/#{lib}'.to_list()) | ||
end | ||
' done.'.puts() | ||
end | ||
|
||
def init_ets | ||
erl.ets.new(:sessions, [:named_table, :public]) | ||
erl.ets.new(:templates, [:named_table, :public]) | ||
end | ||
|
||
def help | ||
'Usage: ryan [--help|-h] [--port|-p <port_number>] [--yaws|--mochi]'.puts() | ||
end | ||
end | ||
|
||
"run #{Go.run()}".puts() |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,90 +1,90 @@ | ||
class Todos < Page | ||
def index | ||
on('#add_new', :click, '/app/todos/add_new') | ||
on('#today', :mouseover, '/app/todos/today') | ||
on('#tomorrow', :mouseover, '/app/todos/tomorrow') | ||
on('#few_days', :mouseover, '/app/todos/few_days') | ||
|
||
view('todos/index', {}) | ||
end | ||
|
||
def add_new | ||
on_get('#add', :click, '/app/todos/add_todo', '#todo_new_text') | ||
on('#cancel', :click, '/app/todos/add_cancel') | ||
|
||
page = view('todos/new', {}) | ||
update('#todo_new', page, 'slide') | ||
perform() | ||
end | ||
|
||
def add_cancel | ||
empty('#todo_new', 'slide') | ||
perform() | ||
end | ||
|
||
def add_todo | ||
day = @session.get(:current_day) | ||
todo_text = @parameters[:todo_new_text] | ||
todo = Todo({}.insert(:what, todo_text).insert(:when, day)) | ||
todo.save() | ||
|
||
page = view('todos/list', {}.insert(:todos, [todo.data()])) | ||
prepend('#todos', page, 'fade') | ||
hide('#todo_new', 'slide') | ||
perform() | ||
end | ||
|
||
def today | ||
for_range(:today) | ||
end | ||
|
||
def tomorrow | ||
for_range(:tomorrow) | ||
end | ||
|
||
def few_days | ||
for_range(:few_days) | ||
end | ||
|
||
def for_range(range) | ||
@session.set(:current_day, range) | ||
todos = Models.find(Todo, :when, range) | ||
todos = [todo.data() for todo in todos] | ||
|
||
on('a[icon=delete]', :click, '/app/todos/delete') | ||
toggleclass('#day_select ##{range}', :selected) | ||
|
||
page = view('todos/list', {}.insert(:todos, todos)) | ||
update('#todos', page, 'fade') | ||
perform() | ||
end | ||
|
||
def delete | ||
id = @parameters[:_id] | ||
hide('p[_id=#{id}] > a[_id=#{id}]', 'slide') | ||
|
||
on('p[_id=#{id}] a[icon=delete]', :click, '/app/todos/confirmed_delete') | ||
on('p[_id=#{id}] a[icon=no]', :click, '/app/todos/cancel_delete') | ||
|
||
page = view('todos/yesno', {}.insert(:_id, id)) | ||
append('p[_id=#{id}]', page, 'slide') | ||
perform() | ||
end | ||
|
||
def confirmed_delete | ||
# insecure! | ||
id = @parameters[:_id] | ||
Models.get(id).delete() | ||
|
||
empty('p[_id=#{id}]', 'slide') | ||
perform() | ||
end | ||
|
||
def cancel_delete | ||
id = @parameters[:_id] | ||
|
||
empty('p[_id=#{id}] span', 'slide') | ||
show('a[_id=#{id}]', 'slide') | ||
perform() | ||
end | ||
class Todos # < Page | ||
# def index | ||
# on('#add_new', :click, '/app/todos/add_new') | ||
# on('#today', :mouseover, '/app/todos/today') | ||
# on('#tomorrow', :mouseover, '/app/todos/tomorrow') | ||
# on('#few_days', :mouseover, '/app/todos/few_days') | ||
# | ||
# view('todos/index', {}) | ||
# end | ||
# | ||
# def add_new | ||
# on_get('#add', :click, '/app/todos/add_todo', '#todo_new_text') | ||
# on('#cancel', :click, '/app/todos/add_cancel') | ||
# | ||
# page = view('todos/new', {}) | ||
# update('#todo_new', page, 'slide') | ||
# perform() | ||
# end | ||
# | ||
# def add_cancel | ||
# empty('#todo_new', 'slide') | ||
# perform() | ||
# end | ||
# | ||
# def add_todo | ||
# day = @session.get(:current_day) | ||
# todo_text = @parameters[:todo_new_text] | ||
# todo = Todo({}.insert(:what, todo_text).insert(:when, day)) | ||
# todo.save() | ||
# | ||
# page = view('todos/list', {}.insert(:todos, [todo.data()])) | ||
# prepend('#todos', page, 'fade') | ||
# hide('#todo_new', 'slide') | ||
# perform() | ||
# end | ||
# | ||
# def today | ||
# for_range(:today) | ||
# end | ||
# | ||
# def tomorrow | ||
# for_range(:tomorrow) | ||
# end | ||
# | ||
# def few_days | ||
# for_range(:few_days) | ||
# end | ||
# | ||
# def for_range(range) | ||
# @session.set(:current_day, range) | ||
# todos = Models.find(Todo, :when, range) | ||
# todos = [todo.data() for todo in todos] | ||
# | ||
# on('a[icon=delete]', :click, '/app/todos/delete') | ||
# toggleclass('#day_select ##{range}', :selected) | ||
# | ||
# page = view('todos/list', {}.insert(:todos, todos)) | ||
# update('#todos', page, 'fade') | ||
# perform() | ||
# end | ||
# | ||
# def delete | ||
# id = @parameters[:_id] | ||
# hide('p[_id=#{id}] > a[_id=#{id}]', 'slide') | ||
# | ||
# on('p[_id=#{id}] a[icon=delete]', :click, '/app/todos/confirmed_delete') | ||
# on('p[_id=#{id}] a[icon=no]', :click, '/app/todos/cancel_delete') | ||
# | ||
# page = view('todos/yesno', {}.insert(:_id, id)) | ||
# append('p[_id=#{id}]', page, 'slide') | ||
# perform() | ||
# end | ||
# | ||
# def confirmed_delete | ||
# # insecure! | ||
# id = @parameters[:_id] | ||
# Models.get(id).delete() | ||
# | ||
# empty('p[_id=#{id}]', 'slide') | ||
# perform() | ||
# end | ||
# | ||
# def cancel_delete | ||
# id = @parameters[:_id] | ||
# | ||
# empty('p[_id=#{id}] span', 'slide') | ||
# show('a[_id=#{id}]', 'slide') | ||
# perform() | ||
# end | ||
end |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,8 @@ | ||
if Models.all(Todo).size() == 0 | ||
todos = [{:what => 'buy milk', :when => :today}, {:what => 'call parents', :when => :tomorrow}, {:what => 'visit dentist', :when => :few_days}] | ||
|
||
todos.each do |todo| | ||
Todo(todo).save() | ||
end | ||
end | ||
# if Models.all(Todo).size() == 0 | ||
# todos = [{:what => 'buy milk', :when => :today}, {:what => 'call parents', :when => :tomorrow}, {:what => 'visit dentist', :when => :few_days}] | ||
# | ||
# todos.each do |todo| | ||
# Todo(todo).save() | ||
# end | ||
# end | ||
"startup".puts() |
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
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