{"id":308044,"date":"2020-08-05T15:01:26","date_gmt":"2020-08-05T15:01:26","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=308044"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=308044","title":{"rendered":"Ruby Digest 2020 \u0441 16.07 \u043f\u043e 31.07"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/513612\/\">Ruby Digest 2020 \u0441 16 \u043f\u043e 31 \u0438\u044e\u043b\u044f: \u043d\u043e\u0432\u0438\u043d\u043a\u0438, \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u043c\u0435\u0434\u0438\u0430, \u0440\u0435\u043b\u0438\u0437\u044b, \u0441\u0442\u0430\u0442\u044c\u0438, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435.<br \/>  \u0421\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0438\u043d\u0442\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 \u0438\u044e\u043b\u044f \u0432\u043e\u043a\u0440\u0443\u0433 Ruby.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ra\/zt\/ho\/razthoaguvjgjr5uctcgpdlueu0.png\"><br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h2>\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u0438<\/h2>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/t-\/xh\/qq\/t-xhqqekquqr3nosk_tg264y4nc.png\"> <a href=\"https:\/\/github.com\/bensheldon\/good_job\/tree\/v1.0.0\" rel=\"nofollow\">GoodJob 1.0.0<\/a> \u2014 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0439 <a href=\"https:\/\/github.com\/rails\/rails\/tree\/master\/activejob\" rel=\"nofollow\">ActiveJob<\/a>-\u0431\u044d\u043a\u044d\u043d\u0434 \u0434\u043b\u044f <a href=\"https:\/\/rubyonrails.org\/\" rel=\"nofollow\">Ruby on Rails<\/a>, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 <a href=\"https:\/\/www.postgresql.org\/\" rel=\"nofollow\">PostgreSQL<\/a>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/t-\/xh\/qq\/t-xhqqekquqr3nosk_tg264y4nc.png\"> <a href=\"https:\/\/github.com\/apache\/arrow\/tree\/apache-arrow-1.0.0\/ruby\" rel=\"nofollow\">Apache Arrow Ruby 1.0.0<\/a> \u2014 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0433\u0435\u043c \u043e\u0442 <a href=\"https:\/\/apache.org\/\" rel=\"nofollow\">Apache<\/a> \u0441 \u0431\u0438\u043d\u0434\u0438\u043d\u0433\u0430\u043c\u0438 \u0434\u043b\u044f <a href=\"https:\/\/arrow.apache.org\/\" rel=\"nofollow\">Apache Arrow<\/a>.<\/p>\n<p>  <a href=\"https:\/\/www.ruby-lang.org\/en\/news\/2020\/07\/16\/fukuoka-ruby-award-2021\/\" rel=\"nofollow\">2021 Fukuoka Ruby Award Competition<\/a> \u2014 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u043a\u043e\u043d\u043a\u0443\u0440\u0441 Fukuoka Ruby Award 2021.<br \/>  \u0412 \u043e\u0446\u0435\u043d\u043a\u0435 \u0440\u0430\u0431\u043e\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D0%B0%D1%86%D1%83%D0%BC%D0%BE%D1%82%D0%BE,_%D0%AE%D0%BA%D0%B8%D1%85%D0%B8%D1%80%D0%BE\" rel=\"nofollow\">\u042e\u043a\u0438\u0445\u0438\u0440\u043e \u041c\u0430\u0446\u0443\u043c\u043e\u0442\u043e<\/a>. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u0440\u0438\u0437 \u2014 1 \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0438\u0435\u043d!<\/p>\n<p>  <a href=\"https:\/\/2020.rubyworld-conf.org\/en\/news\/2020\/07\/online\/\" rel=\"nofollow\">RubyWorld 2020<\/a> \u2014 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044e RubyWorld 2020 \u0440\u0435\u0448\u0435\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043e\u043d\u043b\u0430\u0439\u043d \u043e\u0434\u043d\u0438\u043c \u0434\u043d\u0435\u043c 17 \u0434\u0435\u043a\u0430\u0431\u0440\u044f.<\/p>\n<p>  <a href=\"https:\/\/rubyconference.by\" rel=\"nofollow\">RubyConfBY 2020<\/a> \u2014 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0430\u0441\u044c online Ruby-\u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f \u0432 \u041c\u0438\u043d\u0441\u043a\u0435.<\/p>\n<p>  <a href=\"https:\/\/redmonk.com\/sogrady\/2020\/07\/27\/language-rankings-6-20\/\" rel=\"nofollow\">\u0420\u0435\u0439\u0442\u0438\u043d\u0433 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f RedMonk: \u0418\u044e\u043d\u044c 2020<\/a> \u2014 Ruby \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f \u043d\u0430 7 \u0441\u0442\u0440\u043e\u0447\u043a\u0443.<\/p>\n<p>  <a href=\"https:\/\/spectrum.ieee.org\/static\/interactive-the-top-programming-languages-2020\" rel=\"nofollow\">\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0422\u043e\u043f \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f IEEE Spectrum<\/a> \u2014 Ruby \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f \u043d\u0430 11 \u0441\u0442\u0440\u043e\u0447\u043a\u0443.<\/p>\n<p>  <a href=\"https:\/\/developer.squareup.com\/blog\/the-state-of-ruby-3-typing\/\" rel=\"nofollow\">\u0417\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c, RBS! \u041d\u0435\u043d\u0430\u0432\u044f\u0437\u0447\u0438\u0432\u0430\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f Ruby 3<\/a>. \u0412 \u043d\u043e\u0432\u043e\u043c Ruby 3 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043d\u0430\u0432\u044f\u0437\u0447\u0438\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u0440\u0435\u0436\u043d\u0438\u0439 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 ruby-\u043a\u043e\u0434 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u0422\u0438\u043f\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u043d\u0430 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 <a href=\"https:\/\/github.com\/ruby\/rbs\" rel=\"nofollow\">RBS<\/a>. RBS \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 <a href=\"https:\/\/github.com\/soutaro\/steep\" rel=\"nofollow\">Steep<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0441 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 2.6 \u0438 \u0432\u044b\u0448\u0435.<\/p>\n<p>  <a href=\"https:\/\/island94.org\/2020\/07\/introducing-goodjob-1-0\" rel=\"nofollow\">\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c GoodJob<\/a> \u2014 <a href=\"https:\/\/github.com\/rails\/rails\/tree\/master\/activejob\" rel=\"nofollow\">ActiveJob<\/a>-\u0431\u044d\u043a\u044d\u043d\u0434 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>  <a href=\"https:\/\/empty.coffee\/on-hey-email\/\" rel=\"nofollow\">\u041e\u0431\u0437\u043e\u0440 Hey<\/a> \u2014 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043e\u0442 <a href=\"https:\/\/basecamp.com\/\" rel=\"nofollow\">Basecamp<\/a>.<\/p>\n<h2>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u043f\u043e\u0441\u043b\u0443\u0448\u0430\u0442\u044c<\/h2>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_t\/9n\/d6\/_t9nd6o__3u2fyrf3bfcxtvvkb0.png\" alt=\"image\"> <a href=\"https:\/\/www.rwpod.com\/posts\/2020\/07\/21\/podcast-08-28.html\" rel=\"nofollow\">RWpod 28 \u0432\u044b\u043f\u0443\u0441\u043a 08 \u0441\u0435\u0437\u043e\u043d\u0430<\/a> \u2014 Stimulus.js, Egis, Deimos, Puppeteer recorder, RecordRTC.js, Super Expressive, Bumblebee \u0438 \u043f\u0440\u043e\u0447\u0435\u0435<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_t\/9n\/d6\/_t9nd6o__3u2fyrf3bfcxtvvkb0.png\" alt=\"image\"> <a href=\"https:\/\/www.rwpod.com\/posts\/2020\/07\/27\/podcast-08-29.html\" rel=\"nofollow\">RWpod 29 \u0432\u044b\u043f\u0443\u0441\u043a 08 \u0441\u0435\u0437\u043e\u043d\u0430<\/a> \u2014 2021 Fukuoka Ruby Award Competition, GoodJob, Rollout::UI, Futurism, React Guitar \u0438 \u043f\u0440\u043e\u0447\u0435\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/161\/15a\/f2216115a374421495df9864acc847f0.png\" alt=\"image\"> <a href=\"https:\/\/www.youtube.com\/watch?v=rrsdu10iXkI\" rel=\"nofollow\">\u0418\u0437\u0443\u0447\u0430\u0435\u043c Ruby \u0441 \u0425\u044d\u0441\u0443\u0441\u043e\u043c \u041a\u0430\u0441\u0442\u044d\u0439\u043e<\/a> \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u043e\u0432.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/161\/15a\/f2216115a374421495df9864acc847f0.png\" alt=\"image\"> <a href=\"https:\/\/www.youtube.com\/watch?v=HuqJ040dCcU\" rel=\"nofollow\">\u0418\u0437\u0443\u0447\u0430\u0435\u043c Ruby \u0441 \u0425\u044d\u0441\u0443\u0441\u043e\u043c \u041a\u0430\u0441\u0442\u044d\u0439\u043e<\/a> \u2014 \u043e\u0431\u0437\u043e\u0440 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0444\u0430\u0439\u043b\u043e\u0432 Rails.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/161\/15a\/f2216115a374421495df9864acc847f0.png\" alt=\"image\"> <a href=\"https:\/\/www.youtube.com\/watch?v=-Yb6abdrQbM\" rel=\"nofollow\">\u0418\u0437\u0443\u0447\u0430\u0435\u043c Ruby \u0441 \u0425\u044d\u0441\u0443\u0441\u043e\u043c \u041a\u0430\u0441\u0442\u044d\u0439\u043e<\/a> \u2014 \u0442\u0438\u043f\u044b Ruby-\u043c\u0435\u0442\u043e\u0434\u043e\u0432.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/161\/15a\/f2216115a374421495df9864acc847f0.png\" alt=\"image\"> <a href=\"https:\/\/www.youtube.com\/watch?v=jvMgyesxPPc\" rel=\"nofollow\">Quick Stream: \u0442\u0430\u0439\u043d\u0430 \u00ab\u0443\u043d\u0430\u0440\u043d\u044b\u0445\u00bb \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432<\/a>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/161\/15a\/f2216115a374421495df9864acc847f0.png\" alt=\"image\"> <a href=\"https:\/\/web-crunch.com\/posts\/lets-build-for-ruby-and-rails-developers\" rel=\"nofollow\">\u00ab\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u044c\u00bb \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 Ruby &amp; Rails<\/a> \u2014 \u0427\u0430\u0441\u0442\u044c 1.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/161\/15a\/f2216115a374421495df9864acc847f0.png\" alt=\"image\"> <a href=\"https:\/\/web-crunch.com\/posts\/lets-build-for-ruby-and-rails-developers-part-2\" rel=\"nofollow\">\u00ab\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u044c\u00bb \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 Ruby &amp; Rails<\/a> \u2014 \u0427\u0430\u0441\u0442\u044c 2. \u041c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0433\u0435\u043c\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/161\/15a\/f2216115a374421495df9864acc847f0.png\" alt=\"image\"> <a href=\"https:\/\/web-crunch.com\/posts\/lets-build-for-ruby-and-rails-developers-part-3\" rel=\"nofollow\">\u00ab\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0442\u0440\u043e\u0438\u0442\u044c\u00bb \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 Ruby &amp; Rails<\/a> \u2014 \u0427\u0430\u0441\u0442\u044c 3. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f22\/161\/15a\/f2216115a374421495df9864acc847f0.png\" alt=\"image\"> <a href=\"https:\/\/www.twitch.tv\/videos\/694438800\" rel=\"nofollow\">Basecamp Live: \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Ops \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u0442 HEY<\/a> \u2014 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u044e\u0442 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u0432\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c HEY, \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e \u0440\u0430\u0431\u043e\u0442\u0435 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435.<\/p>\n<p>  <a href=\"https:\/\/rework.fm\/two-weeks\/\" rel=\"nofollow\">\u0414\u0432\u0435 \u043d\u0435\u0434\u0435\u043b\u0438<\/a> \u2014 Basecamp \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 HEY 15 \u0438\u044e\u043d\u044f. \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u044b\u0439, \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u043d\u043e \u0437\u0430 \u044d\u0442\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b \u043f\u0435\u0440\u0438\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440 \u0414\u0436\u0435\u0439\u0441\u043e\u043d \u0424\u0440\u0438\u0434 \u043d\u0430\u0437\u0432\u0430\u043b \u00ab\u0445\u0430\u043e\u0442\u0438\u0447\u043d\u044b\u043c, \u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u043c, \u0443\u0436\u0430\u0441\u043d\u044b\u043c\u00bb.<\/p>\n<p>  <a href=\"https:\/\/rework.fm\/q-and-hey-2\/\" rel=\"nofollow\">Q and HEY, \u0427\u0430\u0441\u0442\u044c 2<\/a> \u2014 c\u043e\u0443\u0447\u0440\u0435\u0434\u0438\u0442\u0435\u043b\u0438 Basecamp \u0414\u0436\u0435\u0439\u0441\u043e\u043d \u0424\u0440\u0438\u0434 \u0438 \u0414\u044d\u0432\u0438\u0434 \u0425\u0430\u0439\u043d\u0435\u043c\u0430\u0439\u0435\u0440 \u0425\u0430\u043d\u0441\u0441\u043e\u043d \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u043f\u0440\u044f\u043c\u0443\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e, \u0433\u0434\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b\u0438 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0435 HEY.<\/p>\n<p>  <a href=\"https:\/\/devchat.tv\/ruby-rogues\/rr-464-pwas-on-rails-with-john-beatty\/\" rel=\"nofollow\">\u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0435 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Ruby on Rails<\/a>.<\/p>\n<p>  <a href=\"https:\/\/devchat.tv\/ruby-rogues\/rr-465-webauthn-in-ruby-with-gonzalo-rodriguez-and-braulio-martinez\/\" rel=\"nofollow\">WebAuthn \u0432 Ruby \u0441 \u0413\u043e\u043d\u0441\u0430\u043b\u043e \u0420\u043e\u0434\u0440\u0438\u0433\u0435\u0441\u043e\u043c \u0438 \u0411\u0440\u0430\u0443\u043b\u0438\u043e \u041c\u0430\u0440\u0442\u0438\u043d\u0435\u0441\u043e\u043c<\/a>.<\/p>\n<p>  <a href=\"https:\/\/remoteruby.transistor.fm\/86\" rel=\"nofollow\">\u0424\u0443\u0442\u0443\u0440\u0438\u0437\u043c, Jumpstart \u0438 Javascript-\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438<\/a>.<\/p>\n<p>  <a href=\"https:\/\/remoteruby.transistor.fm\/87\" rel=\"nofollow\">\u0421\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0434\u043e\u043c\u043e\u0432 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044b \u0438 \u0411\u0440\u0438\u0434\u0436\u0442\u0430\u0443\u043d<\/a>.<\/p>\n<h2>\u041d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438<\/h2>\n<p>  <a href=\"https:\/\/blog.jetbrains.com\/ruby\/2020\/07\/rubymine-2020-2-released\/\" rel=\"nofollow\">RubyMine 2020.2<\/a> \u2014 IDE \u043e\u0442 <a href=\"https:\/\/www.jetbrains.com\/\" rel=\"nofollow\">JetBrains<\/a> \u0434\u043b\u044f Ruby.<\/p>\n<p>  <a href=\"https:\/\/alchemy-cms.com\/about\" rel=\"nofollow\">Alchemy CMS<\/a> <a href=\"https:\/\/rubygems.org\/gems\/alchemy_cms\/versions\/5.0.0\" rel=\"nofollow\">5.0.0<\/a> \u2014 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 CMS-\u0434\u0432\u0438\u0436\u043e\u043a \u043d\u0430 <a href=\"https:\/\/rubyonrails.org\/\" rel=\"nofollow\">Ruby on Rails<\/a>.<\/p>\n<p>  <a href=\"https:\/\/freelancing-gods.com\/thinking-sphinx\/v5\/\" rel=\"nofollow\">Thinking Sphinx<\/a> <a href=\"https:\/\/github.com\/pat\/thinking-sphinx\/tree\/v5.0.0\" rel=\"nofollow\">5.0.0<\/a> \u2014 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 <a href=\"https:\/\/github.com\/rails\/rails\/tree\/master\/activerecord\" rel=\"nofollow\">ActiveRecord<\/a> \u0441 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u043c <a href=\"http:\/\/www.sphinxsearch.com\/\" rel=\"nofollow\">Sphinx<\/a>.<\/p>\n<p>  <a href=\"https:\/\/github.com\/stitchfix\/stitches\/tree\/v4.0.0\" rel=\"nofollow\">Stitches 4.0.0<\/a> \u2014 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043d\u0430\u0434 <a href=\"https:\/\/rubyonrails.org\/\" rel=\"nofollow\">Ruby on Rails<\/a> \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432.<\/p>\n<p>  <a href=\"https:\/\/github.com\/plaid\/plaid-ruby\/tree\/v11.0.0\" rel=\"nofollow\">Plaid-ruby 11.0.0<\/a> \u2014 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 API-\u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 <a href=\"https:\/\/plaid.com\/\" rel=\"nofollow\">Plaid<\/a>.<\/p>\n<p>  <a href=\"https:\/\/github.com\/jgorset\/facebook-messenger\/tree\/v2.0.0\" rel=\"nofollow\">Facebook Messenger 2.0.0<\/a> \u2014 \u0433\u0435\u043c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0434\u043b\u044f <a href=\"https:\/\/www.messenger.com\/\" rel=\"nofollow\">Facebook Messenger<\/a>.<\/p>\n<p>  <a href=\"https:\/\/github.com\/learn-co\/learn-co\/tree\/v4.0.0\" rel=\"nofollow\">Learn-co 4.0.0<\/a> \u2014 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f <a href=\"https:\/\/learn.co\/\" rel=\"nofollow\">learn.co<\/a>.<\/p>\n<p>  <a href=\"https:\/\/github.com\/BookingSync\/bookingsync_portal\/tree\/v3.0.0\" rel=\"nofollow\">BookingSync Portal<\/a> \u2014 Rails-engine \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u0440\u0442\u0430\u043b\u0430 <a href=\"https:\/\/www.bookingsync.com\/\" rel=\"nofollow\">BookingSync<\/a>.<\/p>\n<p>  <a href=\"https:\/\/github.com\/googleads\/google-ads-ruby\/tree\/google-ads-googleads\/v6.0.0\" rel=\"nofollow\">Google Ads Client Library for Ruby 6.0.0<\/a> \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f <a href=\"https:\/\/developers.google.com\/google-ads\" rel=\"nofollow\">Google Ads API<\/a>.<\/p>\n<h2>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/h2>\n<p>  <a href=\"https:\/\/railseventstore.org\/\" rel=\"nofollow\">Rails Event Store<\/a> <a href=\"https:\/\/github.com\/RailsEventStore\/rails_event_store\/tree\/v1.1.0\" rel=\"nofollow\">1.1.0<\/a> \u2014 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439.<br \/>  <a href=\"https:\/\/yhbt.net\/unicorn\/NEWS.html\" rel=\"nofollow\">Unicorn 5.6.0<\/a> \u2014 HTTP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f <a href=\"https:\/\/github.com\/rack\/rack\" rel=\"nofollow\">Rack<\/a>-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<br \/>  <a href=\"https:\/\/github.com\/ruby\/psych\/tree\/v3.2.0\" rel=\"nofollow\">Psych 3.2.0<\/a> \u2014 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 Ruby YAML-\u043f\u0430\u0440\u0441\u0435\u0440.<br \/>  <a href=\"https:\/\/github.com\/ankane\/strong_migrations\/tree\/v0.7.0\" rel=\"nofollow\">Strong Migrations 0.7.0<\/a> \u2014 \u043e\u0442\u043b\u043e\u0432 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0439 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435.<br \/>  <a href=\"https:\/\/github.com\/mongodb\/mongo-ruby-driver\/tree\/v2.13.0\" rel=\"nofollow\">Mongo 2.13.0<\/a> \u2014 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f NoSQL \u0421\u0423\u0411\u0414 <a href=\"https:\/\/www.mongodb.com\/\" rel=\"nofollow\">MongoDB<\/a>.<br \/>  <a href=\"https:\/\/github.com\/aerospike\/aerospike-client-ruby\/tree\/v2.13.0\" rel=\"nofollow\">Aerospike Ruby Client 2.13.0<\/a> \u2014 \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f NoSQL \u0421\u0423\u0411\u0414 <a href=\"https:\/\/www.aerospike.com\/\" rel=\"nofollow\">Aerospike<\/a>.<br \/>  <a href=\"https:\/\/github.com\/influxdata\/influxdb-client-ruby\/tree\/v1.6.0\" rel=\"nofollow\">Influxdb-client-ruby 1.6.0<\/a> \u2014 \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u0421\u0423\u0411\u0414 <a href=\"https:\/\/www.influxdata.com\/\" rel=\"nofollow\">InfluxDB<\/a>.<br \/>  <a href=\"https:\/\/github.com\/spree\/spree_auth_devise\/tree\/v4.2.0\" rel=\"nofollow\">Spree Auth (Devise) 4.2.0<\/a> \u2014 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <a href=\"https:\/\/github.com\/heartcombo\/devise\" rel=\"nofollow\">Devise<\/a> \u0434\u043b\u044f ecommerce-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b <a href=\"https:\/\/spreecommerce.org\/\" rel=\"nofollow\">Spree<\/a>.<br \/>  <a href=\"https:\/\/github.com\/puppetlabs\/puppet-strings\/tree\/v2.5.0\" rel=\"nofollow\">Puppet Strings 2.5.0<\/a> \u2014 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"https:\/\/puppet.com\/\" rel=\"nofollow\">Puppet<\/a>.<br \/>  <a href=\"https:\/\/github.com\/mongodb\/bson-ruby\/tree\/v4.10.0\" rel=\"nofollow\">Bson 4.10.0<\/a> \u2014 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f <a href=\"https:\/\/docs.mongodb.com\/ruby-driver\/current\/tutorials\/bson-v4\/\" rel=\"nofollow\">\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 BSON<\/a>.<br \/>  <a href=\"https:\/\/rubygems.org\/gems\/rubocop-rails\/versions\/2.7.0\" rel=\"nofollow\">Rubocop-rails 2.7.0<\/a> \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 RuboCop \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 <a href=\"https:\/\/rubyonrails.org\/\" rel=\"nofollow\">Ruby on Rails<\/a>.<br \/>  <a href=\"https:\/\/github.com\/makandra\/active_type\/tree\/v1.4.0\" rel=\"nofollow\">Active_type 1.4.0<\/a> \u2014 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 Tableless, \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0445\u043e\u0436\u0435\u0433\u043e \u043d\u0430 <a href=\"https:\/\/github.com\/rails\/rails\/tree\/master\/activerecord\" rel=\"nofollow\">ActiveRecord<\/a>.<br \/>  <a href=\"https:\/\/rubygems.org\/gems\/angularjs-rails\/versions\/1.8.0\" rel=\"nofollow\">Angularjs-rails 1.8.0<\/a> \u2014 \u043e\u0431\u0435\u0440\u0442\u043a\u0430 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"https:\/\/angularjs.org\/\" rel=\"nofollow\">AngularJs<\/a> \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0430 <a href=\"https:\/\/rubyonrails.org\/\" rel=\"nofollow\">Ruby on Rails<\/a>.<br \/>  <a href=\"https:\/\/jasmine.github.io\/\" rel=\"nofollow\">Jasmine<\/a> <a href=\"https:\/\/github.com\/jasmine\/jasmine-gem\/tree\/v3.6.0\" rel=\"nofollow\">3.6.0<\/a> \u2014 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 JavaScript \u0441 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u043c <a href=\"https:\/\/rspec.info\/\" rel=\"nofollow\">RSpec<\/a>.<br \/>  <a href=\"https:\/\/github.com\/rubyjs\/mini_racer\/tree\/v0.3.0\" rel=\"nofollow\">Mini_racer 0.3.0<\/a> \u2014 \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u0435 <a href=\"https:\/\/v8.dev\/\" rel=\"nofollow\">V8<\/a> \u0432 Ruby \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <a href=\"https:\/\/nodejs.org\" rel=\"nofollow\">Node.js<\/a>.<br \/>  <a href=\"https:\/\/github.com\/gottfrois\/image_info\/tree\/v1.2.0\" rel=\"nofollow\">ImageInfo 1.2.0<\/a> \u2014 \u0433\u0435\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e url.<br \/>  <a href=\"https:\/\/github.com\/sdsykes\/fastimage\/tree\/v2.2.0\" rel=\"nofollow\">Fastimage 2.2.0<\/a> \u2014 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0433\u0435\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e url.<br \/>  <a href=\"https:\/\/rubygems.org\/gems\/rollout\/versions\/2.5.0\" rel=\"nofollow\">Rollout 2.5.0<\/a> \u2014 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f (\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e\/\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e) \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <a href=\"https:\/\/redis.io\/\" rel=\"nofollow\">Redis<\/a>.<br \/>  <a href=\"https:\/\/knapsackpro.com\/\" rel=\"nofollow\">Knapsack Pro<\/a> <a href=\"https:\/\/github.com\/KnapsackPro\/knapsack_pro-ruby\/tree\/v2.1.0\" rel=\"nofollow\">2.1.0<\/a> \u2014 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c CI-\u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c \u0438 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<br \/>  <a href=\"https:\/\/github.com\/cfndsl\/cfndsl\/tree\/v1.2.0\" rel=\"nofollow\">Cfndsl 1.2.0<\/a> \u2014 DSL \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 <a href=\"https:\/\/docs.aws.amazon.com\/AWSCloudFormation\/latest\/UserGuide\/GettingStarted.html\" rel=\"nofollow\">AWS Cloudformation<\/a>.<br \/>  <a href=\"https:\/\/github.com\/Nexmo\/nexmo-ruby\/tree\/v7.2.0\" rel=\"nofollow\">Nexmo 7.2.0<\/a> \u2014 \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b <a href=\"https:\/\/developer.nexmo.com\/\" rel=\"nofollow\">Nexmo<\/a>.<br \/>  <a href=\"https:\/\/www.alchemists.io\/projects\/pennyworth\/\" rel=\"nofollow\">Pennyworth<\/a> <a href=\"https:\/\/github.com\/bkuhlmann\/pennyworth\/tree\/9.3.0\" rel=\"nofollow\">9.3.0<\/a> \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 <a href=\"https:\/\/www.alfredapp.com\/\" rel=\"nofollow\">Alfred<\/a> \u043d\u0430 <a href=\"https:\/\/www.apple.com\/macos\/catalina\/\" rel=\"nofollow\">MacOS<\/a>.<br \/>  <a href=\"https:\/\/github.com\/imgix\/imgix-rb\/tree\/3.3.0\" rel=\"nofollow\">Imgix 3.3.0<\/a> \u2014 \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 url-\u043e\u0432 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0430 <a href=\"https:\/\/www.imgix.com\/\" rel=\"nofollow\">ImgIx<\/a>.<br \/>  <a href=\"https:\/\/github.com\/DocRaptor\/docraptor-ruby\/tree\/v1.4.0\" rel=\"nofollow\">Docraptor 1.4.0<\/a> \u2014 \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f HTML \u0432 PDF \u0438\u043b\u0438 Xlsx \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 <a href=\"https:\/\/docraptor.com\" rel=\"nofollow\">DocRaptor<\/a>.<br \/>  <a href=\"https:\/\/github.com\/sensu-plugins\/sensu-plugins-filesystem-checks\/tree\/2.1.0\" rel=\"nofollow\">Sensu-plugins-filesystem-checks 2.1.0<\/a> \u2014 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 <a href=\"https:\/\/sensu.io\/\" rel=\"nofollow\">Sensu<\/a>.<br \/>  <a href=\"https:\/\/github.com\/zed-0xff\/pedump\/tree\/v0.6.0\" rel=\"nofollow\">Pedump 0.6.0<\/a> \u2014 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043c\u043f\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 win32 PE.<br \/>  <a href=\"https:\/\/github.com\/slack-ruby\/slack-ruby-client\/tree\/v0.15.0\" rel=\"nofollow\">Slack Ruby client 0.15.0<\/a> \u2014 \u043a\u043b\u0438\u0435\u043d\u0442 \u0434\u043b\u044f <a href=\"https:\/\/slack.com\" rel=\"nofollow\">Slack<\/a>.<\/p>\n<h2>\u041f\u043e\u0438\u0437\u0443\u0447\u0430\u0442\u044c<\/h2>\n<p>  <a href=\"https:\/\/about.gitlab.com\/blog\/2020\/07\/08\/migrating-to-puma-on-gitlab\/\" rel=\"nofollow\">GitLab: \u00ab\u041a\u0430\u043a \u043c\u044b \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 Unicorn \u043d\u0430 Puma\u00bb<\/a>.<br \/>  <a href=\"https:\/\/dev.to\/christinegaraudy\/an-introduction-to-ruby-on-rails-for-javascript-devs-481\" rel=\"nofollow\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 Ruby \u0434\u043b\u044f Javascript-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432<\/a>.<br \/>  <a href=\"https:\/\/dev.to\/prathamesh\/understanding-webpacker-in-rails-6-l4i\" rel=\"nofollow\">\u041e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u0438\u0435 Webpacker \u0432 Rails 6<\/a>.<br \/>  <a href=\"https:\/\/www.smashingmagazine.com\/2020\/07\/introduction-stimulusjs\/\" rel=\"nofollow\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 Stimulus.js<\/a>.<br \/>  <a href=\"https:\/\/www.driftingruby.com\/episodes\/autocomplete-with-stimulusjs\" rel=\"nofollow\">\u0410\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u043e StimulusJS<\/a>.<br \/>  <a href=\"https:\/\/www.ombulabs.com\/blog\/ruby\/learning\/understanding-bundler.html\" rel=\"nofollow\">\u0412\u043d\u0438\u043a\u0430\u0435\u043c \u0432 Bundler \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c `bundle exec` \u0438\u043b\u0438 \u043d\u0435\u0442? \u0432\u043e\u0442 \u0432 \u0447\u0435\u043c \u0432\u043e\u043f\u0440\u043e\u0441<\/a>.<br \/>  <a href=\"https:\/\/dev.to\/lberge17\/ruby-glass-half-nil-1on2\" rel=\"nofollow\">\u0421\u0442\u0430\u043a\u0430\u043d \u043d\u0430 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 nil?<\/a><br \/>  <a href=\"https:\/\/dev.to\/pashagray\/back-to-the-future-or-how-to-test-time-based-logic-in-rails-d02\" rel=\"nofollow\">\u00ab\u041d\u0430\u0437\u0430\u0434 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u0435\u00bb \u0438\u043b\u0438 \u043a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c time-based \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 Rails<\/a>.<br \/>  <a href=\"https:\/\/dev.to\/twilio\/build-a-passcode-protected-conference-line-with-twilio-and-ruby-58ll\" rel=\"nofollow\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0430\u0440\u043e\u043b\u0435\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446-\u043b\u0438\u043d\u0438\u0438 \u0441 Twilio \u0438 Ruby<\/a>.<br \/>  <a href=\"https:\/\/dev.to\/rsnazario\/building-solid-fundations-on-rails-associations-1798\" rel=\"nofollow\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 Rails-\u0441\u0432\u044f\u0437\u044f\u0445<\/a>.<br \/>  <a href=\"https:\/\/dev.to\/render\/deploying-your-rails-6-app-4an4\" rel=\"nofollow\">\u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0438\u0445 Rails 6 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a>.<br \/>  <a href=\"https:\/\/solnic.codes\/2020\/07\/29\/be-cautious-with-ruby-coercion-methods\/\" rel=\"nofollow\">\u0411\u0443\u0434\u044c\u0442\u0435 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u044b \u0441 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f<\/a>.<br \/>  <a href=\"https:\/\/dev.to\/seanolad\/intro-to-ruby-procs-and-lambdas-and-the-difference-3kgc\" rel=\"nofollow\">\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 Ruby Procs \u0438 Lambdas (\u0438 \u0432 \u0447\u0435\u043c \u0440\u0430\u0437\u043d\u0438\u0446\u0430)<\/a>.<br \/>  <a href=\"http:\/\/jakeyesbeck.com\/2020\/07\/19\/making-rspec-tests-more-robust\/\" rel=\"nofollow\">\u041f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 RSpec<\/a>.<br \/>  <a href=\"https:\/\/m.signalvnoise.com\/on-apples-monopoly-power-to-destroy-hey\/\" rel=\"nofollow\">\u041e\u0431 \u043c\u043e\u0449\u044c Apple-\u043c\u043e\u043d\u043e\u043f\u043e\u043b\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 HEY \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f<\/a>.<br \/>  <a href=\"https:\/\/www.driftingruby.com\/episodes\/marketplace-solution-with-stripe-connect\" rel=\"nofollow\">\u041c\u0430\u0440\u043a\u0435\u0442\u043f\u043b\u0435\u0439\u0441 \u0441\u043e Stripe Connect<\/a>.<\/p>\n<p>  <a href=\"https:\/\/habr.com\/ru\/post\/512540\/\">Ruby Digest 2020 c 01.07 \u043f\u043e 15.07<\/a>.<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/513612\/\"> https:\/\/habr.com\/ru\/post\/513612\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/513612\/\">Ruby Digest 2020 \u0441 16 \u043f\u043e 31 \u0438\u044e\u043b\u044f: \u043d\u043e\u0432\u0438\u043d\u043a\u0438, \u043d\u043e\u0432\u043e\u0441\u0442\u0438, \u043c\u0435\u0434\u0438\u0430, \u0440\u0435\u043b\u0438\u0437\u044b, \u0441\u0442\u0430\u0442\u044c\u0438, \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435.<br \/>  \u0421\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0438\u043d\u0442\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 \u0438\u044e\u043b\u044f \u0432\u043e\u043a\u0440\u0443\u0433 Ruby.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ra\/zt\/ho\/razthoaguvjgjr5uctcgpdlueu0.png\">  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-308044","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/308044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=308044"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/308044\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=308044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=308044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=308044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}