diff --git a/README.ru.rdoc b/README.ru.rdoc
index e55c0022..0d368fca 100644
--- a/README.ru.rdoc
+++ b/README.ru.rdoc
@@ -69,7 +69,7 @@ Sinatra — это предметно-ориентированный язык (D
params[:splat] # => ["path/to/file", "xml"]
end
-Маршруты также могут использовать регулярные выражение в качестве шаблона URL:
+Маршруты также могут использовать регулярные выражения в качестве шаблона URL:
get %r{/hello/([\w]+)} do
"Hello, #{params[:captures].first}!"
@@ -122,8 +122,8 @@ Sinatra — это предметно-ориентированный язык (D
=== Возвращаемые значения
Возвращаемое значение блока маршрута ограничивается телом ответа, которое будет передано HTTP клиенту,
-или следующей подпрограммой (middleware) в Rack стеке. Чаще всего это строка, как в выше изложенных примерах.
-Но и другие значения также приемлимы.
+или следующей подпрограммой (middleware) в Rack стеке. Чаще всего это строка, как в вышеизложенных примерах.
+Но и другие значения также приемлемы.
Вы можете вернуть любой объект, который будет либо корректным Rack ответом, Rack
телом ответа, либо кодом состояния HTTP:
@@ -163,7 +163,7 @@ Sinatra — это предметно-ориентированный язык (D
Важно помнить, что вы всегда должны указывать шаблоны
с помощью символов, даже если это подкаталог (в этом случае
-успользуйте :'subdir/template'). Вы должны использовать
+используйте :'subdir/template'). Вы должны использовать
символ, иначе методы, ответственные за рендеринг, отобразят просто переданную им строку.
=== Haml шаблоны
@@ -181,7 +181,7 @@ Haml gem/библиотека необходима для рендеринга H
{Опции Haml}[http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#options]
могут быть установлены глобально через конфигурацию Sinatra,
-посмотрите {Опции и Конфигурация}[http://www.sinatrarb.com/configuration.html],
+см. {Опции и Конфигурация}[http://www.sinatrarb.com/configuration.html],
и переопределены локально.
set :haml, :format => :html5 # :xhtml - Haml формат по умолчанию
@@ -256,7 +256,7 @@ Haml gem/библиотека необходима для рендеринга S
{Опции Sass}[http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#options]
могут быть установлены глобально через конфигурацию Sinatra,
-посмотрите {Опции и Конфигурация}[http://www.sinatrarb.com/configuration.html],
+см. {Опции и Конфигурация}[http://www.sinatrarb.com/configuration.html],
и переопределены локально.
set :sass, :style => :compact # :nested - стиль Sass по умолчанию
@@ -280,7 +280,7 @@ Haml gem/библиотека необходима для рендеринга S
{Опции Scss}[http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#options]
могут быть установлены глобально через конфигурацию Sinatra,
-посмотрите {Опции и Конфигурация}[http://www.sinatrarb.com/configuration.html],
+см. {Опции и Конфигурация}[http://www.sinatrarb.com/configuration.html],
и переопределены локально.
set :scss, :style => :compact # :nested - стиль Scss по умолчанию
@@ -334,7 +334,7 @@ rdiscount gem/библиотека необходима для рендерин
Отрисует ./views/index.markdown (+md+ и +mkd+ также являются допустимыми файловыми
расширениями).
-В markdown невозможно вызывать методы или передавать локальные переменные. Следовательно вам скорее всего прийдется
+В markdown невозможно вызывать методы или передавать локальные переменные. Следовательно, вам скорее всего придется
использовать этот шаблон совместно с другим движком рендеринга:
erb :overview, :locals => { :text => markdown(:introduction) }
@@ -357,7 +357,7 @@ RedCloth gem/библиотека необходима для рендеринг
Отрисует ./views/index.textile.
-В textile невозможно вызывать методы или передавать локальные переменные. Следовательно вам скорее всего прийдется
+В textile невозможно вызывать методы или передавать локальные переменные. Следовательно, вам скорее всего придется
использовать этот шаблон совместно с другим движком рендеринга:
erb :overview, :locals => { :text => textile(:introduction) }
@@ -380,7 +380,7 @@ RDoc gem/библиотека необходима для рендеринга R
Отрисует ./views/index.rdoc.
-В rdoc невозможно вызывать методы или передавать локальные переменные. Следовательно вам скорее всего прийдется
+В rdoc невозможно вызывать методы или передавать локальные переменные. Следовательно, вам скорее всего придется
использовать этот шаблон совместно с другим движком рендеринга:
erb :overview, :locals => { :text => rdoc(:introduction) }
@@ -486,7 +486,7 @@ coffee-script gem/библиотека и `coffee` бинарный файл н
=== Именные шаблоны
-Шаблоны также могут быть определены используя template метод:
+Шаблоны также могут быть определены, используя template метод:
template :layout do
"%html\n =yield\n"
@@ -544,7 +544,7 @@ After-фильтры выполняются после каждого запро
puts response.status
end
-Фильтры могут использовать шаблоны URL и будут интерпретированы только, если путь запроса совпадет с этим шаблоном:
+Фильтры могут использовать шаблоны URL и будут интерпретированы, только если путь запроса совпадет с этим шаблоном:
before '/protected/*' do
authenticate!
@@ -556,7 +556,7 @@ After-фильтры выполняются после каждого запро
== Прерывание
-Чтобы незамедлительно прервать обработку запроса внутри фильтра или маршрута используйте:
+Чтобы незамедлительно прервать обработку запроса внутри фильтра или маршрута, используйте:
halt
@@ -720,7 +720,7 @@ Sinatra устанавливает специальные not_found и
== Mime типы
-Когда используете send_file или статические файлы, у вас могут быть mime типы которые Sinatra,
+Когда вы используете send_file или статические файлы, у вас могут быть mime типы, которые Sinatra
не понимает по умолчанию. Используйте +mime_type+ для их регистрации по расширению файла:
mime_type :foo, 'text/foo'
@@ -759,8 +759,8 @@ Rack::Builder[http://rack.rubyforge.org/doc/classes/Rack/Builder.html] DSL
end
Rack распространяется с различными стандартными подпрограммами
-для логирования, дебагинга, маршрутизации URL, аутентификации, обработки сессий. Sinatra использует
-многие из этих компонентов автоматически, основываясь на конфигурации, чтобы вам не проходилось
+для логирования, отладки, маршрутизации URL, аутентификации, обработки сессий. Sinatra использует
+многие из этих компонентов автоматически, основываясь на конфигурации, чтобы вам не приходилось
регистрировать/использовать (+use+) их вручную.
== Тестирование
@@ -796,17 +796,17 @@ Rack распространяется с различными стандартн
end
Заметьте: Встроенные модули Sinatra::Test и Sinatra::TestHarness являются
-устаревшими начиная с 0.9.2 релиза.
+устаревшими, начиная с 0.9.2 релиза.
== Sinatra::Base - Подпрограммы, библиотеки и модульные приложения
Описание своего приложения самым простейшим способом (с помощью DSL верхнего уровня, как в примерах выше)
работает отлично для крохотных приложений, но имеет множество недостатков, когда надо
-создать компоненты такие как Rack
+создать компоненты, такие как Rack
middleware, Rails metal, простые библиотеки с серверными компонентами,
Sinatra расширения.
DSL верхнего уровня загрязняет пространство имен Object и подразумевает стиль конфигурации
-микро приложения (например, единый файл приложения, ./public и
+микро-приложения (например, единый файл приложения, ./public и
./views директории, создание логов, страницу деталей об исключениях
и т.д.). И тут на помощь приходит Sinatra::Base:
@@ -828,12 +828,12 @@ Rack подпрограммы, Rack приложения, Rails metal. Вы мо
MyApp.run! :host => 'localhost', :port => 9090
-Методы доступные Sinatra::Base сабклассам идентичны тем, что доступны
+Методы, доступные Sinatra::Base сабклассам идентичны тем, что доступны
в DSL верхнего уровня. Большинство приложений верхнего уровня могут быть
конвертированы в Sinatra::Base компоненты с помощью двух модификаций:
-* Вы должны подключать +sinatra/base+ вместо +sinatra+;
- иначе, все методы предоставляемые Sinatra будут импортированные в глобальное пространство имен.
+* Вы должны подключать +sinatra/base+ вместо +sinatra+,
+ иначе все методы предоставляемые Sinatra будут импортированные в глобальное пространство имен.
* Поместите все маршруты, обработчики ошибок, фильтры и опции в сабкласс Sinatra::Base.
Sinatra::Base — это чистый лист. Большинство опций, включая встроенный сервер, по умолчанию отключены.
@@ -844,7 +844,7 @@ Rack подпрограммы, Rack приложения, Rails metal. Вы мо
Не только сама Sinatra может использовать подпрограммы Rack, любое Sinatra приложение
само может быть добавлено к любому Rack эндпоинту в качестве подпрограммы. Этим эндпоинтом
-может быть другое Sinatra приложение или приложение, основанное на Rack (Rails/Ramaze/Camping/...).
+может быть другое Sinatra приложение, или приложение, основанное на Rack (Rails/Ramaze/Camping/...).
require 'sinatra/base'
@@ -877,7 +877,7 @@ Rack подпрограммы, Rack приложения, Rails metal. Вы мо
== Области видимости и привязка
-Текущая область видимости определяет методы и переменные доступные
+Текущая область видимости определяет методы и переменные, доступные
в данный момент.
=== Область видимости приложения / класса
@@ -919,8 +919,8 @@ Sinatra::Application, иначе это будет сабкласс, котор
Для каждого входящего запроса будет создан новый экземпляр вашего приложения,
и все блоки обработчика будут запущены в этом контексте. В этой области
видимости вам доступны `request` и `session` объекты, вызовы методов
-рендеринга такие как `erb` или `haml`. Вы можете получить доступ к
-области видимости приложения из контекста запроса используя помощник `settings`:
+рендеринга, такие как `erb` или `haml`. Вы можете получить доступ к
+области видимости приложения из контекста запроса, используя помощник `settings`:
class MyApp << Sinatra::Base
# Я в области видимости приложения!
@@ -946,11 +946,11 @@ Sinatra::Application, иначе это будет сабкласс, котор
=== Область видимости делегирования
-Область видимости делегирования просто переправляет методы в область видимости класса.
+Область видимости делегирования просто перенаправляет методы в область видимости класса.
Однако, оно не полностью на 100% ведет себя как область видимости класса,
так как у вас нету привязки к классу: только методы, явно помеченные для
делегирования, будут доступны, а переменных/состояний области видимости класса
-не будет (иначе говоря: у вас будет другой `self` объект). Вы можете
+не будет (иначе говоря, у вас будет другой `self` объект). Вы можете
непосредственно добавить методы делегирования, используя
Sinatra::Delegator.delegate :method_name.