<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A Dev&#039;s Life &#187; Ruby</title>
	<atom:link href="http://www.devslife.com/category/ruby/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devslife.com</link>
	<description>シアトル在住日本人ソフトウェアエンジニアのひとりごと</description>
	<lastBuildDate>Thu, 20 May 2010 22:26:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>NetBeanとRuby</title>
		<link>http://www.devslife.com/2008/03/22/netbean%e3%81%a8ruby/</link>
		<comments>http://www.devslife.com/2008/03/22/netbean%e3%81%a8ruby/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 07:19:09 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2008/03/22/netbean%e3%81%a8ruby/</guid>
		<description><![CDATA[一つ前のブログの記事でNetBeanについて少々触れた。いや触れたというよりもどうかなあ？と疑問に思っただけだった。実際触ってみるとこれって結構すごい。Rubyのインテリセンスが完備されていてしかもデバッガまである。はっ [...] [...]]]></description>
			<content:encoded><![CDATA[<p>一つ前のブログの記事でNetBeanについて少々触れた。いや触れたというよりもどうかなあ？と疑問に思っただけだった。実際触ってみるとこれって結構すごい。Rubyのインテリセンスが完備されていてしかもデバッガまである。はっきりいってここまでだとは思っていなかったので驚きだった。下の画像をクリックすると拡大されたものが見られる。</p>
<p><a href="http://www.devslife.com/wp-content/uploads/2008/03/netbeanruby.jpg" target="_blank"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="NetBeanRuby" src="http://www.devslife.com/wp-content/uploads/2008/03/netbeanruby-thumb.jpg" width="237" border="0" /></a> </p>
<p>スクリプト言語としてはRubyが圧倒的に好きだなあ。スレッドといいオブジェクト指向といい自分のプログラミングのスタイルにはなくてはならない要素が備えられているのは大きい。２週間ほど仕事でウェブアプリのUIを自動的にスモークテストをする目的でWatirをやったときにルビーを本格的に勉強したことがある。私はUnixはやったといえるほど経験はまるでないのだが、一度ルビーのような言語をやってしまうとUnixスタイルのシェル的な言語には戻れなくなってしまうと思う。そういう意味ではPowerShellもかなりオブジェクト指向で私の性に合っている。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2008/03/22/netbean%e3%81%a8ruby/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Rubyプログラミング（２）.NETとの比較</title>
		<link>http://www.devslife.com/2007/09/15/ruby%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%92%ef%bc%89net%e3%81%a8%e3%81%ae%e6%af%94%e8%bc%83/</link>
		<comments>http://www.devslife.com/2007/09/15/ruby%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%92%ef%bc%89net%e3%81%a8%e3%81%ae%e6%af%94%e8%bc%83/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 13:49:12 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2007/09/15/ruby%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%92%ef%bc%89net%e3%81%a8%e3%81%ae%e6%af%94%e8%bc%83/</guid>
		<description><![CDATA[今回は.NETとの比較をしてみたいと思う。 クラスの定義（C#） クラスの定義（Ruby） class HelloClass { &#160; } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: [...] [...]]]></description>
			<content:encoded><![CDATA[<div style="font-size: 10pt; background: white; color: black; font-family: consolas">
<p style="margin: 0px">
<p style="margin: 0px"><span style="color: gray"></span></p>
<p>今回は.NETとの比較をしてみたいと思う。</p></div>
<table cellspacing="0" cellpadding="2" width="800" border="1" unselectable="on">
<tbody>
<tr>
<td valign="top" width="408">クラスの定義（C#）</td>
<td valign="top" width="391">クラスの定義（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">class</span> HelloClass</pre>
<pre>{</pre>
<pre class="alt">&nbsp;</pre>
<pre>}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">class</span> HelloClass</pre>
<pre>&nbsp;</pre>
<pre class="alt"><font color="#0000ff">end</font></pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">継承（C#）</td>
<td valign="top" width="391">継承（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">class</span> HelloClass : MyBaseClass</pre>
<pre>{</pre>
<pre class="alt">&nbsp;</pre>
<pre>}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt"><font color="#0000ff">def</font> HelloClass &lt; MyBaseClass</pre>
<pre>&nbsp;</pre>
<pre class="alt"><font color="#0000ff">end</font></pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">コンストラクタ（C#）</td>
<td valign="top" width="391">コンストラクタ（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">class</span> HelloClass</pre>
<pre>{</pre>
<pre class="alt">     <span class="kwrd">public</span> HelloClass()</pre>
<pre>     {</pre>
<pre class="alt">&nbsp;</pre>
<pre>     }</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">class</span> HelloClass</pre>
<pre>     <font color="#0000ff">def</font> initialize()</pre>
<pre class="alt">     </pre>
<pre>     <font color="#0000ff">end</font></pre>
<pre class="alt"><font color="#0000ff">end</font></pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">読み書きプロパティ（C#）</td>
<td valign="top" width="391">読み書きプロパティ（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">class</span> HelloClass</pre>
<pre>{</pre>
<pre class="alt">    <span class="kwrd">private</span> <span class="kwrd">string</span> _myProp;</pre>
<pre>    <span class="kwrd">public</span> <span class="kwrd">string</span> myProp</pre>
<pre class="alt">    {</pre>
<pre>        get { <span class="kwrd">return</span> _myProp; }</pre>
<pre class="alt">m        set { _myProp = <span class="kwrd">value</span>; }</pre>
<pre>    }</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">class</span> HelloClass</pre>
<pre>    attr_accessor :myProp</pre>
<pre class="alt"><font color="#0000ff">end</font></pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>※クラス内でmyPropの値が必要なときは@myPropの変数を使う。<br />※読み専用のプロパティ（アトリビュート）はattr_reader、書き専用はattr_writerのキーワードを使用する。</td>
</tr>
<tr>
<td valign="top" width="408">クラスのインスタンスの作成（C#）</td>
<td valign="top" width="391">クラスのインスタンスの作成（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<pre class="csharpcode">HelloClass h = <span class="kwrd">new</span> HelloClass();</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<pre class="csharpcode">h = HelloClass.new</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">パラメータ配列（C#）</td>
<td valign="top" width="391">パラメータ配列（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">public</span> <span class="kwrd">void</span> myMethod(<span class="kwrd">params</span> <span class="kwrd">string</span>[] moreParams)</pre>
<pre>{</pre>
<pre class="alt">&nbsp;</pre>
<pre>}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt"><font color="#0000ff">def</font> myMethod(*moreParams)</pre>
<pre>&nbsp;</pre>
<pre class="alt"><font color="#0000ff">end</font></pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">forループ（C#）</td>
<td valign="top" width="391">forループ（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i &lt; 10; i++)</pre>
<pre>{</pre>
<pre class="alt">&nbsp;&nbsp;&nbsp;&nbsp; Console.WriteLine(i);</pre>
<pre>}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt">10.times{|i|</pre>
<pre>    puts i</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>または</p>
<div class="csharpcode">
<pre class="alt"><span class="kwrd">for</span> i <span class="kwrd">in</span> 0..9</pre>
<pre>     puts i</pre>
<pre class="alt"><font color="#0000ff">end</font></pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">文字配列（C#）</td>
<td valign="top" width="391">文字配列（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<pre class="csharpcode"><span class="kwrd">string</span>[] tohokuRokken = { <span class="str">"Aomori"</span>, <span class="str">"Akita"</span>,     <span class="str">"Iwate"</span>, <span class="str">"Miyagi"</span>, <span class="str">"Yamagata"</span>, <span class="str">"Fukushima"</span> };</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<pre class="csharpcode">tohokuRokken = [<span class="str">'Aomori'</span>, <span class="str">'Akita'</span>,      <span class="str">'Iwate'</span>, <span class="str">'Miyagi'</span>, <span class="str">'Yamagata'</span>, <span class="str">'Fukushima'</span>]</pre>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">配列の一つ一つの要素を取り出す（C#）</td>
<td valign="top" width="391">配列の一つ一つの要素を取り出す（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">string</span>[] tohokuRokken = { <span class="str">"Aomori"</span>, <span class="str">"Akita"</span>, </pre>
<pre>    <span class="str">"Iwate"</span>, <span class="str">"Miyagi"</span>, <span class="str">"Yamagata"</span>, <span class="str">"Fukushima"</span> };</pre>
<pre class="alt"><span class="kwrd">foreach</span> (<span class="kwrd">string</span> ken <span class="kwrd">in</span> tohokuRokken)</pre>
<pre>{</pre>
<pre class="alt">    Console.WriteLine(ken);</pre>
<pre>}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt">tohokuRokken = [<span class="str">'Aomori'</span>, <span class="str">'Akita'</span>, \</pre>
<pre>    <span class="str">'Iwate'</span>, <span class="str">'Miyagi'</span>, <span class="str">'Yamagata'</span>, <span class="str">'Fukushima'</span>]</pre>
<pre class="alt">tohokuRokken.each{|ken|</pre>
<pre>    puts ken</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">HashTable（C#）</td>
<td valign="top" width="391">HashTable（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt">Hashtable tohokuRokken = <span class="kwrd">new</span> Hashtable();</pre>
<pre>tohokuRokken.Add(1, <span class="str">"Aomori"</span>);</pre>
<pre class="alt">tohokuRokken.Add(2, <span class="str">"Iwate"</span>);</pre>
<pre>tohokuRokken.Add(3, <span class="str">"Akita"</span>);</pre>
<pre class="alt">tohokuRokken.Add(4, <span class="str">"Miyagi"</span>);</pre>
<pre>tohokuRokken.Add(5, <span class="str">"Yamagata"</span>);</pre>
<pre class="alt">tohokuRokken.Add(6, <span class="str">"Fukushima"</span>);</pre>
<pre>&nbsp;</pre>
<pre class="alt"><span class="kwrd">foreach</span> (<span class="kwrd">object</span> k <span class="kwrd">in</span> tohokuRokken.Keys)</pre>
<pre>{</pre>
<pre class="alt">    Console.WriteLine(k + <span class="str">"="</span> + tohokuRokken[k]);</pre>
<pre>}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt">tohokuRokken = Hash.<span class="kwrd">new</span></pre>
<pre>tohokuRokken[1] = <span class="str">'Aomori'</span></pre>
<pre class="alt">tohokuRokken[2] = <span class="str">'Iwate'</span></pre>
<pre>tohokuRokken[3] = <span class="str">'Akita'</span></pre>
<pre class="alt">tohokuRokken[4] = <span class="str">'Miyagi'</span></pre>
<pre>tohokuRokken[5] = <span class="str">'Yamagata'</span></pre>
<pre class="alt">tohokuRokken[6] = <span class="str">'Fukushima'</span></pre>
<pre>&nbsp;</pre>
<pre class="alt">tohokuRokken.each{|k, Value|</pre>
<pre>    puts k.to_s + <span class="str">'='</span> + Value</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">switch（C#）</td>
<td valign="top" width="391">case（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">int</span> caseSwitch = 1;</pre>
<pre><span class="kwrd">switch</span> (caseSwitch)</pre>
<pre class="alt">{</pre>
<pre>    <span class="kwrd">case</span> 1: </pre>
<pre class="alt">        Console.WriteLine(<span class="str">"Case 1"</span>);</pre>
<pre>        <span class="kwrd">break</span>;</pre>
<pre class="alt">    <span class="kwrd">case</span> 2:</pre>
<pre>        Console.WriteLine(<span class="str">"Case 2"</span>);</pre>
<pre class="alt">        <span class="kwrd">break</span>;</pre>
<pre>    <span class="kwrd">default</span>:</pre>
<pre class="alt">        Console.WriteLine(<span class="str">"Default case"</span>);</pre>
<pre>        <span class="kwrd">break</span>;</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>※<a href="http://msdn2.microsoft.com/en-us/library/06tc147t.aspx" target="_blank">例はMSDNから抜粋。</a></td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt">caseSwitch = 1</pre>
<pre><span class="kwrd">case</span> caseSwitch</pre>
<pre class="alt">    <font color="#0000ff">when</font> 1</pre>
<pre>        puts <span class="str">'Case 1'</span></pre>
<pre class="alt">    <font color="#0000ff">when</font> 2</pre>
<pre>        puts <span class="str">'Case 2'</span></pre>
<pre class="alt">    <span class="kwrd">else</span></pre>
<pre>        puts <span class="str">'Default case'</span></pre>
<pre class="alt"><font color="#0000ff">end</font></pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
<tr>
<td valign="top" width="408">if節（C#）</td>
<td valign="top" width="391">if節（Ruby）</td>
</tr>
<tr>
<td valign="top" width="408">
<div class="csharpcode">
<pre class="alt"><span class="kwrd">int</span> hour = DateTime.Now.Hour;</pre>
<pre><span class="kwrd">if</span> ((hour &gt;= 0) &amp;&amp; (hour &lt;= 3))</pre>
<pre class="alt">{</pre>
<pre>    Console.WriteLine(<span class="str">"Mayonaka"</span>);</pre>
<pre class="alt">}</pre>
<pre><span class="kwrd">else</span> <span class="kwrd">if</span> ((hour &gt;= 4) &amp;&amp; (hour &lt;= 7))</pre>
<pre class="alt">{</pre>
<pre>    Console.WriteLine(<span class="str">"Souchou"</span>);</pre>
<pre class="alt">}</pre>
<pre><span class="kwrd">else</span> <span class="kwrd">if</span> ((hour &gt;= <img src='http://www.devslife.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> &amp;&amp; (hour &lt;= 11))</pre>
<pre class="alt">{</pre>
<pre>    Console.WriteLine(<span class="str">"Ohayou"</span>);</pre>
<pre class="alt">}</pre>
<pre><span class="kwrd">else</span> <span class="kwrd">if</span> ((hour &gt;= 12) &amp;&amp; (hour &lt;= 16))</pre>
<pre class="alt">{</pre>
<pre>    Console.WriteLine(<span class="str">"Ohiru"</span>);</pre>
<pre class="alt">}</pre>
<pre><span class="kwrd">else</span> <span class="kwrd">if</span> ((hour &gt;= 17) &amp;&amp; (hour &lt;= 19))</pre>
<pre class="alt">{</pre>
<pre>    Console.WriteLine(<span class="str">"Obandesu"</span>);</pre>
<pre class="alt">}</pre>
<pre><span class="kwrd">else</span></pre>
<pre class="alt">{</pre>
<pre>    Console.WriteLine(<span class="str">"Yoru"</span>);</pre>
<pre class="alt">}</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
<td valign="top" width="391">
<div class="csharpcode">
<pre class="alt">hour = DateTime.now.strftime(<span class="str">'%H'</span>).to_i</pre>
<pre>&nbsp;</pre>
<pre class="alt"><span class="kwrd">if</span> hour &gt;= 0 <font color="#0000ff">and</font> hour &lt;= 3</pre>
<pre>    puts <span class="str">'Mayonaka'</span></pre>
<pre class="alt"><font color="#0000ff">elsif</font> hour &gt;= 4 <font color="#0000ff">and</font> hour &lt;= 7</pre>
<pre>    puts <span class="str">'Souchou'</span></pre>
<pre class="alt"><font color="#0000ff">elsif</font> hour &gt;= 8 <font color="#0000ff">and</font> hour &lt;= 11</pre>
<pre>    puts <span class="str">'Ohayou'</span></pre>
<pre class="alt"><font color="#0000ff">elsif</font> hour &gt;= 12 <font color="#0000ff">and</font> hour &lt;= 16</pre>
<pre>    puts <span class="str">'Ohiru'</span></pre>
<pre class="alt"><font color="#0000ff">elsif</font> hour &gt;= 17 <font color="#0000ff">and</font> hour &lt;= 19</pre>
<pre>    puts <span class="str">'Obandesu'</span></pre>
<pre class="alt"><span class="kwrd">else</span></pre>
<pre>    puts <span class="str">'Yoru'</span></pre>
<pre class="alt"><font color="#0000ff">end</font></pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>次回はもうちょっと.NET Frameworkに踏み込んだ比較をやる予定。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2007/09/15/ruby%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%92%ef%bc%89net%e3%81%a8%e3%81%ae%e6%af%94%e8%bc%83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rubyプログラミング（１）基本中の基本</title>
		<link>http://www.devslife.com/2007/09/11/ruby%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%91%ef%bc%89%e5%9f%ba%e6%9c%ac%e4%b8%ad%e3%81%ae%e5%9f%ba%e6%9c%ac/</link>
		<comments>http://www.devslife.com/2007/09/11/ruby%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%91%ef%bc%89%e5%9f%ba%e6%9c%ac%e4%b8%ad%e3%81%ae%e5%9f%ba%e6%9c%ac/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 13:15:08 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2007/09/11/ruby%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%91%ef%bc%89%e5%9f%ba%e6%9c%ac%e4%b8%ad%e3%81%ae%e5%9f%ba%e6%9c%ac/</guid>
		<description><![CDATA[Rubyというプログラミング言語はカール・フランクリンさんがやっている.NET Rocksというポッドキャスト番組で3，4年ぐらい前に触れられているのを聞いたのみだった。またスコット・ハンセルマンさんが自身のブログでRu [...] [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ruby-lang.org/ja/" target="_blank">Ruby</a>というプログラミング言語は<a href="http://www.intellectualhedonism.com/" target="_blank">カール・フランクリンさん</a>がやっている<a href="http://www.dotnetrocks.com" target="_blank">.NET Rocks</a>というポッドキャスト番組で3，4年ぐらい前に触れられているのを聞いたのみだった。また<a href="http://www.hanselman.com" target="_blank">スコット・ハンセルマン</a>さんが自身のブログでRubyなどについて書いた記事をさらっと読み流したこともある。なのでRubyというプログラミング言語が存在するというのは知っていたがあえて挑んでみようとは思わなかった。今でも.NETには毎日のように触れているが、何せ三、四年年前というと.NETを一生懸命やっていた時期でもあるので特にあまり気にせず今まで来たのだ。</p>
<p>今年に入って私が所属する会社の製品開発部である議題が持ち上がった。どうすれば開発部からのビルドの品質をより上げられるだろうかという問題が提起されたのだ。自動ビルドシステムはすでに開発してありその一部にユニットテストも組み込んでいる。百以上に及ぶテストが実行されるのであるが、それは中間層以下に対して行われるテストであり、ユーザインタフェースは全くテストされていなかった。開発からビルドが品質管理部によってテストされるとき、まれにウェブアプリにログオンした時に、開発者の単純なミスで始めのページでエラーが起こってしまうという事態が起こることがあった。そこで<a href="http://wtr.rubyforge.org/" target="_blank">Watir</a>というRubyを使って作成されたウェブアプリケーションをテストするフレームワークを使ってみることにした。そこで上司に一週間ほどもらってRuby+Watirのスクリプトを組んでみた。そこで学んだRubyというプログラミング言語について.NET Frameworkと比べながら自分の頭の中を整理する意味で徐々にこのブログで書いていきたいと思う。</p>
<h4>エディタ</h4>
<p><a href="http://ja.wikipedia.org/wiki/Hello_World" target="_blank">Hello World</a>（プログラミング言語を学ぶときに必ずと言っていいほど紹介される例で単に画面上ににHello Worldという文字を表示させる簡単なプログラム）を紹介する前にエディタについて少々書きたいと思う。プログラミングをするには最低でもWindowsについてくるメモ帳が必要だ。もちろんRubyはメモ帳でも編集はできるがはっきり言って味気がないし編集しづらい。昨今では無料のテキストエディタが多く存在するが、私は秀丸派だ。<a href="http://hide.maruo.co.jp/" target="_blank">秀丸</a>はその軽快さと高機能さに感動し、10年ぐらい前まだ日本にいたときライセンスを購入した。あの時は確かバージョンが３ぐらいだっただろうか。今では7になったけど作者はそのまま無料で使わせてくれている。</p>
<p>秀丸のウェブサイトで<a href="http://www.google.co.jp/search?q=lib%2Fhilight+Ruby&amp;hl=ja&amp;domains=hide.maruo.co.jp&amp;sitesearch=hide.maruo.co.jp&amp;ie=Shift_JIS" target="_blank">Ruby用の強調表示用のファイル</a>が何人かの有志の方々によって書かれている。読み込み方は秀丸を開いて適当な文字列を秀丸に書き込んでTekitou.rbというファイルに保存する。そのファイルが開いた状態で秀丸のメニューからその他→ファイルタイプ別の設定を選択。するとウィンドウが出てくるのでそこから<strong>設定のリスト</strong>のボタンをクリックする。設定のリストのウィンドウで<strong>新規</strong>のボタンを押しRubyと入力する。下の画像を参照。</p>
<p><a href="http://www.devslife.com/wp-content/uploads/2007/11/a4bce746-2e71-4905-84bd-74377911413c.png" target="_blank" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="321" alt="image" src="http://www.devslife.com/wp-content/uploads/2007/11/16add845-397e-4b6a-8dd6-4f8ecdb381de.png" width="476" border="0"></a> </p>
<p>設定のリストにRubyを作成したら後はダウンロードした強調表示ファイルをC:\Program Files\Hidemaruのフォルダに解凍して読み込ませるだけである。</p>
<p><a href="http://www.devslife.com/wp-content/uploads/2007/11/5c4390e1-8d51-4971-8005-737f3cbd2503.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="321" alt="image" src="http://www.devslife.com/wp-content/uploads/2007/11/7f6ed208-25b0-49ed-b153-75241b0e3771.png" width="475" border="0"></a> </p>
<p>これでRubyのソースコードが見やすく編集できる。これで秀丸でRubyを編集する準備は完了である。<a href="http://www.ruby-lang.org/ja/downloads/" target="_blank">Rubyそのものをインストール</a>するのを忘れずに。</p>
<h4>Hello World</h4>
<p>お約束どおりHello Worldプログラムを作成することにする。秀丸を開いて次のコードを入力する。puts &#8216;Hello World&#8217;それをHelloWorld.rbとして好きなディレクトリに保存する。自分の環境ではD:\RubyScriptsというディレクトリを作成してそこにHelloWorld.rbを保存する。後はコマンドプロンプトからD:\RubyScriptsにディレクトリを移動して<strong>ruby HelloWorld.rb</strong>と入力すると次のような結果になる。</p>
<p><a href="http://www.devslife.com/wp-content/uploads/2007/11/285bbe5a-f30c-4766-a8ee-09fada6b241c.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="117" alt="image" src="http://www.devslife.com/wp-content/uploads/2007/11/ba819ac0-0767-42f0-a01a-8b1a2d0acf28.png" width="282" border="0"></a></p>
<p>ちなみにこれが動かない場合は<strong>c:\ruby\bin\ruby HelloWorld.rb</strong>と入力するかc:\ruby\binのパスを環境変数のPathに追加することをおすすめする。</p>
<h4>変数</h4>
<p>Rubyでの変数の宣言は極めて単純である。例えばhという変数に&#8217;Hello World&#8217;という値を入れたい場合は単にh = &#8216;Hello World&#8217;とするだけである。そこで、前のHello Worldのプログラムを変数を用いて書き換えてみると。</p>
<p>h = &#8216;Hello World&#8217;<br />puts h</p>
<p>上のコードを実行してみると結果はputs &#8216;Hello World&#8217;と全く同じになる。h = &#8216;Hello Japan&#8217;と変えるとhの変数に入る値も変わるために表示される結果も変わる。</p>
<h4>関数</h4>
<p>関数を宣言するにはdefというキーワードを使う。例として二つの数字の積を返す極めて単純な例を下に書くことにする。</p>
<div class="csharpcode">
<pre class="alt">def Seki(a, b)</pre>
<pre>    <span class="kwrd">return</span> a * b</pre>
<pre class="alt">end</pre>
<pre>&nbsp;</pre>
<pre class="alt">kekka = Seki(7, <img src='http://www.devslife.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </pre>
<pre>puts kekka</pre>
</div>
<style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<p>&nbsp;</p>
<p>上のコードを日本語で説明するとSekiという関数はaとbという引数をとり、その関数はaとbを掛けた値を返す。kekka = Seki(7, 8)の行でSekiの関数を呼び出し、7と8をその関数に渡す。Sekiは値を返すので返された値をkekkaという変数に格納する。そしてその次の行でその変数の値をputsで出力する。コードを実行すると下の画像のようになる。</p>
<p><a href="http://www.devslife.com/wp-content/uploads/2007/11/937ccfeb-62a1-4aa6-809b-8107226e3cd7.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="88" alt="image" src="http://www.devslife.com/wp-content/uploads/2007/11/ae79b18c-16f9-479e-8d8f-80e4307b0bc4.png" width="282" border="0"></a> </p>
<h4>まとめ</h4>
<p>基本中の基本ということで実際の現場では全く役に立つことのない例ばかりだが、とりあえずこれがなくてはということを抑えておこうと思った。Rubyはスクリプト言語なので関数を宣言できればいいかと思えるが、実はRubyは完全なオブジェクト指向言語である。スクリプト言語でこんなことまでできるの？っていうこともたくさんある。マルチスレッドだってできてしまうのだ。生産性やモダンさから言うとVBScriptには勝っていると思う。MicrosoftもIronRubyとして.NET Frameworkにおいてサポートすると表明しているので将来性のある言語でもある。</p>
<p>次回からは.NET Frameworkとの比較をしてみたいと思う。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2007/09/11/ruby%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%91%ef%bc%89%e5%9f%ba%e6%9c%ac%e4%b8%ad%e3%81%ae%e5%9f%ba%e6%9c%ac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DateTime.Now.ToString()をRubyで</title>
		<link>http://www.devslife.com/2007/09/06/datetimenowtostring%e3%82%92ruby%e3%81%a7/</link>
		<comments>http://www.devslife.com/2007/09/06/datetimenowtostring%e3%82%92ruby%e3%81%a7/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 07:57:03 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2007/09/06/datetimenowtostring%e3%82%92ruby%e3%81%a7/</guid>
		<description><![CDATA[DateTime.Now.ToString()をRubyで表すと・・・
DateTime.now.strftime(&#8216;%m/%d/%Y %H:%M:%S&#8217;)
別にstrftimeがなくてもできるけ [...] [...]]]></description>
			<content:encoded><![CDATA[<p><P>DateTime.Now.ToString()をRubyで表すと・・・</P><br />
<P>DateTime.now.strftime(&#8216;%m/%d/%Y %H:%M:%S&#8217;)</P><br />
<P>別にstrftimeがなくてもできるけど一応自分の見たい形式にしたかったもので。</P><br />
<P>余談だけどRubyってすごいな。マイクロソフトもIronRubyっていう形でサポートするって言っているし、Rubyで.NETアプリの日も近いだろう。っていうかSilverlightではサポートされているはず。</P></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2007/09/06/datetimenowtostring%e3%82%92ruby%e3%81%a7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RubyでXMLファイルを変更して保存する</title>
		<link>http://www.devslife.com/2007/09/05/ruby%e3%81%a7xml%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%97%e3%81%a6%e4%bf%9d%e5%ad%98%e3%81%99%e3%82%8b/</link>
		<comments>http://www.devslife.com/2007/09/05/ruby%e3%81%a7xml%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%97%e3%81%a6%e4%bf%9d%e5%ad%98%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 08:26:31 +0000</pubDate>
		<dc:creator>入海</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://www.devslife.com/2007/09/05/ruby%e3%81%a7xml%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%97%e3%81%a6%e4%bf%9d%e5%ad%98%e3%81%99%e3%82%8b/</guid>
		<description><![CDATA[１時間ぐらい格闘したので参考までにメモ。
require &#8216;rexml/document&#8217;include REXML
&#160;
#読み込み
strXml = &#8216;C:\\Docume [...] [...]]]></description>
			<content:encoded><![CDATA[<p>１時間ぐらい格闘したので参考までにメモ。</p>
<p>require &#8216;rexml/document&#8217;<br />include REXML
<p>&nbsp;
<p>#読み込み
<p>strXml = &#8216;C:\\Documents and Settings\\Hayato\\Desktop\\Test.xml&#8217;<br />xmlFile = File.new(strXml, &#8216;r&#8217;)<br />doc = Document.new(xmlFile)
<p>&nbsp;
<p>#あるノードの文字列をいじる。
<p>doc.root.each_element(&#8216;//ApplicationConfig/SourceRootFolder&#8217;) {|node|<br />&nbsp;&nbsp;&nbsp; node.text = &#8216;Changed&#8217;<br />}
<p>&nbsp;
<p>#ここで元のファイルを閉じる。
<p>xmlFile.close
<p>&nbsp;
<p>#同じファイルを開くが上書きするためにオプションをw（書き込み）で読み出す。この時点でファイルのバッファは０になる。
<p>newFile = File.new(strXml, &#8216;w&#8217;)</p>
<p>#いじったXMLをファイルに書き込む。<br />doc.write(newFile)<br />newFile.close</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devslife.com/2007/09/05/ruby%e3%81%a7xml%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%97%e3%81%a6%e4%bf%9d%e5%ad%98%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
