Skip to content

Commit

Permalink
move #3
Browse files Browse the repository at this point in the history
  • Loading branch information
Phil Pirj committed Nov 28, 2010
1 parent fd97696 commit 4df9ed7
Show file tree
Hide file tree
Showing 9 changed files with 178 additions and 118 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ src/retem/retem_parse.erl
src/retem/retem_scan.erl
src/retem/retem.erl*.reb
application_example/ryan.reb
*.reb
32 changes: 19 additions & 13 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ mochi:

uninstall:
rm -rf $(RYAN_LIB)
rm -f $(PREFIX)/bin/ryan.re
rm -f $(PREFIX)/bin/behave
rm -f $(PREFIX)/bin/ryan.reb
# rm -f $(PREFIX)/bin/behave

install: all uninstall
mkdir $(RYAN_LIB)
Expand All @@ -39,22 +39,28 @@ install: all uninstall
cp README.md $(RYAN_LIB)
cp -r ebin $(RYAN_LIB)

cp src/behave/behave.re $(RYAN_LIB_RE)
cp src/retem/retem.re $(RYAN_LIB_RE)
cp src/core/*.re $(RYAN_LIB_RE)
# cp src/behave/behave.reb $(RYAN_LIB_RE)
cp ebin/*.reb $(RYAN_LIB_RE)

mkdir -p /usr/local/bin
rm -rf /usr/local/bin/ryan.re
cp bin/ryan.re /usr/local/bin
cp bin/behave /usr/local/bin
mkdir -p $(PREFIX)/bin
cp ebin/ryan.reb $(PREFIX)/bin
# cp bin/behave $(PREFIX)/bin

chmod 0755 /usr/local/bin/ryan.re
chmod 0755 /usr/local/bin/behave
chmod 0755 $(PREFIX)/bin/ryan.reb
# chmod 0755 $(PREFIX)/bin/behave

compile:
mkdir -p ebin
erlc -o ebin +debug_info src/**/*.erl

reiac -o ebin/ryan.reb bin/ryan.re
reiac -o ebin/controller.reb src/core/controller.re
reiac -o ebin/controllers.reb src/core/controllers.re
reiac -o ebin/page.reb src/core/page.re
reiac -o ebin/retem.reb src/retem/retem.re
reiac -o ebin/core.reb src/core/core.re
reiac -o ebin/session.reb src/core/session.re

# Compile retem_scan using leex
src/retem/retem_scan.erl:
bin/leex src/retem/retem_scan.xrl
Expand All @@ -63,8 +69,8 @@ src/retem/retem_scan.erl:
src/retem/retem_parse.erl:
bin/yecc src/retem/retem_parse.yrl

behave:
reia behave/all.re
# behave:
# reia behave/all.re

clean:
rm -f ebin/*
Expand Down
7 changes: 7 additions & 0 deletions app_example/app.re
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
42 changes: 42 additions & 0 deletions app_example/go.re
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()
11 changes: 6 additions & 5 deletions application_example/goryan.re
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module GoRyan
# init_db()
# load_models()
load_pages()
erl.reia.load('startup.re')
erl.reia.load('startup.re'.to_list())

# if [a for a in args, a=='--yaws'].size() == 0
erl.mochi_shim.start_mochi(port)
Expand All @@ -30,9 +30,10 @@ module GoRyan

def dependencies
'Loading Ryan libs: '.print()
ryan_dir = [erl.code.lib_dir().to_string(), 'ryan', 'lib'].join('/')
# ryan_dir = [erl.code.lib_dir().to_string(), 'ryan', 'lib'].join('/')
ryan_dir = ['ebin'].join('/')
# required = Dir.list(ryan_dir)
required = ["controller.re", "controllers.re", "page.re", "retem.re", "ryan.re", "session.re"]
required = ["controller.reb", "controllers.reb", "page.reb", "retem.reb", "core.reb", "session.reb"]
# "behave.re", "model.re",
required.each do |lib|
'#{ryan_dir}/#{lib} '.print()
Expand Down Expand Up @@ -64,11 +65,11 @@ module GoRyan
# end

def load_pages
'Loading pages: '.print()
'Loading pages: '.puts()
(:ok, pages) = erl.file.list_dir('pages'.to_list())
pages.each do |page|
p = page.to_binary()
'#{p} '.print()
'loading #{p} '.puts()
erl.reia.load('pages/#{p}'.to_list())
end
' done.'.puts()
Expand Down
178 changes: 89 additions & 89 deletions application_example/pages/todos.re
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
15 changes: 8 additions & 7 deletions application_example/startup.re
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()
6 changes: 2 additions & 4 deletions src/core/controller.re
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
class Controller
def initialize(session, parameters)
@session = session
@parameters = parameters
class Controlller
def initialize(@session, @parameters)
end

# redirect to url
Expand Down
4 changes: 4 additions & 0 deletions src/core/ryan.re → src/core/core.re
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
module Ryan
def get(path, &block)
"path #{path} defined"
end
def out(abspath, method, path_parts, session_token, parameters)
(_h, is, ins) = erl.erlang.now()
path_parts = path_parts.map { |part| part.to_string() }.to_tuple()
Expand Down

0 comments on commit 4df9ed7

Please sign in to comment.