<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>crayygy (crayygy)</title>
    <link>https://ruby-china.org/crayygy</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>多个 Rails 项目中都会用到的代码，怎样抽象更加方便管理更新？</title>
      <description>&lt;p&gt;目前遇到的一个问题是，公司内部若干项目，均需要采用一套内网的登录验证，因此几个项目中这一块的代码是完全相同的。
但是又是非常特定的环境，有时候需要针对内网验证变化来更新代码，因此会变得很繁琐。&lt;/p&gt;

&lt;p&gt;刚好最近几个项目要迁移 code base，没有很多的需求要做，有空来思考一下重构这一部分的代码，方便以后的更新。&lt;/p&gt;

&lt;p&gt;想请教一下大家有没有什么比较好的建议。&lt;/p&gt;

&lt;p&gt;我也算是半吊子出家的 Ruby 程序员，有些东西还不算很清楚，如果没有描述的很清楚的话，还请见谅。&lt;/p&gt;</description>
      <author>crayygy</author>
      <pubDate>Thu, 01 Jun 2017 16:02:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/33113</link>
      <guid>https://ruby-china.org/topics/33113</guid>
    </item>
    <item>
      <title>[Problem, Ruby, Array] 如何检测一个字符串中包括某个数组中的元素？</title>
      <description>&lt;p&gt;举个例子，有若干个字符串（约 10w 行数据）&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"Ruby China is a community of Ruby developers."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;keywords&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"Ruby"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"community"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如何判断这个 string 中包括这个数组中的任何一个元素呢？ &lt;/p&gt;

&lt;p&gt;想到的一个很丑的写法是这样的：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;include?&lt;/span&gt; &lt;span class="n"&gt;keywords&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;include?&lt;/span&gt; &lt;span class="n"&gt;keywords&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
  &lt;span class="c1"&gt;# do something&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;keywords 数组是变化的并且最多会有 100+，因此这种写法不可能成立的...&lt;/p&gt;

&lt;p&gt;然后改了一下成这样：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;keywords&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;keyword&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;include?&lt;/span&gt; &lt;span class="n"&gt;keyword&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;但是这样会造成如果这一句话包括多个关键字的话，会出现很多次。&lt;/p&gt;

&lt;p&gt;所以想请教一下，有没有什么方法能够判断这个字符串是否包括数组中存在的这些子串，或者有更好地判断方法？&lt;/p&gt;

&lt;p&gt;谢谢！&lt;/p&gt;</description>
      <author>crayygy</author>
      <pubDate>Tue, 24 May 2016 16:58:00 +0800</pubDate>
      <link>https://ruby-china.org/topics/30106</link>
      <guid>https://ruby-china.org/topics/30106</guid>
    </item>
  </channel>
</rss>
