<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>shiren1118 (桑世龙)</title>
    <link>https://ruby-china.org/shiren1118</link>
    <description>左手写诗，右手编程</description>
    <language>en-us</language>
    <item>
      <title>帖子分类有改进哦，可以过滤，可以不支持拼音</title>
      <description>&lt;p&gt;不错，&lt;/p&gt;

&lt;p&gt;貌似还有插入代码功能&lt;/p&gt;</description>
      <author>shiren1118</author>
      <pubDate>Tue, 27 Aug 2013 21:29:35 +0800</pubDate>
      <link>https://ruby-china.org/topics/13677</link>
      <guid>https://ruby-china.org/topics/13677</guid>
    </item>
    <item>
      <title>发一个 ios 思维导图</title>
      <description>&lt;p&gt;我给一个小弟写的&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/beb2a6a600071e2f5ea104d5e1abbc41.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>shiren1118</author>
      <pubDate>Sun, 07 Apr 2013 22:53:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/10011</link>
      <guid>https://ruby-china.org/topics/10011</guid>
    </item>
    <item>
      <title>发一个我女朋友写的 tab 插件 v0.1</title>
      <description>&lt;h2 id="代码位置："&gt;代码位置：&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/i5ting/i5ting-jquery-tab" rel="nofollow" target="_blank"&gt;https://github.com/i5ting/i5ting-jquery-tab&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="界面如下："&gt;界面如下：&lt;/h2&gt;
&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/718796c9e6c070469190a40bb80ebee7.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;此界面模仿的是 iciba.com 的 tab 样式&lt;/p&gt;
&lt;h2 id="特性"&gt;特性&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;jquery 插件，支持配置&lt;/li&gt;
&lt;li&gt;显示隐藏按钮，可配置&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="用法"&gt;用法&lt;/h2&gt;
&lt;p&gt;固定高度显示&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.wrap1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;i5ting_jquery_tab&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;fix_height&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;200px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;隐藏 tab 正文区域的按钮&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.wrap2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;i5ting_jquery_tab&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;is_tab_content_btn_show&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用 hover 事件触发&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.wrap2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;i5ting_jquery_tab&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;is_tab_content_btn_show&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;current_tab_index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="na"&gt;event_trigger_type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;hover&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="固定高度显示"&gt;固定高度显示&lt;/h3&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.wrap1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;i5ting_jquery_tab&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;fix_height&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;200px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="隐藏tab正文区域的按钮"&gt;隐藏 tab 正文区域的按钮&lt;/h3&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nf"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;.wrap2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;i5ting_jquery_tab&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;is_tab_content_btn_show&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="配置项说明"&gt;配置项说明&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;是否固定显示高度&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fix_height :'200px'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果配置了 fix_height 属性，则 tab 将以此高度，固定显示高度。&lt;/p&gt;

&lt;p&gt;默认是自动适应高度的。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;是否显示 tab 正文区域是否隐藏按钮&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;is_tab_content_btn_show :fase
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果配置了 is_tab_content_btn_show=false 属性，则 tab 不显示隐藏 tab 正文区域的按钮。&lt;/p&gt;

&lt;p&gt;默认：is_tab_content_btn_show=true&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;增加 event_trigger_type&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;/*现在支持 2 种类型：click | hover */&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;设置 current_tab_index（说明：此设置是把 tab_content 设置为对应选中，不修改 li 的原因是，不预制 li class=current 会导致进入刷新，会闪屏幕的）&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;i5ting_tab_list&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 
     &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;ul&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;tab说明&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&amp;gt;  &lt;/span&gt;&lt;span class="err"&gt; 
&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;特性&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;current&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;开源协议&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;源码&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;#&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;张婷作品&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/li&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;     &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/ul&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="Release History"&gt;Release History&lt;/h2&gt;
&lt;p&gt;&lt;u&gt;(Nothing yet)&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/i5ting/i5ting-jquery-tab/tree/v0.1" rel="nofollow" target="_blank" title=""&gt; v0.1 source &lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;是否固定显示高度&lt;/li&gt;
&lt;li&gt;是否显示 tab 正文区域是否隐藏按钮&lt;/li&gt;
&lt;li&gt;给最后一个 li 增加 last 这个 css 样式&lt;/li&gt;
&lt;li&gt;增加 event_trigger_type:'click', /*现在支持 2 种类型：click | hover */&lt;/li&gt;
&lt;li&gt;设置 current_tab_index（说明：此设置是把 tab_content 设置为对应选中，不修改 li 的原因是，不预制 li class=current 会导致进入刷新，会闪屏幕的）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="欢迎批评反馈"&gt;欢迎批评反馈&lt;/h2&gt;</description>
      <author>shiren1118</author>
      <pubDate>Sun, 10 Mar 2013 22:18:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/9305</link>
      <guid>https://ruby-china.org/topics/9305</guid>
    </item>
    <item>
      <title>Ruby 递归遍历实例遍历，有更好的办法么？</title>
      <description>&lt;p&gt;ruby 递归遍历实例遍历，有更好的办法么？ &lt;/p&gt;

&lt;p&gt;下面是我的土办法&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="vi"&gt;@s&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;recursion_dump_instance_variables&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="vi"&gt;@s&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;instance_variables&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="vi"&gt;@s&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;---"&lt;/span&gt;
    &lt;span class="nb"&gt;p&lt;/span&gt;  &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;instance_variable_get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="s2"&gt;"---"&lt;/span&gt;
    &lt;span class="n"&gt;recursion_dump_instance_variables&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;各位有什么好办法？&lt;/p&gt;

&lt;p&gt;方法 2&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;class&lt;/span&gt;
    &lt;span class="no"&gt;ObjectSpace&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each_object&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt; 
      &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;instance_variables&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
        &lt;span class="nb"&gt;p&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;instance_variable_get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="k"&gt;end&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>shiren1118</author>
      <pubDate>Mon, 28 Jan 2013 07:37:50 +0800</pubDate>
      <link>https://ruby-china.org/topics/8421</link>
      <guid>https://ruby-china.org/topics/8421</guid>
    </item>
    <item>
      <title>phonegap v2.2 初测</title>
      <description>&lt;p&gt;phonegap v2.2 初测&lt;/p&gt;

&lt;p&gt;最近有半年没碰了，现在都 2.2 版本了，经过半个多小时的测试，变化还比较大，这次测试主要是帮朋友写个简单的入门。&lt;/p&gt;
&lt;h2 id="准备工作"&gt;准备工作&lt;/h2&gt;
&lt;p&gt;访问&lt;a href="https://nodeload.github.com/apache/incubator-cordova-ios/zip/master" rel="nofollow" target="_blank"&gt;https://nodeload.github.com/apache/incubator-cordova-ios/zip/master&lt;/a&gt; 下载 incubator-cordova-ios-master.zip&lt;/p&gt;

&lt;p&gt;v2.2 默认不适用共享 lib 了，如果使用共享 lib，最好是先把之前 (在$CORDOVA_HOME 目录下) 删除掉 make uninstall&lt;/p&gt;

&lt;p&gt;假设$CORDOVA_HOME 这个位置，下面有引用&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$CORDOVA_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/Users/sang/Downloads/incubator-cordova-ios-master
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="创建新项目"&gt;创建新项目&lt;/h2&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;➜  ~  &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;$CORDOVA_HOME&lt;/span&gt;/bin
➜  bin  &lt;span class="nb"&gt;ls

&lt;/span&gt;README.md                 create                    package.json              templates                 tests                     uncrustify.sh
autotest                  diagnose_project          replaces                  &lt;span class="nb"&gt;test                      &lt;/span&gt;uncrustify.cfg            update_cordova_subproject

➜  bin  ./create &lt;span class="nt"&gt;--help&lt;/span&gt;

Usage: ./create &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;--shared&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &amp;lt;path_to_new_project&amp;gt; &amp;lt;package_name&amp;gt; &amp;lt;project_name&amp;gt;
     &lt;span class="nt"&gt;--shared&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;optional&lt;span class="o"&gt;)&lt;/span&gt;: Link directly against the shared copy of the CordovaLib instead of a copy of it.
     &amp;lt;path_to_new_project&amp;gt;: Path to your new Cordova iOS project
     &amp;lt;package_name&amp;gt;: Package name, following reverse-domain style convention
     &amp;lt;project_name&amp;gt;: Project name

➜  bin 
➜  bin  ./create  /Users/sang/my_new_cordova_project com.no320.cordova_project_name my_new_cordova_project
➜  bin  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;用法：./create [--shared] &amp;lt;新建项目的路径&amp;gt; &amp;lt;包名称&amp;gt; &amp;lt;项目名称&amp;gt;&lt;/p&gt;

&lt;p&gt;如果使用--shared，有可能呢老版本冲突。不建议使用。&lt;/p&gt;

&lt;p&gt;看一下新建的工程目录
&lt;img src="//l.ruby-china.com/photo/1e349076139e7a36279256c507baad84.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;打开 xcode，我的目前是 4.5，简单修改 index.html&lt;/p&gt;

&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/29d91218d28ca3b5cf9d093eb8532f18.png" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;略作修改，很容易就搞定了第一个例子&lt;/p&gt;
&lt;h2 id="和之前版本比较"&gt;和之前版本比较&lt;/h2&gt;
&lt;p&gt;和之前版本比较&lt;/p&gt;

&lt;p&gt;1、命名更加规范了，js,css,image,resource 和 spec bdd 测试（很不错）。
2、cordova.js 变化不大，基本还是 and 规范
3、有点失望的是没有 grunt 这样的 build 支持。没有一个 amd 库支持，可选项不多，像 qunit 之类的都木有。
4、环境变量没有处理，这个有点失望。
5、dom 操作仍然是非常低级的 api，哎。&lt;/p&gt;

&lt;hr&gt;
&lt;h2 id="总结"&gt;总结&lt;/h2&gt;
&lt;p&gt;整体看了还是简单了很多的。不强制占用 document 文件做为共享目录。从我的角度看，它的目录变化应该还是会比较大（猜测），web 世界的最佳实践会慢慢加入进来的。&lt;/p&gt;</description>
      <author>shiren1118</author>
      <pubDate>Fri, 18 Jan 2013 23:40:52 +0800</pubDate>
      <link>https://ruby-china.org/topics/8182</link>
      <guid>https://ruby-china.org/topics/8182</guid>
    </item>
    <item>
      <title>求教 ruby -Ilib 这里的-Ilib 是什么意思</title>
      <description>&lt;p&gt;看别人测试 gem 下的 bin 下的可执行文件&lt;/p&gt;

&lt;p&gt;比如，.是自己建的 gem 目录&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;|-- Gemfile
|-- LICENSE.txt
|-- README.md
|-- Rakefile
|-- bin
|   `-- truee
|-- lib
|   |-- truee
|   |   |-- translator.rb
|   |   `-- version.rb
|   `-- truee.rb
`-- truee.gemspec
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;测试方法 &lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="sx"&gt;% ruby &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="no"&gt;Ilib&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;/&lt;/span&gt;&lt;span class="n"&gt;bin&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;truee&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;求教 ruby -Ilib 这里的-Ilib 是什么意思&lt;/p&gt;</description>
      <author>shiren1118</author>
      <pubDate>Mon, 07 Jan 2013 22:38:03 +0800</pubDate>
      <link>https://ruby-china.org/topics/7856</link>
      <guid>https://ruby-china.org/topics/7856</guid>
    </item>
    <item>
      <title>我的那个 ios 帖子丢了，。。。。还是看看 oc 版本的 spec</title>
      <description>&lt;p&gt;我自己没有留一份。。。&lt;/p&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#import "Specta.h"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;实际代码 &lt;/p&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#import "MTLTestModel.h"
&lt;/span&gt;
&lt;span class="n"&gt;SpecBegin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MTLModel&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="s"&gt;"subclass"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;it&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="s"&gt;"should not include dynamic readonly properties in +propertyKeys"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;NSSet&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;expectedKeys&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;NSSet&lt;/span&gt; &lt;span class="n"&gt;setWithObjects&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="s"&gt;"count"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="s"&gt;"nestedName"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
        &lt;span class="n"&gt;expect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MTLTestModel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;propertyKeys&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;equal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;expectedKeys&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="n"&gt;SpecEnd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>shiren1118</author>
      <pubDate>Mon, 07 Jan 2013 13:06:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/7838</link>
      <guid>https://ruby-china.org/topics/7838</guid>
    </item>
    <item>
      <title>ios 客户端进行 oauth 授权方式</title>
      <description>&lt;h2 id="ios客户端进行oauth授权方式"&gt;ios 客户端进行 oauth 授权方式&lt;/h2&gt;&lt;h2 id="方法1："&gt;方法 1：&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用 devise 做用户管理，集成 weibo 的时候使用 devise 的 omniauth 扩展，所以不需要使用微博的 ios sdk &lt;/li&gt;
&lt;li&gt;UIWebview 调用/user/auth/weibo&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;rails 通过 devise 的 omniauth 扩展进入到 weibo 授权页面&lt;/li&gt;
&lt;li&gt;weibo 的 callback 会回掉到 devise 的 omniauthCallback 里定义的方法&lt;/li&gt;
&lt;li&gt;这时在回掉方法里把 devise 中的 User 进行持久化。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="方法2："&gt;方法 2：&lt;/h2&gt;
&lt;p&gt;使用微博的 ios sdk 获取 auth 信息，然后把 auth 信息提交到服务器，生成 devise 的 user。如果是自己写的模型就更容易了，&lt;/p&gt;

&lt;p&gt;我是 devise 的 user 没法自己生成（密码的地方不知道如何 mock），故采用了第一种方式&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;user1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;User&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create!&lt;/span&gt; &lt;span class="ss"&gt;:name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'First rubychinaer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:email&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'myname@ruby-china.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:password&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'rubychina'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:password_confirmation&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'rubychina'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;测试里好使，在 controller 里不好使，求指教&lt;/p&gt;</description>
      <author>shiren1118</author>
      <pubDate>Fri, 21 Dec 2012 09:47:10 +0800</pubDate>
      <link>https://ruby-china.org/topics/7738</link>
      <guid>https://ruby-china.org/topics/7738</guid>
    </item>
    <item>
      <title>简单部署 AppFog</title>
      <description>&lt;h2 id="简单部署appfog"&gt;简单部署 appfog&lt;/h2&gt;&lt;h2 id="首先clone这个项目https://github.com/appfog/af-ruby-rails/"&gt;首先 clone 这个项目&lt;a href="https://github.com/appfog/af-ruby-rails/" rel="nofollow" target="_blank"&gt;https://github.com/appfog/af-ruby-rails/&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;自己改个名字，如果 clone 的时候没有指定的话&lt;/p&gt;
&lt;h2 id="登陆"&gt;登陆&lt;/h2&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;**&lt;/span&gt;Alfred-iMac:alfred&lt;span class="nv"&gt;$ &lt;/span&gt;af logn&lt;span class="k"&gt;**&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;##上传&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;**&lt;/span&gt;Alfred-iMac:alfred&lt;span class="nv"&gt;$ &lt;/span&gt;af push&lt;span class="k"&gt;**&lt;/span&gt;
Would you like to deploy from the current directory? &lt;span class="o"&gt;[&lt;/span&gt;Yn]: 默认
Application Name: alfred
Detected a Rails Application, is this correct? &lt;span class="o"&gt;[&lt;/span&gt;Yn]:  选择3，速度更快一些
1: AWS US East - Virginia
2: AWS EU West - Ireland
3: AWS Asia SE - Singapore
4: Rackspace AZ 1 - Dallas
5: HP AZ 2 - Las Vegas
Select Infrastructure: 3
Application Deployed URL &lt;span class="o"&gt;[&lt;/span&gt;alfred.ap01.aws.af.cm]: 
Memory reservation &lt;span class="o"&gt;(&lt;/span&gt;128M, 256M, 512M, 1G, 2G&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;256M]: 1G  只要不是128就成
How many instances? &lt;span class="o"&gt;[&lt;/span&gt;1]: 
Bind existing services to &lt;span class="s1"&gt;'alfred'&lt;/span&gt;? &lt;span class="o"&gt;[&lt;/span&gt;yN]: 默认
Create services to &lt;span class="nb"&gt;bind &lt;/span&gt;to &lt;span class="s1"&gt;'alfred'&lt;/span&gt;? &lt;span class="o"&gt;[&lt;/span&gt;yN]: 默认
Would you like to save this configuration? &lt;span class="o"&gt;[&lt;/span&gt;yN]: 
Creating Application: OK
Uploading Application:
  Checking &lt;span class="k"&gt;for &lt;/span&gt;available resources: OK
  Packing application: OK
  Uploading &lt;span class="o"&gt;(&lt;/span&gt;38K&lt;span class="o"&gt;)&lt;/span&gt;: OK   
Push Status: OK
Staging Application &lt;span class="s1"&gt;'alfred'&lt;/span&gt;: OK                                           
Starting Application &lt;span class="s1"&gt;'alfred'&lt;/span&gt;: OK                                          
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="相关资源地址"&gt;相关资源地址&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/appfog/af-ruby-rails/" rel="nofollow" target="_blank"&gt;https://github.com/appfog/af-ruby-rails/&lt;/a&gt;      示例项目&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.appfog.com/languages/ruby/rails" rel="nofollow" target="_blank"&gt;https://docs.appfog.com/languages/ruby/rails&lt;/a&gt;  rails3.2.5 的部署说明，有很多注意事项&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.appfog.com/services/mongodb" rel="nofollow" target="_blank"&gt;https://docs.appfog.com/services/mongodb&lt;/a&gt;      如果对 mongodb 有兴趣可以看看&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="数据库"&gt;数据库&lt;/h2&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;AppFog automatically creates and binds a new MySQL service with the Ruby on Rails jumpstart, and the app is automatically reconfigured to connect to the service. For more information on services and how to connect to them manually, check out our docs on Services.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;文档说会自动绑定对应的 services：&lt;/p&gt;

&lt;p&gt;在 push 的时候需配置 services&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Bind existing services to &lt;span class="s1"&gt;'alfred'&lt;/span&gt;? &lt;span class="o"&gt;[&lt;/span&gt;yN]: 
yCreate services to &lt;span class="nb"&gt;bind &lt;/span&gt;to &lt;span class="s1"&gt;'alfred'&lt;/span&gt;? &lt;span class="o"&gt;[&lt;/span&gt;yN]: y
1: mongodb
2: mysql
3: postgresql
4: rabbitmq
5: redis
What kind of service?: n
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="主意问题"&gt;主意问题&lt;/h2&gt;
&lt;p&gt;有的时候会报这个错误&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Error &lt;span class="o"&gt;(&lt;/span&gt;JSON 503&lt;span class="o"&gt;)&lt;/span&gt;: &amp;lt;?xml &lt;span class="nv"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt; &lt;span class="nv"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"u...
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;执行，指定 ruby 是 1.9.3 的版本就可以解决了&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;af push &lt;span class="nt"&gt;--runtime&lt;/span&gt; ruby193
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>shiren1118</author>
      <pubDate>Wed, 19 Dec 2012 10:17:10 +0800</pubDate>
      <link>https://ruby-china.org/topics/7685</link>
      <guid>https://ruby-china.org/topics/7685</guid>
    </item>
    <item>
      <title>mark 一下 devise+ 微博的实现</title>
      <description>&lt;p&gt;&lt;a href="https://github.com/jihao/rails_apps_for_fun/tree/master/authentication" rel="nofollow" target="_blank"&gt;https://github.com/jihao/rails_apps_for_fun/tree/master/authentication&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.20ju.com/content/V175723.htm" rel="nofollow" target="_blank"&gt;http://www.20ju.com/content/V175723.htm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;今天上不了 github&lt;/p&gt;</description>
      <author>shiren1118</author>
      <pubDate>Fri, 14 Dec 2012 11:53:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/7561</link>
      <guid>https://ruby-china.org/topics/7561</guid>
    </item>
  </channel>
</rss>
