<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>donghua (李东华)</title>
    <link>https://ruby-china.org/donghua</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Apple 的工具居然有用 Ruby 写的</title>
      <description>&lt;p&gt;最近在看 Mac OS X and iOS Internals，发现 Apple 的工具居然有用 Ruby 写的。文件在：&lt;code&gt;/usr/libexec/AppSandbox/container_check.rb&lt;/code&gt;（OSX 10.9 以上）&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="c1"&gt;#!/usr/bin/env ruby&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# Copyright (c) 2011 Apple Inc. All rights reserved.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# @APPLE_LICENSE_HEADER_START@&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# This file contains Original Code and/or Modifications of Original Code&lt;/span&gt;
&lt;span class="c1"&gt;# as defined in and that are subject to the Apple Public Source License&lt;/span&gt;
&lt;span class="c1"&gt;# Version 2.0 (the 'License'). You may not use this file except in&lt;/span&gt;
&lt;span class="c1"&gt;# compliance with the License. Please obtain a copy of the License at&lt;/span&gt;
&lt;span class="c1"&gt;# http://www.opensource.apple.com/apsl/ and read it before using this&lt;/span&gt;
&lt;span class="c1"&gt;# file.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# The Original Code and all software distributed under the License are&lt;/span&gt;
&lt;span class="c1"&gt;# distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER&lt;/span&gt;
&lt;span class="c1"&gt;# EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,&lt;/span&gt;
&lt;span class="c1"&gt;# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,&lt;/span&gt;
&lt;span class="c1"&gt;# FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.&lt;/span&gt;
&lt;span class="c1"&gt;# Please see the License for the specific language governing rights and&lt;/span&gt;
&lt;span class="c1"&gt;# limitations under the License.&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# @APPLE_LICENSE_HEADER_END@&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="no"&gt;ENV&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"PATH"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"/bin:/usr/bin:/usr/sbin"&lt;/span&gt;

&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'ostruct'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'pp'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'optparse'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'tempfile'&lt;/span&gt;
&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'find'&lt;/span&gt;


&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ContainerChecker&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;outIO&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="vi"&gt;@homeDirPath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;home&lt;/span&gt;
        &lt;span class="vi"&gt;@fulloutput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;output&lt;/span&gt;
        &lt;span class="vi"&gt;@containerPath&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;File&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vi"&gt;@homeDirPath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Library"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"Containers"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="vi"&gt;@outputIO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;outIO&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="c1"&gt;# 下略&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Ruby 万歳！&lt;/strong&gt;&lt;/p&gt;</description>
      <author>donghua</author>
      <pubDate>Sun, 11 Jan 2015 00:39:00 +0800</pubDate>
      <link>https://ruby-china.org/topics/23664</link>
      <guid>https://ruby-china.org/topics/23664</guid>
    </item>
    <item>
      <title>Happy Birthday, Ruby!</title>
      <description>&lt;p&gt;原文：&lt;a href="https://www.ruby-lang.org/en/news/2014/02/24/ruby-2-1-1-is-released/" rel="nofollow" target="_blank"&gt;https://www.ruby-lang.org/en/news/2014/02/24/ruby-2-1-1-is-released/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;今天，2 月 24 日，是 Ruby 的 21 周年诞辰。在此，我们很高兴宣布 Ruby 2.1 的一个新的补丁发布——Ruby 2.1.1。&lt;/p&gt;

&lt;p&gt;Ruby 2.1 带来了诸多改进，提高了速度的同时没有引入严重的兼容性问题。它可用于 Rails 和其他一些应用程序，并且拥有更舒适的体验。&lt;/p&gt;

&lt;p&gt;这次发布包括包括了很多缺陷的修复。详见 Ticket 以及 ChangeLog。&lt;/p&gt;

&lt;p&gt;如前面的版本发布所说，从 Ruby 2.1 开始将改变版本策略，所以这次的版本就是“2.1.1”了。&lt;/p&gt;</description>
      <author>donghua</author>
      <pubDate>Mon, 24 Feb 2014 22:11:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/17463</link>
      <guid>https://ruby-china.org/topics/17463</guid>
    </item>
  </channel>
</rss>
