<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>macrow (Macrow)</title>
    <link>https://ruby-china.org/macrow</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Homeland for Android 代码及程序分享</title>
      <description>&lt;h2 id="为什么有Homeland for Android"&gt;为什么有 Homeland for Android&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2017/3f201641-43d0-4540-bf57-2a994a11760a.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;一直关注 RubyChina，一直在浏览 RubyChina，其实我的工作和编程没有一点关系，但自己一直比较喜欢代码，尤其喜欢 Ruby 以及 Rails。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;一个多月前，头脑发热突然想学习 Android 编程，于是想着能拿什么来练手。然后，我发现以前的 RubyChina 的 Android 客户端几乎都不能用，而官方的版本其实是用 &lt;a href="https://github.com/turbolinks/turbolinks-android" rel="nofollow" target="_blank"&gt;https://github.com/turbolinks/turbolinks-android&lt;/a&gt; 来完成的，用起来和网页版没多大区别，实际使用感觉还是原生 App 体验好点点，于是就有了为 RubyChina 做一个 Android 客户端的想法，Homeland for Android 就产生了。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;当然，写这些代码仅仅是出于学习的目的，当然，如果大家觉得还可以用，我还是很高兴和乐意的。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;程序的 UI 参考了锤子手机内置的论坛 (&lt;a href="http://www.smartisan.com/apps/bbs" rel="nofollow" target="_blank"&gt;http://www.smartisan.com/apps/bbs&lt;/a&gt;)，感谢。（因为我目前用的锤子手机 😜 ）&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="关于实现的功能"&gt;关于实现的功能&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2017/ef0f1225-faa2-4ecb-9b96-b8b7f9f3cca6.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2017/09acdbfa-6927-49c0-ad25-9bc79c8268f5.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;官方的 V3 版的 API 能够提供的功能我基本上都做到 Homeland4Android 里面去了，因为手机屏幕尺寸、性能、输入不便 (手机语音输入现在很厉害了，不比打字慢) 等原因，手机版可能用来浏览的居多，所以仅仅用来浏览一下，看一看，或者简单编辑，我认为还是不错的。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;如果后续有需要，我再到 RubyChina 提 PR，完善 API，为 Homeland4Android 完善新的功能。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;简单的功能列表&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;话题列表浏览、按节点进行浏览、分类浏览&lt;/li&gt;
&lt;li&gt;话题详细内容及回复内容浏览，可对话题进行收藏、点赞、关注&lt;/li&gt;
&lt;li&gt;发布新话题、发布新回复、编辑自己的话题和回复内容，同时可以拍照或者从图库选择图片上传&lt;/li&gt;
&lt;li&gt;支持 OAuth 方式登录，不存储任何密码相关的敏感信息，保证您的信息安全&lt;/li&gt;
&lt;li&gt;可查看自己或别人的基本信息，便于关注或者屏蔽，可查看该用户关注、被关注、收藏、发布话题等详细内容&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="关于代码"&gt;关于代码&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Github 地址  &lt;a href="https://github.com/Macrow/Homeland4Android" rel="nofollow" target="_blank"&gt;https://github.com/Macrow/Homeland4Android&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/Macrow/Homeland4Android/raw/master/release/Homeland4Android.apk" rel="nofollow" target="_blank" title=""&gt;点击下载编译好的 APK&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;因为代码刚刚完成，还没有写测试代码，而且我又是初学者，难免还有诸多问题和 Bug，所以并没有到发布平台进行发布，后续如果有必要，再做考虑。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;人品保证，绝无任何不良程序，绝无索取任何多余权限。&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>macrow</author>
      <pubDate>Fri, 16 Jun 2017 14:16:06 +0800</pubDate>
      <link>https://ruby-china.org/topics/33245</link>
      <guid>https://ruby-china.org/topics/33245</guid>
    </item>
    <item>
      <title>Ruby China 网站底部 API 链接失效？</title>
      <description>&lt;p&gt;前两天还能正常打开，今天已经是 404 了。&lt;/p&gt;

&lt;p&gt;是准备移除，还是误删？&lt;/p&gt;

&lt;p&gt;有人知道吗？&lt;img title=":fire:" alt="🔥" src="https://twemoji.ruby-china.com/2/svg/1f525.svg" class="twemoji"&gt; &lt;/p&gt;

&lt;p&gt;😊😊😊😂😂😂&lt;/p&gt;</description>
      <author>macrow</author>
      <pubDate>Sat, 10 Jun 2017 12:59:07 +0800</pubDate>
      <link>https://ruby-china.org/topics/33203</link>
      <guid>https://ruby-china.org/topics/33203</guid>
    </item>
    <item>
      <title>[建议] 关于调用 API 返回数据的问题</title>
      <description>&lt;h3 id="最近学习Android，做一个Ruby China的客户端练习，在调用API时有一个疑问："&gt;最近学习 Android，做一个 Ruby China 的客户端练习，在调用 API 时有一个疑问：&lt;/h3&gt;
&lt;p&gt;在获取一个话题的 &lt;code&gt;回复&lt;/code&gt; 内容时，使用以下 API&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;#show ⇒ ReplyDetailSerializer&lt;/span&gt;

&lt;span class="c1"&gt;# 获取回帖的详细内容（一般用于编辑回帖的时候）&lt;/span&gt;

&lt;span class="c1"&gt;# GET /api/v3/replies/:id&lt;/span&gt;

&lt;span class="c1"&gt;# Returns:&lt;/span&gt;
&lt;span class="c1"&gt;# (ReplyDetailSerializer)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h5 id="ReplyDetailSerializer 详细内容如下"&gt;ReplyDetailSerializer 详细内容如下&lt;/h5&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;话题信息&lt;/span&gt;

&lt;span class="n"&gt;attributes&lt;/span&gt;
&lt;span class="nb"&gt;id&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;编号&lt;/span&gt;
&lt;span class="n"&gt;body_html&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;String&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;以转换成&lt;/span&gt; &lt;span class="no"&gt;HTML&lt;/span&gt; &lt;span class="n"&gt;的正文&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;      &lt;span class="nf"&gt;-&lt;/span&gt;&lt;span class="o"&gt;---&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;          &lt;span class="n"&gt;这个字段是我提问的重点&lt;/span&gt;
&lt;span class="n"&gt;topic_id&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;话题编号&lt;/span&gt;
&lt;span class="n"&gt;deleted&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;是否已删除&lt;/span&gt;
&lt;span class="n"&gt;likes_count&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;Integer&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;赞数量&lt;/span&gt;
&lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="no"&gt;UserSerializer&lt;/span&gt; &lt;span class="n"&gt;最后回复者用户对象&lt;/span&gt;
&lt;span class="n"&gt;created_at&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;DateTime&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;创建时间&lt;/span&gt;
&lt;span class="n"&gt;updated_at&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;DateTime&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;更新时间&lt;/span&gt;
&lt;span class="n"&gt;topic_title&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;String&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;话题标题&lt;/span&gt;
&lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;String&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;回帖正文&lt;/span&gt;&lt;span class="err"&gt;，&lt;/span&gt;&lt;span class="n"&gt;原始&lt;/span&gt; &lt;span class="no"&gt;Markdown&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h4 id="问题来了："&gt;问题来了：&lt;/h4&gt;
&lt;p&gt;返回的回复内容是已经转换过了的 &lt;code&gt;body_html&lt;/code&gt;，由于一些原因，转换过后的这个 html 数据展示出来有一些信息遗漏，或者不太美观，我看了 Homeland 的源码，
其实数据里已经保存了 &lt;code&gt;body&lt;/code&gt; 的原始数据的 (Markdown 格式)，这里的 &lt;code&gt;ReplyDetailSerializer&lt;/code&gt;为什么不同时也返回这个 &lt;code&gt;body&lt;/code&gt;(&lt;code&gt;ReplyDetailSerializer&lt;/code&gt;里面本来有这个字段，只是返回值没有这个&lt;code&gt;body&lt;/code&gt;)，让我们多一个选择。&lt;/p&gt;
&lt;h4 id="建议："&gt;建议：&lt;/h4&gt;
&lt;p&gt;能否在 &lt;code&gt;ReplyDetailSerializer&lt;/code&gt;返回值里加入&lt;code&gt;body&lt;/code&gt;字段。&lt;/p&gt;</description>
      <author>macrow</author>
      <pubDate>Thu, 18 May 2017 14:38:47 +0800</pubDate>
      <link>https://ruby-china.org/topics/33016</link>
      <guid>https://ruby-china.org/topics/33016</guid>
    </item>
    <item>
      <title>请教如何用 Capybara 选择 Chosen？</title>
      <description>&lt;p&gt;Chozen: &lt;a href="http://harvesthq.github.com/chosen/" rel="nofollow" target="_blank"&gt;http://harvesthq.github.com/chosen/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google 了一下，找到一些答案：
&lt;a href="https://gist.github.com/1391107" rel="nofollow" target="_blank"&gt;https://gist.github.com/1391107&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;由于对 Capybara 不太熟悉，对下面这个 select_from_chosen 具体如何使用不太理解，主要是 options 这个参数是指什么，不明白。我用了 find('#select_id‘)，结果不正确，究竟该如何使用请教了！！谢谢。&lt;/p&gt;

&lt;p&gt;def select_from_chosen(item_text, options)
      field = find_field(options[:from])
      option_value = page.evaluate_script("$(\"##{field[:id]} option:contains('#{item_text}')\").val()")
      page.execute_script("value = ['#{option_value}']\; if ($('##{field[:id]}').val()) {$.merge(value, $('##{field[:id]}').val())}")
      option_value = page.evaluate_script("value")
      page.execute_script("$('##{field[:id]}').val(#{option_value})")
      page.execute_script("$('##{field[:id]}').trigger('liszt:updated').trigger('change')")
    end  &lt;/p&gt;</description>
      <author>macrow</author>
      <pubDate>Mon, 14 May 2012 20:41:46 +0800</pubDate>
      <link>https://ruby-china.org/topics/3274</link>
      <guid>https://ruby-china.org/topics/3274</guid>
    </item>
  </channel>
</rss>
