<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Kopo4e</title>
<link>https://kopo4e.ru/</link>
<description>Kopo4e</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Kopo4e</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Arel и Ruby on Rails</title>
<guid isPermaLink="false">2</guid>
<link>https://kopo4e.ru/all/arel-i-ruby-on-rails/</link>
<pubDate>Fri, 17 Jan 2025 09:15:46 +0300</pubDate>
<author></author>
<comments>https://kopo4e.ru/all/arel-i-ruby-on-rails/</comments>
<description>
&lt;p&gt;Материалы:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;&lt;a href="https://dev.to/ashawareb/arel-and-ruby-on-rails-58m3"&gt;https://dev.to/ashawareb/arel-and-ruby-on-rails-58m3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thoughtbot.com/blog/using-arel-to-compose-sql-queries"&gt;https://thoughtbot.com/blog/using-arel-to-compose-sql-queries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cloudbees.com/blog/creating-advanced-active-record-db-queries-arel"&gt;https://www.cloudbees.com/blog/creating-advanced-active-record-db-queries-arel&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</description>
</item>

<item>
<title>Итератор tap</title>
<guid isPermaLink="false">1</guid>
<link>https://kopo4e.ru/all/iterator-tap/</link>
<pubDate>Tue, 14 Jan 2025 08:46:50 +0300</pubDate>
<author></author>
<comments>https://kopo4e.ru/all/iterator-tap/</comments>
<description>
&lt;p&gt;Можно использовать в  цепочке методов, например для вывода промежуточных результатов.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;a = [1, 2, 3, 1, 5, 2, 6, 7, 3, 9, 1, 8, 2]

a.tap { |x| p x } # =&amp;gt; [1, 2, 3, 1, 5, 2, 6, 7, 3, 9, 1, 8, 2]
.sort
.tap { |x| p x }  # =&amp;gt; [1, 1, 1, 2, 2, 2, 3, 3, 5, 6, 7, 8, 9] 
.uniq
.tap { |x| p x }  # =&amp;gt; [1, 2, 3, 5, 6, 7, 8, 9]
.map { |x| x*2 }  # =&amp;gt; [2, 4, 6, 10, 12, 14, 16, 18]&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Можно использовать, когда нужно модифицировать объект внутри блока.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;params = { pages: 10 }

# before
def without_tap(params)
  params[:sort] = :asc
  params
end
without_tap(params) #  =&amp;gt; {:pages=&amp;gt;10, :sort=&amp;gt;:asc} 

# after
def with_tap(params)
  params.tap { |p| p[:sort] = :desc }
end
with_tap(params) #  =&amp;gt; {:pages=&amp;gt;10, :sort=&amp;gt;:desc}&lt;/code&gt;&lt;/pre&gt;</description>
</item>


</channel>
</rss>