- •Затверджений
- •02070743.00569-01 81 01
- •2.1. Вступ
- •02070743.00569-01 81 01
- •2.2.1.1. Статичний html
- •5 02070743.00569-01 81 012.2.1.2 Cgi
- •2.2.1.3. Active Server Pages і asp.Net
- •02070743.00569-01 81 01
- •702070743.00569-01 81 012.2.1.4. Asynchronous Javascript and xml
- •2.3. Мови реалізації мережевих технології
- •9 02070743.00569-01 81 012.3.3. C# і vb.Net
- •02070743.00569-01 81 01
- •2.4. Безкоштовні технології
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •2.5. Мова програмування Ruby
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •2.6. Конкретизація задачі
- •2.6.1. Ruby для Web-застосувань
- •02070743.00569-01 81 01
- •2.6.1.2. Ruby on Rails
- •2.6.1.3. Принципи і техніка
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •2.6.1.5. Додаткові інструменти і бібліотеки
- •02070743.00569-01 81 01
- •2.7. Ruby і Web-сервер
- •02070743.00569-01 81 01
- •2.7.1. Модуль mod_ruby
- •02070743.00569-01 81 01
- •2.2.2. Сервер weBrick
- •02070743.00569-01 81 01
- •2.7.3. Сервер Mongrel
- •02070743.00569-01 81 01
- •26 02070743.00569-01 81 012.8. Особливості розробки алгоритмів для Ruby
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
- •02070743.00569-01 81 01
2502070743.00569-01 81 01
raongrel_rails start –G myconfig.yml –p 3000 –r /home/hal/docs –1 my.log
Задані параметри будуть збережені (у форматі YAML) у файлі myconfig.yml (за наявності прапора –G сервер завершується відразу після створення конфігураційного файлу).
Для читання параметрів з конфігураційного файлу задайте прапор –C:
mongrel_rails start –С myconfig.yml
Не вживайте прапор –с разом з іншими. Він передбачає, що всі параметри знаходяться у вказаному файлі.
Mongrel пропонує API для тонкого налаштування поведінки сервера. Прапор –S дозволяє задати ім'я сценарію, написаного з використанням цього API, який є невеликою мовою наочної області (DSL – Domain-Specific Language). У документацію наведений приклад такого сценарію (який додає обробник для каталога, відмінного від поточного):
# Файл: config/mongrel.conf
uri "/newstuff" :handler => DirHandler.new("/var/www/newstuff")
Викликається такою командою:
mongrel_rails start –S config/mongrel.conf
Якщо ви активно працюєте з Mongrel, то вас може зацікавити система GemPlugin. Це, по суті, автозавантажувані gem-пакети, які стають «частиною» Mongrel. Наприклад, модуль «Mongrel cluster» дозволяє легко управляти кластером серверів Mongrel.
26 02070743.00569-01 81 012.8. Особливості розробки алгоритмів для Ruby
Розглянемо на прикладі особливості розробки і реалізації алгоритмів для Ruby. Для цього створимо сторінку з вікном введення і кнопкою «Зберегти», при натисненні на яку відбувається збереження тексту з вікна введення у файл notepad.txt. Введення здійснюється через браузер за адресою http://localhost:8080. Сервер запускатимемо на порт 8080. Тепер, власне, сама програма:
require 'webrick'
server = WEBrick::HTTPServer.new(:Port=>8080)
server.mount_proc('/'){ |req, resp|
File.open('notepad.txt', 'w'){ |f| f.write(req.query["text"]) } if req.query["text"]
resp['Content-Type']= 'text/html'
resp.body = %& <html><body><center><form method="post">
<textarea name="text" rows="4" cols="40">#{IO.read('notepad.txt')}</textarea><br/>
<input type="submit" name="update" value="Сохранить"/>
</form></center></body></html></nowiki>&
}
server.start
Розглянемо код детальніше:
require 'webrick' – підключення бібліотеки WEBrick для побудови серверів (у тому числі і Web-сервер-серверів).
:Port=>8080 – асоціативний масив із значенем порту. Коли порт 80 зайнятий, доводиться шукати інший. Винятковою магічною силою порт 8080 не володіє. Тому, за бажання, його можна змінити на іншій.
server.mount_proc('/') – на віртуальну кореневу директорію ми вішаємо процедурний сервлет. Він займатиметься обробкою запиту на адресу http://localhost:8080/, тобто звернення до віртуальної кореневої директорії. Аби змінити запит, на який відгукуватиметься сервлет, досить замінити рядок '/' на іншу, наприклад '/notepad'. Тоді, адреса сервлета буде http://localhost:8080/notepad.