diff --git a/ru/about/index.md b/ru/about/index.md index 6fb2319425..6553f53847 100644 --- a/ru/about/index.md +++ b/ru/about/index.md @@ -2,6 +2,7 @@ layout: page title: "О Ruby" lang: ru +translator: "ablzh" --- Удивляетесь, почему Ruby так популярен? Его поклонники называют его красивым, @@ -189,9 +190,10 @@ Ruby полон другими особенностями и конструкц ### Другие реализации Ruby -Ruby как язык имеет несколько разных реализаций. Данный сайт -посвящен реализации **MRI** ("Matz's Ruby Interpreter" – Ruby -интерпретатор Матца) или **CRuby**, но также существует несколько +Ruby как язык имеет несколько разных реализаций. Эта страница +посвящена эталонной реализации, которую в сообществе часто называют +**MRI** («Matz’s Ruby Interpreter») или **CRuby** (поскольку она написана на C), +но также существует несколько других. Они бывают очень полезны в различных ситуациях, предоставляют большую интеграцию с другими языками или окружениями, или имеют возможности, которых нет в MRI. @@ -204,9 +206,11 @@ Ruby как язык имеет несколько разных реализац * [Rubinius][rubinius] это — «Ruby написанный на Ruby». Реализован на основе LLVM – изящной виртуальной машине, на который созданы и другие известные языки. +* [TruffleRuby][truffleruby] — высокопроизводительная реализация Ruby на основе + GraalVM. * [mruby][mruby] — это легковесная реализация Ruby, которая может быть подключена и встроена в приложение. Возглавляет разработку mruby создатель - языка Ruby, Юкихиро Мацумото (Yukihiro Matsumoto), известного под псевдонимом Мац (Matz). + языка Ruby, Yukihiro “Matz” Matsumoto. * [IronRuby][ironruby] — это реализация «тесно интегрированная с .NET Framework». * [MagLev][maglev] — это «быстрая, стабильная реализация Ruby с @@ -215,6 +219,8 @@ Ruby как язык имеет несколько разных реализац * [Cardinal][cardinal] — это «компилятор Ruby для виртуальной машины [Parrot][parrot]» (Perl 6). +Более полный список можно найти в [Awesome Rubies][awesome-rubies]. + ### Ссылки 1 Matz, сообщение в списке рассылок Ruby-Talk, [12 мая @@ -239,8 +245,10 @@ Ruby как язык имеет несколько разных реализац [tiobe]: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html [jruby]: http://jruby.org [rubinius]: https://rubinius.com +[truffleruby]: https://github.com/oracle/truffleruby [mruby]: http://www.mruby.org/ [ironruby]: http://www.ironruby.net [maglev]: http://maglev.github.io [cardinal]: https://github.com/parrot/cardinal [parrot]: http://parrot.org +[awesome-rubies]: https://github.com/planetruby/awesome-rubies diff --git a/ru/community/conferences/index.md b/ru/community/conferences/index.md index a6c72b1d81..c25ea799bc 100644 --- a/ru/community/conferences/index.md +++ b/ru/community/conferences/index.md @@ -2,14 +2,13 @@ layout: page title: "Конференции Ruby" lang: ru +translator: "ablzh" --- Программисты Ruby по всему миру посещают все больше и больше конференций, где они делятся друг с другом о текущей работе, обсуждают будущее Ruby и приветствуют новичков в сообществе Ruby. -### Основные конференции о Ruby - [RubyEvents.org][rc] — это простой список конференций, посвящённых Ruby, который публикуется совместно с сообществом Ruby. Там вы найдёте даты мероприятий, место проведения, информацию о CFP (Call For Proposals) и регистрации. ### Крупнейшие конференции Ruby @@ -31,6 +30,6 @@ lang: ru [rc]: https://www.rubyevents.org/ [1]: http://rubyconf.org/ -[2]: http://rubycentral.org +[2]: http://rubycentral.org/ [3]: http://rubykaigi.org/ [4]: http://euruko.org diff --git a/ru/community/index.md b/ru/community/index.md index f441ca8098..c552ec8b1e 100644 --- a/ru/community/index.md +++ b/ru/community/index.md @@ -2,6 +2,7 @@ layout: page title: "Сообщество" lang: ru +translator: "ablzh" --- Сообщество, которое растет вокруг языка программирования, является одной @@ -23,6 +24,11 @@ lang: ru разных языках мира. Если у вас есть вопросы о Ruby, то задавание их в почтовой рассылке является отличным способом получить ответы. +[Сервер Ruby в Discord (ссылка-приглашение)][ruby-discord] +: На сервере языка Ruby в Discord можно общаться с другими рубистами, + получать помощь по вопросам Ruby или помогать другим. + Discord подходит для начинающих разработчиков, и присоединиться к нему легко. + [Ruby в IRC (#ruby)](https://web.libera.chat/#ruby) : Канал IRC о языке Ruby – это замечательный способ поговорить с приятелями рубистами. @@ -31,23 +37,30 @@ lang: ru : Отличное время следовать разработке языка Ruby. Если вы заинтересованы в помощи разработчикам Ruby, начните здесь. -[Блоги о Ruby](weblogs/) -: Очень мало чего случается в сообществе Ruby, о чем не говорят в - блогах. Здесь у нас неплохой список предложений для вас, чтобы - начать вливаться. +[Блоги и новостные рассылки о Ruby](weblogs/) +: Большинство событий и обновлений в сообществе Ruby обсуждаются в блогах + и новостных рассылках. Мы подобрали список ресурсов, чтобы помочь вам + оставаться на связи и быть в курсе новостей. [Ruby конференции](conferences/) : Программисты Ruby по всему миру посещают все больше и больше конференций, где они делятся друг с другом о текущей работе, обсуждают будущее Ruby и приветствуют новичков в сообществе Ruby. -Основная информация о Ruby -: * [Ruby Central][ruby-central] - * [Ruby на Open Directory Project][ruby-opendir] - * [Rails на Open Directory Project][rails-opendir] + На [RubyEvents.org](https://www.rubyevents.org/) также можно найти + видеозаписи конференций и докладов о Ruby. + +[Подкасты](podcasts/) +: Если вы предпочитаете слушать обсуждения Ruby, а не читать их, + попробуйте один из этих замечательных подкастов. Их авторы рассказывают + о новых релизах, новостях сообщества и берут интервью у других + разработчиков Ruby. + +[Ruby Central][ruby-central] +: Ruby Central — некоммерческая организация, поддерживающая + сообщество Ruby по всему миру. [ruby-central]: http://rubycentral.org/ -[ruby-opendir]: https://dmoztools.net/Computers/Programming/Languages/Ruby/ -[rails-opendir]: https://dmoztools.net/Computers/Programming/Languages/Ruby/Software/Frameworks/Rails/ +[ruby-discord]: https://discord.gg/ad2acQFtkh diff --git a/ru/community/user-groups/index.md b/ru/community/user-groups/index.md index 77337c9117..e16f8e599d 100644 --- a/ru/community/user-groups/index.md +++ b/ru/community/user-groups/index.md @@ -2,6 +2,7 @@ layout: page title: "Группы пользователей Ruby" lang: ru +translator: "ablzh" --- В сообществе программистов, группы пользователей создаются для @@ -24,19 +25,27 @@ Ruby целиком посвящены Ruby. Обычно они включаю Информацию о группах пользователей Ruby вы можете найти на различных веб-сайтах: -[Ruby Meetup Groups][meetup] -: Некоторые из групп пользователей Ruby выбирают Meetup в качестве места их - встреч. Meetup предоставляет набор инструментов для групп пользователей, - таких как: приватные форму, место для объявлений, автоматические - напоминания о встречах и приятную RSVP систему. +- [Группы пользователей Ruby на meetup.com][meetup]. Многие группы + пользователей Ruby выбрали Meetup для организации встреч. + Meetup предоставляет приватные форумы, место для объявлений, + автоматические напоминания о встречах и удобную систему RSVP. +- На [RubyEvents.org][rc-meetups] теперь есть список встреч + пользователей Ruby со всего мира. +- Для организаторов встреч Ruby есть [группа Google][meetups-google-group]. +- [OnRuby][onruby] — ещё одна площадка, где можно найти группы пользователей. + Это open source платформа для организации встреч, написанная на Ruby. + Её исходный код [доступен на GitHub][onruby-github]. ### Создание своей группы -Если вы заинтересованы в формировании своей группы, будьте уверены что -поблизости нет существующей группы пользователей. Большие встречи -обычно намного веселей, так что создание своей группы возможно не лучшая -идея, когда неподалеку уже существует еще одна. +Если вы хотите создать свою группу, сначала узнайте, есть ли уже +группа пользователей Ruby в вашем регионе. За советами по организации +своей группы можно обратиться в группу организаторов встреч. [meetup]: https://www.meetup.com/topics/ruby/ +[onruby]: https://www.onruby.eu/ +[onruby-github]: https://github.com/phoet/on_ruby +[rc-meetups]: https://www.rubyevents.org/events +[meetups-google-group]: https://groups.google.com/g/ruby-meetups diff --git a/ru/community/weblogs/index.md b/ru/community/weblogs/index.md index b56ea943a6..c729f8c59e 100644 --- a/ru/community/weblogs/index.md +++ b/ru/community/weblogs/index.md @@ -2,6 +2,7 @@ layout: page title: "Блоги и новостные рассылки" lang: ru +translator: "ablzh" --- Блоги о Ruby взорвали интернет в последние годы, вы можете найти сотни @@ -26,9 +27,6 @@ lang: ru * [**DEV Ruby Tag**][dev-ruby-tag] коллекция всех публикаций с тегом Ruby на платформе DEV Community, сообществе тысяч разработчиков, которые пишут о программировании и обсуждают код. * [**Ruby on Rails Blog**][ruby-on-rails-blog] официальный групповой блог команды Ruby on Rails. Если вы работаете с Rails, этот блог обязателен к чтению: здесь публикуются уведомления о важных обновлениях безопасности и новости из широкого сообщества Rails. * [**Rails at Scale**][rails-at-scale] содержит сообщения, в которых обсуждается большая часть недавней работы, проделанной для развития Ruby и Rails. -* [**Matz’ Blog**][rubyist] – это блог на японском, который ведет создатель - Ruby. Даже если вы не можете прочесть в нем все, просто хорошо знать - что он есть! ### Делитесь знаниями @@ -46,4 +44,3 @@ Ruby также часто обсуждается на [reddit][reddit] и [Hack [hn]: http://news.ycombinator.com/ [short-ruby-newsletter]: https://newsletter.shortruby.com/ [rails-at-scale]: https://railsatscale.com/ -[rubyist]: http://www.rubyist.net/~matz/ diff --git a/ru/documentation/faq/7/index.md b/ru/documentation/faq/7/index.md index 0ce0d408e7..6da5fa77d7 100644 --- a/ru/documentation/faq/7/index.md +++ b/ru/documentation/faq/7/index.md @@ -2,6 +2,7 @@ layout: page title: "Официальный FAQ по Ruby" lang: ru +translator: "ablzh" header: |
@@ -145,7 +146,7 @@ bar.hello ~~~ Hello -prog.rb:11:in `
': undefined method `hello' for # (NameError) +prog.rb:11:in `
': undefined method `hello' for # (NoMethodError) ~~~ Синглтон-методы полезны, когда вы хотите добавить метод к объекту, а создание нового подкласса нецелесообразно. diff --git a/ru/documentation/installation/index.md b/ru/documentation/installation/index.md index 1164d840f1..79cb835fba 100644 --- a/ru/documentation/installation/index.md +++ b/ru/documentation/installation/index.md @@ -2,14 +2,21 @@ layout: page title: "Установка Ruby" lang: ru +translator: "ablzh" --- -Вы можете использовать различные инструменты для установки Ruby. -Эта страница описывает, как использовать основные системы управления пакетами -и сторонние инструменты для управления и установки Ruby, -и как собрать Ruby из исходников. +Менеджеры пакетов и сторонние инструменты предлагают множество способов +установки Ruby и управления его версиями. {: .summary} +Возможно, Ruby уже установлен на вашем компьютере. Чтобы проверить это, +введите в [эмуляторе терминала][terminal]: + +{% highlight sh %} +ruby -v +{% endhighlight %} + +Команда должна вывести информацию об установленной версии Ruby. ## Выберите ваш метод установки @@ -24,17 +31,24 @@ lang: ru установленными на вашей системе. * Ну и наконец, вы можете также **собрать Ruby из исходников**. -В следующем списке перечислены доступные способы установки для различных нужд -и платформ. +В Windows 10 также можно использовать [Windows Subsystem for Linux][wsl], +чтобы установить один из поддерживаемых дистрибутивов Linux и воспользоваться +любым из доступных в нём способов установки. + +Доступные способы установки: * [Системы управления пакетами](#package-management-systems) * [Debian, Ubuntu](#apt) * [CentOS, Fedora, RHEL](#yum) + * [Snap](#snap) * [Gentoo](#portage) * [Arch Linux](#pacman) * [macOS](#homebrew) + * [FreeBSD](#freebsd) * [OpenBSD](#openbsd) - * [Solaris, OpenIndiana](#solaris) + * [OpenIndiana](#openindiana) + * [Windows Package Manager](#winget) + * [Менеджер пакетов Chocolatey для Windows](#chocolatey) * [Другие дистрибутивы](#other-systems) * [Установщики](#installers) * [ruby-build](#ruby-build) @@ -44,7 +58,9 @@ lang: ru * [Менеджеры](#managers) * [asdf-vm](#asdf-vm) * [chruby](#chruby) + * [mise-en-place](#mise-en-place) * [rbenv](#rbenv) + * [rbenv for Windows](#rbenv-for-windows) * [RVM](#rvm) * [uru](#uru) * [Сборка из исходников](#building-from-source) @@ -57,15 +73,13 @@ lang: ru использовать сторонний инструмент для установки – вы можете воспользоваться пакетным менеджером вашей операционной системы. -Некоторые участники сообщества Ruby убеждены, что никогда не стоит -пользоваться пакетными менеджерами для установки Ruby. Вместо этого -лучше воспользоваться другими инструментами. -Оставим все плюсы и минусы данного подхода за -границами данного текста, отметим лишь, что основной причиной данной -убежденности является то, что в пакетных менеджерах зачастую содержится -информация об устаревших версиях Ruby. Если вы хотите использовать -новейшую версию Ruby, убедитесь, что вы используете верное имя пакета -или воспользуйтесь инструментами описанными ниже вместо этого. +Некоторые участники сообщества Ruby считают, что для установки Ruby стоит +использовать специализированные инструменты вместо менеджеров пакетов. + +Основные менеджеры пакетов могут устанавливать старые версии Ruby вместо +последнего релиза. Чтобы использовать последний релиз Ruby, убедитесь, что +имя пакета соответствует номеру версии. Или воспользуйтесь +специализированным [установщиком][installers]. ### apt (Debian или Ubuntu) @@ -78,10 +92,6 @@ Debian GNU/Linux и Ubuntu используют систему управлен $ sudo apt-get install ruby-full {% endhighlight %} -Пакет `ruby-full` установит Ruby версии 2.3.1, которая является последним -стабильным релизом. - - ### yum (CentOS, Fedora, или RHEL) {: #yum} @@ -96,6 +106,26 @@ $ sudo yum install ruby на момент выхода конкретной версии дистрибутива. +### snap (Ubuntu или другие дистрибутивы Linux) +{: #snap} + +Snap — менеджер пакетов, разработанный Canonical. +Он доступен в Ubuntu по умолчанию, но работает и во многих других +дистрибутивах Linux. Использовать его можно так: + +{% highlight sh %} +$ sudo snap install ruby --classic +{% endhighlight %} + +Для каждой серии минорных версий Ruby есть несколько каналов. +Например, следующие команды переключают на Ruby 2.3: + +{% highlight sh %} +$ sudo snap switch ruby --channel=2.3/stable +$ sudo snap refresh +{% endhighlight %} + + ### portage (Gentoo) {: #portage} @@ -105,7 +135,6 @@ Gentoo использует систему управления пакетами $ sudo emerge dev-lang/ruby {% endhighlight %} -По умолчанию, будут установлены версии 1.9 и 2.0, но доступны и другие версии. Для установки конкретной версии, заполните `RUBY_TARGETS` в вашем `make.conf`. Подробнее смотрите на [сайте проекта Gentoo Ruby][gentoo-ruby]. @@ -120,14 +149,11 @@ Ruby, просто напишите следующее: $ sudo pacman -S ruby {% endhighlight %} -Это должно установить последнюю стабильную версию Ruby. - - ### Homebrew (macOS) {: #homebrew} -На OS X El Capitan, Yosemite и Mavericks, Ruby 2.0 уже включены. -OS X Mountain Lion, Lion и Snow Leopard поставляются с версией Ruby 1.8.7. +Версии Ruby 2.0 и выше включены по умолчанию в выпуски macOS +как минимум начиная с El Capitan (10.11). Многие люди на macOS используют [Homebrew][homebrew] как пакетный менеджер. И это действительно просто – установить Ruby: @@ -139,6 +165,24 @@ $ brew install ruby Это установит последнюю версию Ruby. +### FreeBSD +{: #freebsd} + +FreeBSD позволяет установить Ruby из готовых пакетов или из исходников. +Готовые пакеты можно установить с помощью pkg: + +{% highlight sh %} +$ pkg install ruby +{% endhighlight %} + +Для установки из исходников можно использовать +[коллекцию портов][freebsd-ports-collection]. Это полезно, если вы хотите +настроить параметры сборки. + +Подробнее о Ruby и его экосистеме во FreeBSD можно узнать +на [сайте проекта FreeBSD Ruby][freebsd-ruby]. + + ### OpenBSD {: #openbsd} @@ -159,32 +203,56 @@ $ doas pkg_add ruby [директорию lang/ruby в самой последней коллекции портов][openbsd-current-ruby-ports]. -### Ruby на Solaris и OpenIndiana -{: #solaris} - -Ruby 1.8.7 доступен для Solaris 8-10 на [Sunfreeware][sunfreeware] и -Blastwave. Ruby 1.9.2p0 также доступен на [Sunfreeware][sunfreeware], -но это все уже устарело. +### Ruby на OpenIndiana +{: #openindiana} Чтобы установить Ruby на [OpenIndiana][openindiana], пожалуйста, используйте -клиент [Image Packaging System, или IPS][opensolaris-pkg]. Это установит -последние бинарники Ruby и RubyGems прямо из сетевого репозитория -OpenSolaris для Ruby 1.9. Это просто: +клиент Image Packaging System (IPS). Он установит бинарные файлы Ruby +и RubyGems прямо из репозиториев OpenIndiana. Это просто: {% highlight sh %} -$ pkg install runtime/ruby-18 +$ pkg install runtime/ruby {% endhighlight %} Однако, сторонние инструменты могут быть хорошим способом получить последнюю версию Ruby. +### Windows Package Manager +{: #winget} + +В Windows можно установить Ruby с помощью +[Windows Package Manager CLI](https://github.com/microsoft/winget-cli): + +{% highlight powershell %} +> winget install RubyInstallerTeam.Ruby.{MAJOR}.{MINOR} +# Example +> winget install RubyInstallerTeam.Ruby.3.2 +# To see all versions available +> winget search RubyInstallerTeam.Ruby +# Note: if you are installing ruby for projects, you may want to install RubyWithDevKit +> winget install RubyInstallerTeam.RubyWithDevKit.3.2 +{% endhighlight %} + +### Менеджер пакетов Chocolatey для Windows +{: #chocolatey} + +В Windows также можно установить Ruby с помощью +[менеджера пакетов Chocolatey](https://chocolatey.org/install): + +{% highlight sh %} +> choco install ruby +{% endhighlight %} + +Он использует уже установленный `msys2` или установит собственный, +чтобы предоставить полноценное окружение для разработки на Ruby. + ### Другие дистрибутивы {: #other-systems} На других системах, вы можете поискать репозиторий пакета Ruby для пакетного менеджера вашего Linux дистрибутива, или же -сторонние инструменты могут стать хорошим выбором для вас. +[сторонний установщик][installers] может стать хорошим выбором для вас. ## Установщики @@ -202,7 +270,7 @@ $ pkg install runtime/ruby-18 {: #ruby-build} [ruby-build][ruby-build] - это плагин для [rbenv](#rbenv), который позволяет -вам скомпилировать и установить разные версии Ruby в произвольные каталоги. +вам скомпилировать и установить разные версии Ruby. ruby-build может использоваться как отдельная программа без rbenv. Он доступен для macOS, Linux и других UNIX-подобных операционных систем. @@ -241,6 +309,8 @@ ruby-build может использоваться как отдельная п {: #managers} Многие рубисты используют менеджеры для управления несколькими версиями Ruby. +Они позволяют легко или даже автоматически переключать версии Ruby +в зависимости от проекта. Они предоставляют различные преимущества, но поддерживаются не официально. Однако их сообщество может оказать помощь. @@ -262,6 +332,16 @@ chruby может управлять версиями Ruby, которые ус [ruby-install](#ruby-install) или даже собранными из исходников. +### mise-en-place +{: #mise-en-place} + +[mise-en-place][mise-en-place] позволяет переключаться между версиями Ruby +без дополнительных инструментов. Он автоматически управляет установками +и включает [бэкенд для гемов (gem backend)](https://mise.jdx.dev/dev-tools/backends/gem.html) +для управления версиями инструментов командной строки, написанных на Ruby. +Поддерживает UNIX-подобные операционные системы и Windows. + + ### rbenv {: #rbenv} @@ -271,6 +351,16 @@ chruby может управлять версиями Ruby, которые ус UNIX-подобных операционных систем. +### rbenv for Windows +{: #rbenv-for-windows} + +[rbenv for Windows][rbenv-for-windows] позволяет устанавливать несколько +версий Ruby в Windows и управлять ими. Он написан на PowerShell +и предоставляет пользователям Windows нативный способ работы с Ruby. +Его интерфейс командной строки совместим с [rbenv][rbenv] +в UNIX-подобных системах. + + ### RVM ("Ruby Version Manager") {: #rvm} @@ -279,6 +369,15 @@ UNIX-подобных операционных систем. Доступен для macOS, Linux и других UNIX-подобных операционных систем. +### RVM 4 Windows +{: #rvm-windows} + +[RVM 4 Windows][rvm-windows] позволяет устанавливать несколько версий Ruby +в Windows и управлять ими. Это клон оригинального RVM, поддерживающий +классическую командную строку и PowerShell с тем же интерфейсом командной +строки, что и оригинальный RVM. + + ### uru {: #uru} @@ -301,23 +400,34 @@ $ sudo make install По умолчанию, это установит Ruby в `/usr/local`. Для изменения, передайте опцию `--prefix=DIR` в скрипт `./configure`. +Подробнее о сборке из исходников можно узнать в +[инструкциях по сборке Ruby][building-ruby]. + Использование сторонних инструментов или пакетных менеджеров может быть лучше, хотя бы потому, что установленные Ruby не будут управляться любыми инструментами. [rvm]: http://rvm.io/ +[rvm-windows]: https://github.com/magynhard/rvm-windows#readme [rbenv]: https://github.com/rbenv/rbenv#readme +[rbenv-for-windows]: https://github.com/RubyMetric/rbenv-for-windows#readme [ruby-build]: https://github.com/rbenv/ruby-build#readme [ruby-install]: https://github.com/postmodern/ruby-install#readme [chruby]: https://github.com/postmodern/chruby#readme [uru]: https://bitbucket.org/jonforums/uru [rubyinstaller]: https://rubyinstaller.org/ [rubystack]: http://bitnami.com/stack/ruby/installer -[sunfreeware]: http://www.sunfreeware.com [openindiana]: http://openindiana.org/ -[opensolaris-pkg]: http://opensolaris.org/os/project/pkg/ [gentoo-ruby]: http://www.gentoo.org/proj/en/prog_lang/ruby/ +[freebsd-ruby]: https://wiki.freebsd.org/Ruby +[freebsd-ports-collection]: https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html [homebrew]: http://brew.sh/ +[terminal]: https://en.wikipedia.org/wiki/List_of_terminal_emulators +[installers]: /ru/documentation/installation/#installers +[building-ruby]: https://docs.ruby-lang.org/en/master/contributing/building_ruby_md.html +[wsl]: https://docs.microsoft.com/en-us/windows/wsl/about [asdf-vm]: https://asdf-vm.com/ [asdf-ruby]: https://github.com/asdf-vm/asdf-ruby +[mise-en-place]: https://mise.jdx.dev +[mise-en-place-ruby]: https://mise.jdx.dev/lang/ruby.html [openbsd-current-ruby-ports]: https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/lang/ruby/?only_with_tag=HEAD diff --git a/ru/documentation/quickstart/3/index.md b/ru/documentation/quickstart/3/index.md index 3c741c549f..87f8d70d97 100644 --- a/ru/documentation/quickstart/3/index.md +++ b/ru/documentation/quickstart/3/index.md @@ -2,6 +2,7 @@ layout: page title: "Ruby за двадцать минут" lang: ru +translator: "ablzh" header: |
@@ -20,21 +21,21 @@ header: | Давайте теперь создадим приветствующий объект и используем его: {% highlight irb %} -irb(main):035:0> g = Greeter.new("Pat") +irb(main):035:0> greeter = Greeter.new("Pat") => # -irb(main):036:0> g.say_hi +irb(main):036:0> greeter.say_hi Hi Pat! => nil -irb(main):037:0> g.say_bye +irb(main):037:0> greeter.say_bye Bye Pat, come back soon. => nil {% endhighlight %} -Как только объект `g` создан, он запоминает, что имя – Pat. Хмм, а что +Как только объект `greeter` создан, он запоминает, что имя – Pat. Хмм, а что если мы попробуем получить имя напрямую? {% highlight irb %} -irb(main):038:0> g.@name +irb(main):038:0> greeter.@name SyntaxError: (irb):38: syntax error, unexpected tIVAR, expecting '(' {% endhighlight %} @@ -75,18 +76,18 @@ irb(main):039:0> Greeter.instance_methods {% highlight irb %} irb(main):040:0> Greeter.instance_methods(false) -=> ["say_bye", "say_hi"] +=> [:say_hi, :say_bye] {% endhighlight %} Ага, это больше похоже на то, что нам нужно. Итак, давайте посмотрим на какие методы наш объект может отвечать: {% highlight irb %} -irb(main):041:0> g.respond_to?("name") +irb(main):041:0> greeter.respond_to?("name") => false -irb(main):042:0> g.respond_to?("say_hi") +irb(main):042:0> greeter.respond_to?("say_hi") => true -irb(main):043:0> g.respond_to?("to_s") +irb(main):043:0> greeter.respond_to?("to_s") => true {% endhighlight %} @@ -112,22 +113,22 @@ irb(main):046:1> end поиграем с его свойством `@name`. {% highlight irb %} -irb(main):047:0> g = Greeter.new("Andy") +irb(main):047:0> greeter = Greeter.new("Andy") => # -irb(main):048:0> g.respond_to?("name") +irb(main):048:0> greeter.respond_to?("name") => true -irb(main):049:0> g.respond_to?("name=") +irb(main):049:0> greeter.respond_to?("name=") => true -irb(main):050:0> g.say_hi +irb(main):050:0> greeter.say_hi Hi Andy! => nil -irb(main):051:0> g.name="Betty" +irb(main):051:0> greeter.name="Betty" => "Betty" -irb(main):052:0> g +irb(main):052:0> greeter => # -irb(main):053:0> g.name +irb(main):053:0> greeter.name => "Betty" -irb(main):054:0> g.say_hi +irb(main):054:0> greeter.say_hi Hi Betty! => nil {% endhighlight %} diff --git a/ru/documentation/quickstart/4/index.md b/ru/documentation/quickstart/4/index.md index 8a3bd40ad5..4d247e0eeb 100644 --- a/ru/documentation/quickstart/4/index.md +++ b/ru/documentation/quickstart/4/index.md @@ -2,6 +2,7 @@ layout: page title: "Ruby за двадцать минут" lang: ru +translator: "ablzh" header: |
@@ -66,7 +67,7 @@ end `each` – это метод, который принимает блок кода и запускает этот блок кода для каждого элемента в списке. И в примере выше код между `do` и `end` – это просто некий блок. Блок – это что-то вроде анонимной функции -или `лямбды`. Переменная между знаками (|) – это параметр для данного +или лямбда-функции (`lambda`). Переменная между знаками (|) – это параметр для данного блока, как раз тот самый элемент списка, на которым будет производится действие в блоке кода. @@ -89,8 +90,8 @@ for (i=0; i @@ -21,8 +22,8 @@ header: | Здесь представлено небольшое введение в Ruby, которое должно занять не более двадцати минут. Предполагается, что вы уже установили Ruby. (Если -на вашем компьютере нет Ruby, [скачайте](/ru/downloads/) -и установите его перед тем как начать.) +на вашем компьютере нет Ruby, [установите его](/ru/documentation/installation/) +перед тем как начать.) ## Интерактивный Ruby diff --git a/ru/documentation/ruby-from-other-languages/to-ruby-from-c-and-cpp/index.md b/ru/documentation/ruby-from-other-languages/to-ruby-from-c-and-cpp/index.md index b7fed00f27..45ef86022d 100644 --- a/ru/documentation/ruby-from-other-languages/to-ruby-from-c-and-cpp/index.md +++ b/ru/documentation/ruby-from-other-languages/to-ruby-from-c-and-cpp/index.md @@ -2,6 +2,7 @@ layout: page title: "В Ruby из C и C++" lang: ru +translator: "ablzh" --- Довольно трудно составить список того, как ваш код на С или С++ будет отличаться @@ -60,14 +61,13 @@ Ruby программе, или какие методы будут вызван В Ruby в отличие от C... +* не нужно компилировать код — его можно сразу запускать. * объекты строго типизированы (а переменные не имеют собственного типа). * отсутствуют макросы и препроцессоры, нет привидения типов, нет ни указателей, ни арифметики с ними, нет псевдонимов для типов, нет sizeof и перечислений. * нет файлов заголовков - вы просто пишите функции (называемые "методы") и классы в файлах исходников. * нет `#define` - используйте константы. -* начиная с Ruby 1.8 код интерпретируется в runtime, нежели компилируется в некий - машинный или байт-код. * все переменные живут в "куче", нет необходимости освобождать память - сборщик мусора сделает это за вас. * аргументы передаются в функции-методы по значению, где значения всегда ссылки. @@ -116,9 +116,9 @@ Ruby программе, или какие методы будут вызван * можно заново открыть класс и добавить в него методы. * нет необходимости в шаблонах ("templates"), т.к. можно присвоить переменной любой тип объекта, а типы все равно определяются в runtime) - нет и приведения типов. -* итерация происходит несколько иным способом - в Ruby не надо использовать отдельный - объект итератора (как `vector::const_iterator iter`), а можно "подмешать" в класс - модуль `Enumerator` и просто вызвать метод `each`. +* итерация происходит несколько иначе — не нужен отдельный объект итератора + (как `vector::const_iterator iter`). Достаточно вызвать метод контейнера, + например `each`, и передать ему блок, который получит каждый элемент по очереди. * есть всего 2 вида контейнеров - `Array` и `Hash`. * нет преобразований типов - в Ruby оно вам скорее всего не понадобится. * встроенная поддержка многопоточности, но в Ruby 1.8 это т.н. "green threads" (живущие diff --git a/ru/documentation/ruby-from-other-languages/to-ruby-from-java/index.md b/ru/documentation/ruby-from-other-languages/to-ruby-from-java/index.md index ddba6f016b..ac83639f26 100644 --- a/ru/documentation/ruby-from-other-languages/to-ruby-from-java/index.md +++ b/ru/documentation/ruby-from-other-languages/to-ruby-from-java/index.md @@ -2,6 +2,7 @@ layout: page title: "В Ruby из Java" lang: ru +translator: "ablzh" --- Java - это энтерпрайзно. Проверено. И быстро (не смотря на то, что утверждают @@ -23,15 +24,15 @@ Java - это энтерпрайзно. Проверено. И быстро (н В отличие от Java в Ruby... * не надо компилировать код - он интерпретируется. -* есть несколько популярных GUI тулкитов - можно попробовать [WxRuby][1], [FxRuby][2], - [Ruby-GNOME2][3], [Qt][4], или [Ruby Tk](https://github.com/ruby/tk), например. +* есть несколько популярных сторонних GUI тулкитов - можно попробовать [WxRuby][1], + [FXRuby][2], [Ruby-GNOME][3] или [Ruby Tk](https://github.com/ruby/tk), например. * в конце определения класса используется ключевое слово `end`, вместо заключения кода в скобки. * вместо `import` пишется `require`. * все члены класса приватны - снаружи доступ осуществляется через методы. * скобки при вызове метода не обязательны. * все - это объект, включая числа как 2 или 3.14159. -* отсутствует проверка типа. +* отсутствует статическая проверка типов. * имена переменных - это просто обозначения, для них нет специального типа. * нет объявления типа - можно просто присваивать переменные "на лету" (например, `a = [1,2,3]` вместо `int[] a = {1,2,3};`). @@ -47,7 +48,6 @@ Java - это энтерпрайзно. Проверено. И быстро (н (как `==` в Java). -[1]: https://github.com/eumario/wxruby +[1]: https://github.com/mcorino/wxRuby3 [2]: https://github.com/larskanis/fxruby -[3]: https://ruby-gnome2.osdn.jp/ -[4]: https://github.com/ryanmelt/qtbindings/ +[3]: https://ruby-gnome.github.io/ diff --git a/ru/documentation/ruby-from-other-languages/to-ruby-from-perl/index.md b/ru/documentation/ruby-from-other-languages/to-ruby-from-perl/index.md index 622e9711ad..1e2583f6f8 100644 --- a/ru/documentation/ruby-from-other-languages/to-ruby-from-perl/index.md +++ b/ru/documentation/ruby-from-other-languages/to-ruby-from-perl/index.md @@ -2,12 +2,12 @@ layout: page title: "В Ruby из Perl" lang: ru +translator: "ablzh" --- Perl прекрасен. Документация Perl'а прекрасна. Коммьюнити Perl ...прекрасно. -Однако, сам язык довольно обширен и сложен. Ruby подойдет тем пользователям Perl, -которые хотели бы более простого временами, более ортогонального языка с -объектно-ориентированной парадигмой, вписанной в язык с рождения. +Ruby может подойти пользователям Perl, которым нужны элегантные возможности +объектно-ориентированного программирования, встроенные в язык с самого начала. ### Сходства @@ -44,7 +44,7 @@ Perl прекрасен. Документация Perl'а прекрасна. К и ветвления заканчиваются ключевым словом `end`. * объекты строго типизированы - надо руками вызывать `foo.to_i`, `foo.to_s` и т.д., если надо преобразовывать типы. -* нет `eq`, `ne`, `lt`, `gt`, `le`. +* нет `eq`, `ne`, `lt`, `gt`, `ge`, `le`. * нет `<>` ("diamond operator") - используется `IO.some_method`. * `=>` ("fat comma") используется только в определениях хешей. * нет `undef` - есть `nil` и это объект (как и все в Ruby), но присвоить переменной diff --git a/ru/documentation/ruby-from-other-languages/to-ruby-from-python/index.md b/ru/documentation/ruby-from-other-languages/to-ruby-from-python/index.md index 5467f8bf09..c7c18ce8b9 100644 --- a/ru/documentation/ruby-from-other-languages/to-ruby-from-python/index.md +++ b/ru/documentation/ruby-from-other-languages/to-ruby-from-python/index.md @@ -2,6 +2,7 @@ layout: page title: "В Ruby из Python" lang: ru +translator: "ablzh" --- Python - еще один прекрасный язык общего назначения. Переходя в Ruby из Python, @@ -24,6 +25,8 @@ Python - еще один прекрасный язык общего назнач * все - объект, а переменные - ссылки на объекты. * ключевые слова немного отличаются, работа с исключениями почти такая же * имеется встроенная утилита для документации (`rdoc`) +* хорошо поддерживается функциональное программирование: функции как объекты + первого класса (first-class functions), анонимные функции и замыкания. ### Отличия @@ -34,9 +37,10 @@ Python - еще один прекрасный язык общего назнач * есть несколько требований к регистру букв (имена классов начинаются с заглавной буквы, переменные - со строчной) * есть только один тип для списка (`Array`), он мутабелен. -* двойные кавычки используются для интерполирования строк, чтобы включать в строку - Ruby выражение вместо `"сложения " + "строк"`), одинарный кавычки похожи на строки - `r"raw string"`. +* строки в двойных кавычках поддерживают управляющие последовательности (например, + `\t`) и интерполяцию выражений: результаты выражений Ruby можно вставлять прямо + в строки вместо `"add " + "strings " + "together"`. Строки в одинарных кавычках + похожи на `r"raw strings"` в Python. * нет "новых" и "старых" классов, просто класс (как в Python 3, где это исправлено, но который не полностью совместим с Python 2.*). * отсутствует прямой доступ к атрибутам - в Ruby это всегда будет вызовом метода. @@ -55,6 +59,11 @@ Python - еще один прекрасный язык общего назнач же используются для автоматически генерируемой документации. * есть несколько сокращений, которые стоит запомнить, но именно это и превращает написание кода на Ruby в увлекательное занятие и способствует продуктивности. -* нет способа разыменовать переменную, созданную однажды (как `del` в Python), но - можно присвоить ей значение `nil` - тогда значение будет собрано сборщиком мусора, - но переменная все равно останется в текущей области видимости. +* нет способа удалить переменную после присваивания (как с помощью `del` в Python). + Можно присвоить ей `nil`, чтобы сборщик мусора мог удалить прежнее содержимое, + но сама переменная останется в таблице символов, пока находится в области видимости. +* ключевое слово `yield` работает иначе. В Python оно передаёт управление за пределы + вызова функции, а внешний код отвечает за её возобновление. В Ruby `yield` + выполняет функцию, переданную последним аргументом, и сразу возвращает управление. +* Python поддерживает только один вид анонимных функций — лямбда-функции, + а в Ruby есть блоки, объекты `Proc` и лямбда-функции. diff --git a/ru/documentation/success-stories/index.md b/ru/documentation/success-stories/index.md index c5885beadf..e08f97aa64 100644 --- a/ru/documentation/success-stories/index.md +++ b/ru/documentation/success-stories/index.md @@ -2,6 +2,7 @@ layout: page title: "Успешный опыт" lang: ru +translator: "ablzh" --- Многие люди используют Ruby на их повседневных работах. Другие лишь в @@ -56,14 +57,18 @@ lang: ru #### Безопасность -* [Metasploit Framework][metasploit], проект с открытым исходным кодом, +* [Metasploit Framework][metasploit], open source проект сообщества, поддерживаемый [Rapid7][rapid7], это бесплатная платформа проникающего тестирования, которая помогает IT профессионалам проверить безопасность их сети и приложений. Metasploit Project содержит более 700 000 строк кода и был скачан больше миллиона раз в 2010 году. - Коммерческая версия Metasploit Express и Metasploit Pro разработаны Rapid7 - и так же написаны на Ruby. + Коммерческие редакции, разработанные Rapid7, также основаны на Ruby. + +* [Arachni Web Application Security Scanner][arachni] — бесплатный, модульный, + высокопроизводительный фреймворк на Ruby, помогающий специалистам по тестированию + на проникновение (penetration testing) и администраторам оценивать безопасность + современных веб-приложений. @@ -77,3 +82,4 @@ lang: ru [metasploit]: http://www.metasploit.com [rapid7]: http://www.rapid7.com +[arachni]: http://www.arachni-scanner.com/ diff --git a/ru/libraries/index.md b/ru/libraries/index.md index 40d980a7f9..1ee76c8197 100644 --- a/ru/libraries/index.md +++ b/ru/libraries/index.md @@ -2,13 +2,17 @@ layout: page title: "Библиотеки" lang: ru +translator: "ablzh" --- Как и в большинстве языков программирования, в Ruby можно использовать широкий набор сторонних библиотек. {: .summary} -Большая часть из них реализована в форме **гема**. [**RubyGems**][1] – +Почти все эти библиотеки выпускаются в форме **гема** — упакованной библиотеки +или приложения, которые можно установить с помощью [**RubyGems**][1]. + +RubyGems — менеджер пакетов Ruby, созданный для упрощения процесса создания, распространения и установки библиотек (в каком-то смысле это распределенный пакетный менеджер, похожий, скажем, на `apt-get`, но @@ -36,10 +40,9 @@ Rails библиотек. С опцией `--local`(`-l`) вы можете пр командой `gem list`. Для более подробной информации о команде `gem` смотрите ниже или почитайте [документацию RubyGems][3]. -Также есть и другие источники библиотек. [RubyForge][4] был популярным -домом для библиотек Ruby, но в последний год возросла популярность [**GitHub**][5], -как одного из главных хранилищ исходного кода приложений околорубиевой тематики. -Намного чаще сейчас исходный код гема размещен на GitHub и сам гем опубликован +Есть и другие источники библиотек. +[**GitHub**][5] — основное хранилище исходного кода проектов, связанных с Ruby. +Чаще всего исходный код гема размещается на GitHub, а готовый гем публикуется на RubyGems.org. [**The Ruby Toolbox**][6] это проект, который позволяет легче @@ -128,7 +131,6 @@ RubyGems. [1]: https://rubygems.org/ [2]: https://rubygems.org/pages/download/ [3]: http://guides.rubygems.org/ -[4]: http://rubyforge.org/ [5]: https://github.com/ [6]: https://www.ruby-toolbox.com/ [7]: http://guides.rubygems.org/command-reference/ diff --git a/ru/news/_posts/2013-02-08-ruby-2-0-0-rc2-is-released.md b/ru/news/_posts/2013-02-08-ruby-2-0-0-rc2-is-released.md index 648e39095d..edf26aa11d 100644 --- a/ru/news/_posts/2013-02-08-ruby-2-0-0-rc2-is-released.md +++ b/ru/news/_posts/2013-02-08-ruby-2-0-0-rc2-is-released.md @@ -2,7 +2,7 @@ layout: news_post title: "Вышел Ruby 2.0.0-rc2" author: "Yusuke Endoh" -translate: "gazay" +translator: "ablzh" date: 2013-02-08 14:34:17 +0000 lang: ru --- @@ -47,9 +47,10 @@ Ruby 2.0.0. * Поддержка NativeClient * Улучшена документация * Расширенный асинхронный обработчик прерываний +* Параметры настройки размера стека при запуске * Refinements \[эксперимент\] -... И многие другие улучшения. Читайте НОВОСТИ, чтобы быть в курсе. +... И многие другие улучшения. Подробности смотрите в NEWS. Ниже несколько вступительных статей от сторонних разработчиков: @@ -68,24 +69,24 @@ Ruby 2.0.0. ## Заметки -### Incompatibility +### Несовместимости Существует три заметных несовместимости, о которых мы знаем: -* Кодировка по-умолчанию для скриптов ruby теперь UTF-8 \[#6679\]. +* Кодировка по-умолчанию для скриптов ruby теперь UTF-8 [\[#6679\]][10]. Некоторые люди присылают сообщения, что это затрагивает существующие программы. Например некоторые программы бенчмаркинга стали слишком - медленными \[ruby-dev:46547\]. Спецификация может измениться к + медленными [\[ruby-dev:46547\]][11]. Спецификация может измениться к официальному релизу. * Iconv был убран. Он был уже отмечен как устаревший, когда M17N был представлен в ruby 1.9. Используйте String#encode и другие методы вместо Iconv. -* Был сбой ABI \[ruby-core:48984\]. Мы думаем, что обычные пользователи +* Была нарушена совместимость ABI (ABI breakage) [\[ruby-core:48984\]][12]. Мы думаем, что обычные пользователи могут/должны просто переустановить библиотеки расширений. Вы должны быть осторожны: НЕ КОПИРУЙТЕ .so ИЛИ .bundle ФАЙЛЫ ИЗ 1.9. Также есть несколько сравнительно небольших несовместимостей: -\[ruby-core:49119\] +[\[ruby-core:49119\]][13] Пожалуйста, сообщайте о любых несовместимостях, которые вы замечаете. FYI: Мы добавляем записи с обновлениями, но часть их уже устарела diff --git a/ru/news/_posts/2013-11-22-heap-overflow-in-floating-point-parsing-cve-2013-4164.md b/ru/news/_posts/2013-11-22-heap-overflow-in-floating-point-parsing-cve-2013-4164.md index b3eb446f57..48609319e8 100644 --- a/ru/news/_posts/2013-11-22-heap-overflow-in-floating-point-parsing-cve-2013-4164.md +++ b/ru/news/_posts/2013-11-22-heap-overflow-in-floating-point-parsing-cve-2013-4164.md @@ -2,14 +2,14 @@ layout: news_post title: "Переполнение кучи при парсинге плавающей запятой (CVE-2013-4164)" author: "tenderlove" -translator: "gazay" +translator: "ablzh" date: 2013-11-22 5:00:00 +0000 tags: security lang: ru --- Существует переполнение при парсинге номера с плавающей запятой в Ruby. -Этой уязвимости назначен CVE идентификатор CVE-2013-4164. +Этой уязвимости присвоен CVE идентификатор CVE-2013-4164. ## Детали @@ -36,13 +36,13 @@ lang: ru ## Затронутые версии -* Все версии Ruby 1.8 +* Все версии Ruby 1.8 после Ruby 1.8.6 patchlevel 230 * Все версии Ruby 1.9 до Ruby 1.9.3 patchlevel 484 * Все версии Ruby 2.0 до Ruby 2.0.0 patchlevel 353 * Все версии Ruby 2.1 до Ruby 2.1.0 preview2 * транк до ревизии 43780 -## Solutions +## Решения Всем пользователям рекомендуется обновиться до Ruby 1.9.3 patchlevel 484, Ruby 2.0.0 patchlevel 353 или Ruby 2.1.0 preview2. @@ -62,3 +62,4 @@ Ruby 2.0.0 patchlevel 353 или Ruby 2.1.0 preview2. * Оригинал опубликован 2013-11-22 04:00:00 UTC * Второй раз опубликовано 2013-11-22 06:46:00 UTC * Третий раз опубликовано 2013-11-22 22:46:00 UTC +* Четвёртый раз опубликовано 2013-12-10 12:09:38 UTC diff --git a/ru/news/_posts/2014-03-29-heap-overflow-in-yaml-uri-escape-parsing-cve-2014-2525.md b/ru/news/_posts/2014-03-29-heap-overflow-in-yaml-uri-escape-parsing-cve-2014-2525.md index 23f023a118..b43976554d 100644 --- a/ru/news/_posts/2014-03-29-heap-overflow-in-yaml-uri-escape-parsing-cve-2014-2525.md +++ b/ru/news/_posts/2014-03-29-heap-overflow-in-yaml-uri-escape-parsing-cve-2014-2525.md @@ -2,14 +2,14 @@ layout: news_post title: "Переполнение буфера в модуле YAML для URI-закодированных строк (CVE-2014-2525)" author: "hone and zzak" -translator: "Vlad Bokov" +translator: "ablzh" date: 2014-03-29 01:49:25 +0000 tags: security lang: ru --- При парсинге URI-закодированной строки может произойти переполнение буфера в YAML. -Этой уязвимости присвоен номер +Этой уязвимости присвоен CVE идентификатор [CVE-2014-2525](http://www.ocert.org/advisories/ocert-2014-003.html). ## Подробнее @@ -27,6 +27,11 @@ YAML.load Ruby 1.9.3-p0 и новее используют psych в качестве парсера YAML по умолчанию. Все версии модуля psych слинкованные с библиотекой libyaml `<= 0.1.5` подвержены атаке. +Следующие версии Ruby поставляются с уязвимой версией libyaml: + +* Ruby 2.0.0-p451 и более ранние версии, +* Ruby 2.1.0 и Ruby 2.1.1. + Проверить версию libyaml можно так: {% highlight sh %} @@ -50,7 +55,10 @@ psych `2.0.5`, которая содержит libyaml `0.1.6`: $ gem install psych {% endhighlight %} +Или обновите Ruby до 2.0.0-p481, 2.1.2 или новее. + ## История * Изначально опубликовано 2014-03-29 01:49:25 UTC * Обновлено 2014-03-29 09:37:00 UTC +* Обновлено 2014-05-09 03:00:00 UTC diff --git a/ru/news/_posts/2014-05-31-stopped-mailing-list-temporarily.md b/ru/news/_posts/2014-05-31-stopped-mailing-list-temporarily.md index 916d736ad1..0bc5df5dac 100644 --- a/ru/news/_posts/2014-05-31-stopped-mailing-list-temporarily.md +++ b/ru/news/_posts/2014-05-31-stopped-mailing-list-temporarily.md @@ -1,13 +1,13 @@ --- layout: news_post -title: "Список рассылки заморожен" +title: "Работа списков рассылки временно приостановлена" author: "hsbt" -translator: "Vlad Bokov" +translator: "ablzh" date: 2014-05-31 12:30:00 +0000 lang: ru --- -Мы временно заморозили список рассылки на ruby-lang.org. +Мы временно приостановили работу списков рассылки на ruby-lang.org. Наши списки рассылки подверглись спам-атаке. Мы приостановили следующие рассылки: @@ -22,3 +22,7 @@ lang: ru * ruby-math Приносим свои извинения за перебой и работаем над тем, чтобы возобновить работу как можно скорее. + +### Обновление статуса 2014-06-16 9:00 +0000 + +Мы возобновили работу списков рассылки на ruby-lang.org. diff --git a/ru/news/_posts/2014-10-27-ruby-2-1-4-released.md b/ru/news/_posts/2014-10-27-ruby-2-1-4-released.md index fe48628bee..09e0f8e152 100644 --- a/ru/news/_posts/2014-10-27-ruby-2-1-4-released.md +++ b/ru/news/_posts/2014-10-27-ruby-2-1-4-released.md @@ -2,7 +2,7 @@ layout: news_post title: "Вышел Ruby 2.1.4" author: "nagachika" -translator: "gazay" +translator: "ablzh" date: 2014-10-27 12:00:00 +0000 lang: ru --- @@ -12,9 +12,9 @@ lang: ru Этот релиз содержит исправления уязвимостей безопасности: * [CVE-2014-8080: DoS уязвимость в REXML](https://www.ruby-lang.org/ru/news/2014/10/27/rexml-dos-cve-2014-8080/) -* [Изменились дефолтные настройки ext/openssl](https://www.ruby-lang.org/ru/news/2014/10/27/changing-default-settings-of-ext-openssl/) +* [Изменены настройки ext/openssl по умолчанию в связи с CVE-2014-3566](https://www.ruby-lang.org/ru/news/2014/10/27/changing-default-settings-of-ext-openssl/) -И несколько других фиксов. +И несколько других исправлений ошибок. См. [тикеты](https://bugs.ruby-lang.org/projects/ruby-21/issues?set_filter=1&status_id=5) и [лог изменений](https://svn.ruby-lang.org/repos/ruby/tags/v2_1_4/ChangeLog) diff --git a/ru/news/_posts/2014-12-18-ruby-2-2-0-rc1-released.md b/ru/news/_posts/2014-12-18-ruby-2-2-0-rc1-released.md index 4fa2184fdc..a0cd34a666 100644 --- a/ru/news/_posts/2014-12-18-ruby-2-2-0-rc1-released.md +++ b/ru/news/_posts/2014-12-18-ruby-2-2-0-rc1-released.md @@ -2,7 +2,7 @@ layout: news_post title: "Вышел Ruby 2.2.0-rc1" author: "naruse" -translator: "arbox" +translator: "ablzh" date: 2014-12-18 09:00:00 +0000 lang: ru --- @@ -23,7 +23,7 @@ lang: ru Кроме этого, уменьшенные интервалы при работе сборщика мусора (благодаря новому инкрементальному алгоритму) положительно скажутся на работе существующих приложений на Rails. Последние изменения, упоминавшиеся в -[блоге Rails](http://weblog.rubyonrails.org/2014/12/19/Rails-4-2-final/), +[блоге Rails](http://weblog.rubyonrails.org/), показывают, что Rails 5.0 выиграет от применения как инкрементального алгоритма сборщика, так и сборщика символов. @@ -45,7 +45,7 @@ lang: ru полезным окажется это нововведение. Попробуйте новую версию и получайте удовольствие от программирования на Ruby -2.2.0-rc-1. И сообщайте о ваших успехах! +2.2.0-rc1. И сообщайте о ваших успехах! ## Важные изменения в сравнении с версией 2.1 diff --git a/ru/news/_posts/2014-12-25-ruby-2-2-0-released.md b/ru/news/_posts/2014-12-25-ruby-2-2-0-released.md index cbbd2aad34..e99720a4eb 100644 --- a/ru/news/_posts/2014-12-25-ruby-2-2-0-released.md +++ b/ru/news/_posts/2014-12-25-ruby-2-2-0-released.md @@ -2,7 +2,7 @@ layout: news_post title: "Вышел Ruby 2.2.0" author: "naruse" -translator: "arbox" +translator: "ablzh" date: 2014-12-25 09:00:00 +0000 lang: ru --- @@ -48,9 +48,9 @@ lang: ru ## Важные изменения в сравнении с версией 2.1 * [Инкрементальный алгоритм сборщика](https://bugs.ruby-lang.org/issues/10137) - ([YARV Maniacs No.12](http://magazine.rubyist.net/?0048-YARVManiacs)) + ([презентация на RubyConf 2014: "Incremental GC for Ruby interpreter"](http://www.atdot.net/~ko1/activities/2014_rubyconf_pub.pdf)) * [Сборщик для символов](https://bugs.ruby-lang.org/issues/9634) - ([презентация на RubyKaigi 2014: "Incremental GC for Ruby interpreter"](http://www.atdot.net/~ko1/activities/2014_rubyconf_pub.pdf)) + ([презентация на RubyKaigi 2014](http://www.slideshare.net/authorNari/symbol-gc)) * configure --with-jemalloc [Feature #9113](https://bugs.ruby-lang.org/issues/9113) * Ядро: diff --git a/ru/news/_posts/2015-04-13-ruby-2-0-0-p645-released.md b/ru/news/_posts/2015-04-13-ruby-2-0-0-p645-released.md index ad1faf97db..bb43387b48 100644 --- a/ru/news/_posts/2015-04-13-ruby-2-0-0-p645-released.md +++ b/ru/news/_posts/2015-04-13-ruby-2-0-0-p645-released.md @@ -2,7 +2,7 @@ layout: news_post title: "Вышел Ruby 2.0.0-p645" author: "usa" -translator: "gazay" +translator: "ablzh" date: 2015-04-13 12:00:00 +0000 lang: ru --- @@ -14,7 +14,7 @@ lang: ru * [CVE-2015-1855: Ruby OpenSSL верификация имени хоста](https://www.ruby-lang.org/ru/news/2015/04/13/ruby-openssl-hostname-matching-vulnerability/) -Ruby 1.9.3 на данный момент находится в стадии поддержки безопасности, до 24-го февраля 2016 года. +Ruby 2.0.0 на данный момент находится в стадии поддержки безопасности, до 24-го февраля 2016 года. После этого поддержка Ruby 2.0.0 будет остановлена. Мы рекомендуем вам начать планировать переход на более новую версию Ruby, такую как 2.1 или 2.2. diff --git a/ru/news/_posts/2019-05-30-ruby-2-7-0-preview1-released.md b/ru/news/_posts/2019-05-30-ruby-2-7-0-preview1-released.md index 8ce23ecc86..fcf7419b5b 100644 --- a/ru/news/_posts/2019-05-30-ruby-2-7-0-preview1-released.md +++ b/ru/news/_posts/2019-05-30-ruby-2-7-0-preview1-released.md @@ -2,7 +2,7 @@ layout: news_post title: "Вышел Ruby 2.7.0-preview1" author: "naruse" -translator: "shprotru" +translator: "ablzh" date: 2019-05-30 00:00:00 +0000 lang: ru --- @@ -90,7 +90,7 @@ end * `Date.jisx0301`, `Date#jisx0301`, и `Date.parse` предварительно поддерживают новую Японскую эру в качестве неофициального расширения, пока не будет выпущен новый JIS X 0301. [[Feature #15742]](https://bugs.ruby-lang.org/issues/15742) * Требование к компиляторам поддерживать C99 [[Misc #15347]](https://bugs.ruby-lang.org/issues/15347) - * Подробнее: + * Подробнее: Смотрите [НОВОСТИ](https://github.com/ruby/ruby/blob/v2_7_0_preview1/NEWS) или [историю коммитов](https://github.com/ruby/ruby/compare/v2_6_0...v2_7_0_preview1) для подробностей об изменениях. diff --git a/ru/news/_posts/2019-10-22-ruby-2-7-0-preview2-released.md b/ru/news/_posts/2019-10-22-ruby-2-7-0-preview2-released.md index c81df7679e..91aec649b8 100644 --- a/ru/news/_posts/2019-10-22-ruby-2-7-0-preview2-released.md +++ b/ru/news/_posts/2019-10-22-ruby-2-7-0-preview2-released.md @@ -2,12 +2,12 @@ layout: news_post title: "Вышел Ruby 2.7.0-preview2" author: "naruse" -translator: "shprotru" +translator: "ablzh" date: 2019-10-22 12:00:00 +0000 lang: ru --- -Мы рады сообщить о выпуске Ruby 2.7.0-preview 2. +Мы рады сообщить о выпуске Ruby 2.7.0-preview2. Предварительная версия выходит, чтобы собрать обратную связь для окончательного релиза, запланированного на декабрь. В нём вводится ряд новшеств и улучшений производительности, в первую очередь: @@ -213,7 +213,7 @@ end * `Date.jisx0301`, `Date#jisx0301`, и `Date.parse` предварительно поддерживают новую Японскую эру. [[Feature #15742]](https://bugs.ruby-lang.org/issues/15742) * Требование к компиляторам поддерживать C99 [[Misc #15347]](https://bugs.ruby-lang.org/issues/15347) - * Подробнее о нашем диалекте: + * Подробнее о нашем диалекте: Смотрите [НОВОСТИ](https://github.com/ruby/ruby/blob/v2_7_0_preview2/NEWS) или [историю коммитов](https://github.com/ruby/ruby/compare/v2_6_0...v2_7_0_preview2) для подробностей об изменениях. diff --git a/ru/news/_posts/2019-11-23-ruby-2-7-0-preview3-released.md b/ru/news/_posts/2019-11-23-ruby-2-7-0-preview3-released.md index e09f0acd36..815791e50c 100644 --- a/ru/news/_posts/2019-11-23-ruby-2-7-0-preview3-released.md +++ b/ru/news/_posts/2019-11-23-ruby-2-7-0-preview3-released.md @@ -2,7 +2,7 @@ layout: news_post title: "Вышел Ruby 2.7.0-preview3" author: "naruse" -translator: "shprotru" +translator: "ablzh" date: 2019-11-23 12:00:00 +0000 lang: ru --- @@ -315,7 +315,7 @@ end * Требование к компиляторам поддерживать C99 [[Misc #15347]](https://bugs.ruby-lang.org/issues/15347) * Подробнее о нашем диалекте: - + * ~~`Regexp#match{?}` с `nil` приводит к TypeError as String, Symbol. [[Feature #13083]](https://bugs.ruby-lang.org/issues/13083)~~ отменено diff --git a/ru/news/_posts/2021-05-02-os-command-injection-in-rdoc.md b/ru/news/_posts/2021-05-02-os-command-injection-in-rdoc.md index 7f5a04d31a..6f0f5ff3ff 100644 --- a/ru/news/_posts/2021-05-02-os-command-injection-in-rdoc.md +++ b/ru/news/_posts/2021-05-02-os-command-injection-in-rdoc.md @@ -2,7 +2,7 @@ layout: news_post title: "CVE-2021-31799: Уязвимость внедрения команды в RDoc" author: "aycabta" -translator: "nakilon" +translator: "ablzh" date: 2021-05-02 09:00:00 +0000 tags: security lang: ru @@ -13,7 +13,7 @@ lang: ru ## Подробности -Сообщество об уязвимости: +Сообщено о следующей уязвимости: * [CVE-2021-31799](https://www.cve.org/CVERecord?id=CVE-2021-31799) @@ -24,6 +24,7 @@ RDoc использовал `Kernel#open` для открытия локальн ## Уязвимые версии * Все версии RDoc от 3.11 до 6.3.0 +* Ruby 3.0.2 (поставляется с RDoc 6.3.1), Ruby 2.7.4 (поставляется с RDoc 6.2.1.1) и Ruby 2.6.8 (поставляется с RDoc 6.1.2.1) уже содержат исправления и потому не подвержены уязвимости ## Как обновиться @@ -42,4 +43,4 @@ gem install rdoc ## История * Изначально опубликовано в 2021-05-02 09:00:00 UTC -* Ruby 3.0.2 (поставляется с RDoc 6.3.1), Ruby 2.7.4 (поставляется с RDoc 6.2.1.1) and Ruby 2.6.8 (поставляется с RDoc 6.1.2.1) уже содержат исправления и потому не подвержены уязвимости +* Сведения о Ruby 3.0.2, Ruby 2.7.4 и Ruby 2.6.8 добавлены 2021-07-16 00:02:00 UTC diff --git a/ru/news/_posts/2025-03-26-ruby-3-2-8-released.md b/ru/news/_posts/2025-03-26-ruby-3-2-8-released.md index aed2b33b45..97a91e5d99 100644 --- a/ru/news/_posts/2025-03-26-ruby-3-2-8-released.md +++ b/ru/news/_posts/2025-03-26-ruby-3-2-8-released.md @@ -17,7 +17,7 @@ lang: ru ## Скачать -{% assign release = site.data.releases | where: "version", "3.2.8" | first %}http://127.0.0.1:4000 +{% assign release = site.data.releases | where: "version", "3.2.8" | first %} - <{{ release.url.gz }}> diff --git a/ru/news/_posts/2025-10-23-ruby-3-3-10-released.md b/ru/news/_posts/2025-10-23-ruby-3-3-10-released.md index 00eff7b638..ef9a65c9ec 100644 --- a/ru/news/_posts/2025-10-23-ruby-3-3-10-released.md +++ b/ru/news/_posts/2025-10-23-ruby-3-3-10-released.md @@ -13,7 +13,7 @@ lang: ru Мы рекомендуем обновить вашу версию гема uri. Этот релиз подготовлен для удобства тех, кто хочет продолжать использовать его как стандартный гем. -## Download +## Скачать {% assign release = site.data.releases | where: "version", "3.3.10" | first %} diff --git a/ru/news/_posts/2025-12-18-ruby-4-0-0-preview3-released.md b/ru/news/_posts/2025-12-18-ruby-4-0-0-preview3-released.md index a3dc30e80d..b3481c2ecd 100644 --- a/ru/news/_posts/2025-12-18-ruby-4-0-0-preview3-released.md +++ b/ru/news/_posts/2025-12-18-ruby-4-0-0-preview3-released.md @@ -213,7 +213,7 @@ Ruby 4.0 представляет Ruby::Box и «ZJIT», а также соде * logger 1.7.0 * rdoc 6.17.0 * win32ole 1.9.2 -* irb 1.15.3 +* irb 1.16.0 * reline 0.6.3 * readline 0.0.4 * fiddle 1.1.8 @@ -229,52 +229,53 @@ Ruby 4.0 представляет Ruby::Box и «ZJIT», а также соде Обновлены следующие default гемы. -* RubyGems 4.0.1 -* bundler 4.0.1 +* RubyGems 4.0.2 +* bundler 4.0.2 * date 3.5.1 * digest 3.2.1 * english 0.8.1 -* erb 6.0.0 +* erb 6.0.1 * etc 1.4.6 * fcntl 1.3.0 * fileutils 1.8.0 * forwardable 1.4.0 -* io-console 0.8.1 +* io-console 0.8.2 * io-nonblock 0.3.2 -* io-wait 0.4.0.dev +* io-wait 0.4.0 * ipaddr 1.2.8 -* json 2.17.1 -* net-http 0.8.0 -* openssl 4.0.0.pre +* json 2.18.0 +* net-http 0.9.1 +* openssl 4.0.0 * optparse 0.8.1 * pp 0.6.3 * prism 1.6.0 -* psych 5.3.0 +* psych 5.3.1 * resolv 0.7.0 -* stringio 3.1.9.dev -* strscan 3.1.6.dev -* timeout 0.5.0 +* stringio 3.2.0 +* strscan 3.1.6 +* time 0.4.2 +* timeout 0.6.0 * uri 1.1.1 * weakref 0.1.4 * zlib 3.2.2 Обновлены следующие bundled гемы. -* minitest 5.26.2 +* minitest 5.27.0 * power_assert 3.0.1 * rake 13.3.1 * test-unit 3.7.3 * rexml 3.4.4 * net-ftp 0.3.9 -* net-imap 0.5.12 +* net-imap 0.6.1 * net-smtp 0.5.1 * matrix 0.4.3 * prime 0.1.4 -* rbs 3.9.5 +* rbs 3.10.0.pre.2 * typeprof 0.31.0 * debug 1.11.0 * base64 0.3.0 -* bigdecimal 3.3.1 +* bigdecimal 4.0.1 * drb 2.2.3 * syslog 0.3.0 * csv 3.3.5 diff --git a/ru/news/_posts/2025-12-25-ruby-4-0-0-released.md b/ru/news/_posts/2025-12-25-ruby-4-0-0-released.md index b9c35c24e3..cc46b4b691 100644 --- a/ru/news/_posts/2025-12-25-ruby-4-0-0-released.md +++ b/ru/news/_posts/2025-12-25-ruby-4-0-0-released.md @@ -624,7 +624,7 @@ Ruby 4.0 включает RubyGems и Bundler версии 4. Смотрите * `--rjit` удален. Мы перенесем реализацию стороннего JIT API в репозиторий [ruby/rjit](https://github.com/ruby/rjit). -Смотрите [NEWS](https://docs.ruby-lang.org/en/{{ release.tag }}/NEWS_md.html) +Смотрите [NEWS](https://docs.ruby-lang.org/en/4.0/NEWS_md.html) или [логи коммитов](https://github.com/ruby/ruby/compare/v3_4_0...{{ release.tag }}) для подробностей. diff --git a/ru/news/_posts/2026-03-26-ruby-3-3-11-released.md b/ru/news/_posts/2026-03-26-ruby-3-3-11-released.md index d412ed7d9e..281575ea4d 100644 --- a/ru/news/_posts/2026-03-26-ruby-3-3-11-released.md +++ b/ru/news/_posts/2026-03-26-ruby-3-3-11-released.md @@ -11,6 +11,8 @@ lang: ru Подробности можно найти в [заметках о релизе на GitHub](https://github.com/ruby/ruby/releases/tag/v3_3_11). +## График релизов + Это последний релиз в рамках обычного обслуживания ветки Ruby 3.3. После этого выпуска Ruby 3.3 переходит в фазу поддержки безопасности. В течение этой фазы мы будем бэкпортировать только исправления уязвимостей и критических проблем сборки, без обычных исправлений ошибок. Фаза поддержки безопасности продлится один год, до конца марта 2027 года. После этого официальная поддержка Ruby 3.3 будет прекращена. Мы рекомендуем начать планирование перехода на Ruby 3.4 или 4.0. diff --git a/ru/news/_posts/2026-03-27-ruby-3-2-11-released.md b/ru/news/_posts/2026-03-27-ruby-3-2-11-released.md index c0b6679ce5..b25d028698 100644 --- a/ru/news/_posts/2026-03-27-ruby-3-2-11-released.md +++ b/ru/news/_posts/2026-03-27-ruby-3-2-11-released.md @@ -11,6 +11,8 @@ lang: ru Подробности можно найти в [заметках о релизе на GitHub](https://github.com/ruby/ruby/releases/tag/v3_2_11). +## График релизов + Это финальный релиз ветки Ruby 3.2. Мы больше не будем выпускать обновления, включая исправления уязвимостей, для Ruby 3.2. Мы рекомендуем обновиться до Ruby 3.4 или 4.0.