<table><tr><td style="">sitter requested changes to this revision.<br />sitter added a comment.<br />This revision now requires changes to proceed.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D5133" rel="noreferrer">View Revision</a></tr></table><br /><div><div><p>I really think this should have a simple test case. In particular, the allow_edit behavior should be asserted somewhere. Also some style nitpicks.</p></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D5133#inline-21088" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">fetchpo.rb:52</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span class="n">elements</span> <span style="color: #aa2211">=</span> <span style="color: #000a65">ReleaseMe</span><span style="color: #aa2211">::</span><span style="color: #000a65">Project</span><span style="color: #aa2211">.</span><span class="n">from_xpath</span><span class="p">(</span><span class="n">options</span><span style="color: #aa2211">.</span><span class="n">project</span><span class="p">)</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #aa4000">unless</span> <span class="n">elements</span><span style="color: #aa2211">.</span><span class="n">count</span> <span style="color: #aa2211">==</span> <span style="color: #601200">1</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">Unless you want this to work even for !git builds I'd really advise that you get attempt to find the git remote URL and use <tt style="background: #ebebeb; font-size: 13px;">Project.from_repo_url</tt> to resolve that into a <tt style="background: #ebebeb; font-size: 13px;">Project</tt>. <tt style="background: #ebebeb; font-size: 13px;">from_xpath</tt> is slower and less reliable than <tt style="background: #ebebeb; font-size: 13px;">from_repo_url</tt>.</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D5133#inline-21089" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">fetchpo.rb:54</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"><span style="color: #aa4000">unless</span> <span class="n">elements</span><span style="color: #aa2211">.</span><span class="n">count</span> <span style="color: #aa2211">==</span> <span style="color: #601200">1</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #304a96">warn</span> <span style="color: #766510">"found </span><span style="color: #bb66bb">#{</span><span class="n">elements</span><span style="color: #aa2211">.</span><span class="n">count</span><span style="color: #bb66bb">}</span><span style="color: #766510"> elements for </span><span style="color: #bb66bb">#{</span><span class="n">options</span><span style="color: #aa2211">.</span><span class="n">project</span><span style="color: #bb66bb">}</span><span style="color: #766510">"</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #304a96">exit</span> <span style="color: #601200">2</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">2 space indentation for new code please.</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D5133#inline-21087" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">l10n.rb:217</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">    <span style="color: #aa4000">def</span> <span style="color: #004012">get</span><span class="p">(</span><span class="n">srcdir</span><span class="p">)</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">      <span class="bright"></span><span style="color: #74777d"><span class="bright"># FIXME: this is later used as destination for the weirdest of reasons...</span></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span style="color: #aa4000">def</span> <span style="color: #004012">get</span><span class="p">(</span><span class="n">srcdir<span class="bright"></span></span><span class="bright"></span><span class="p"><span class="bright">,</span></span><span class="bright"> </span><span class="n"><span class="bright">target</span></span><span class="bright"> </span><span style="color: #aa2211"><span class="bright">=</span></span><span class="bright"> </span><span style="color: #304a96"><span class="bright">nil</span></span><span class="bright"></span><span class="p"><span class="bright">,</span></span><span class="bright"> </span><span class="n"><span class="bright">allow_edit</span></span><span class="bright"> </span><span style="color: #aa2211"><span class="bright">=</span></span><span class="bright"> </span><span style="color: #304a96"><span class="bright">true</span></span><span class="p">)</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">      <span class="bright"></span><span style="color: #aa4000"><span class="bright">if</span></span><span class="bright"> </span><span style="color: #aa22ff"><span class="bright">not</span></span><span class="bright"> </span><span class="n"><span class="bright">target</span></span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">These additions are missing a test case :P</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D5133#inline-21085" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">l10n.rb:219</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">      <span class="bright"></span><span style="color: #74777d"><span class="bright"># FIXME: this is later used as destination for the weirdest of reasons...</span></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">      <span class="n">target</span> <span style="color: #aa2211">=</span> <span style="color: #766510">"</span><span style="color: #bb66bb">#{</span><span class="n">srcdir</span><span style="color: #bb66bb">}</span><span style="color: #766510">/po<span class="bright">/</span>"</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">      <span class="bright"></span><span style="color: #aa4000"><span class="bright">if</span></span><span class="bright"> </span><span style="color: #aa22ff"><span class="bright">not</span></span><span class="bright"> </span><span class="n"><span class="bright">target</span></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">      <span class="bright">    </span><span class="n">target</span> <span style="color: #aa2211">=</span> <span style="color: #766510">"</span><span style="color: #bb66bb">#{<span class="bright"></span></span><span class="bright"></span><span style="color: #000a65"><span class="bright">Dir</span></span><span class="bright"></span><span style="color: #aa2211"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">getwd</span></span><span class="bright"></span><span style="color: #bb66bb"><span class="bright">}</span></span><span class="bright"></span><span style="color: #766510"><span class="bright">/</span></span><span class="bright"></span><span style="color: #bb66bb"><span class="bright">#{</span></span><span class="n">srcdir</span><span style="color: #bb66bb">}</span><span style="color: #766510">/po"</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">      <span style="color: #aa4000">end</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">Bunch of style problems here. TLDR code I want at the bottom.</p>

<p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">Dir.pwd</tt> + modifier <tt style="background: #ebebeb; font-size: 13px;">if</tt> (when the line doesn't exceed 80 chars) + <tt style="background: #ebebeb; font-size: 13px;">unless</tt> is preferred for style reasons (<a href="https://github.com/bbatsov/ruby-style-guide" class="remarkup-link" target="_blank" rel="noreferrer">https://github.com/bbatsov/ruby-style-guide</a>)</p>

<p style="padding: 0; margin: 8px;">i.e.</p>

<p style="padding: 0; margin: 8px;"><tt style="background: #ebebeb; font-size: 13px;">target = "#{Dir.pwd}/#{srcdir}/po" unless target</tt></p>

<p style="padding: 0; margin: 8px;">That said, instead of expanding with <tt style="background: #ebebeb; font-size: 13px;">Dir.pwd</tt> manually you'd want to <tt style="background: #ebebeb; font-size: 13px;">File.expand_path("#{srcdir}/po")</tt>. If <tt style="background: #ebebeb; font-size: 13px;">srcdir</tt> is already an absolute path it will append /po, if it is not it will be turned into an absolute path relative to pwd whilest also expanding <tt style="background: #ebebeb; font-size: 13px;">~</tt> correctly <a href="http://ruby-doc.org/core-2.4.0/File.html#method-c-expand_path" class="remarkup-link" target="_blank" rel="noreferrer">http://ruby-doc.org/core-2.4.0/File.html#method-c-expand_path</a></p>

<p style="padding: 0; margin: 8px;">Also, in ruby, method params are evaluated as they appear, so since <tt style="background: #ebebeb; font-size: 13px;">target</tt> is after srcdir you can already deref srcdir.</p>

<p style="padding: 0; margin: 8px;">Putting everything together this can be expressed in the method definition without any if:</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">def get(srcdir, target = File.expand_path("#{srcdir}/po"),
        allow_edit = true)</pre></div></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D5133#inline-21086" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">l10n.rb:291</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span style="color: #aa4000">if</span> <span class="n">allow_edit</span>
</div><div style="padding: 0 8px; margin: 0 4px; ">            <span style="color: #aa4000">if</span> <span class="n">has_translation</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">I think the ifs here need to be moved inside out.</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">if has_translations
   cmakeappendcrap if allow_edit
else
   Dir.delete('po')
end</pre></div>

<p style="padding: 0; margin: 8px;">(allow_edit shouldn't have an impact on cleaning up the dangling po dir)</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R572 releaseme</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D5133" rel="noreferrer">https://phabricator.kde.org/D5133</a></div></div><br /><div><strong>To: </strong>apol, Frameworks, sitter<br /></div>