1. Monk, a ragasztó
Bácsi László, lackac.hu
na meg ruby.meetup.hu ;)
2009. szeptember 17.
2. Monk, a ragasztó
“Monk is a glue framework for web
development in Ruby. It’s truly modular by
relying on the best tool for each job. It’s
also pretty fast thanks to Rack and Sinatra.”
2009. szeptember 17.
3. Tehát a Monk igazából
Sinatra?
Sinatra
Contest
Rack::Test
Webrat
Ohm (Redis)
logger, settings hash, development reloading
2009. szeptember 17.
4. Kezdeti lépések
$ sudo gem install monk
$ monk init myapp
git://github.com/monkrb/skeleton.rb
2009. szeptember 17.
5. Felépítés
./app ./config
./app/helpers ./lib
./app/models ./vendor
./app/routes etc.
./app/views
2009. szeptember 17.
6. Routes
1 class Main
2 get "/" do
3 haml :home
4 end
5
6 ...
7 end
2009. szeptember 17.
8. Models
Ohm (Redis)
1 class Player < Ohm::Model
2 attribute :name
3 set :nicknames
4 list Games
5 counter :wins
6
7 index :name
8
9 def validate
10 assert_present :name
11 end
12 end
2009. szeptember 17.
9. Ohm
1 >> require "ohm"
2 => true
3 >> Ohm.connect
4 => []
5 >> Ohm.redis.set "Foo", "Bar"
6 => "OK"
7 >> Ohm.redis.get "Foo"
8 => "Bar"
1 player = Players.create :name => "Michael Jordan"
2 player.id
3 # => 1
4
5 # Find a player by id
6 player == Player[1]
7 # => true
8
9 # Trying to find a non existent player
10 Player[2]
11 # => nil
2009. szeptember 17.
10. Helpers
1 class Main
2 helpers do
3 def my_helper
4 ...
5 end
6
7 ...
8 end
9 end
2009. szeptember 17.