<?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>DigiTechLog Dot Com &#187; Groovy</title>
	<atom:link href="http://digitechlog.com/category/programming/groovy/feed" rel="self" type="application/rss+xml" />
	<link>http://digitechlog.com</link>
	<description>Adobe AIR、Flex、Flash、Java</description>
	<lastBuildDate>Tue, 08 Nov 2011 12:46:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Groovyでプログラムソースコード行数の計算をすっごく簡単で実現する</title>
		<link>http://digitechlog.com/2008/12/04/how-to-count-lines-of-code-with-short-program-in-groovy.html</link>
		<comments>http://digitechlog.com/2008/12/04/how-to-count-lines-of-code-with-short-program-in-groovy.html#comments</comments>
		<pubDate>Thu, 04 Dec 2008 12:40:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[ツール]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2008/12/04/how-to-count-lines-of-code-with-short-program-in-groovy.html</guid>
		<description><![CDATA[開発者に対して、自分は何行ぐらいソースを書くのは、気になってるはずです。Googleで検索するとそのようなツールも多いと思います。
 開発者として、自分のソース行数計算ツールを作ってほしいですね。Groovyだったらすごっく簡単の何行ソースで実現できます。
※Groovyとは、Java言語の実行環境であるJava仮想マシン(JVM)上で動作するスクリプト言語である。Java言語とほぼ同じで、スクリプト言語として使いやすいよういくつかの拡張が行なわれている。
変数の型宣言の省略と動的な型付け、メソッド呼び出しの括弧や行末のセミコロンの省略、リストやマップを宣言時に初期化するための特殊な構文、正規表現のための構文、クロージャなどである。
  
以下は実現のGroovyのソースです。
#!/usr/bin/env groovy
&#160;
def&#160;funcName = (args.length &#62; 0 &#38;&#38; args[0] == &#34;/s&#34;) ? &#34;eachFileRecurse&#34; : &#34;eachFile&#34;
def&#160;lineCount = 0&#160;
&#160;
new&#160;File(&#34;.&#34;).&#34;$funcName&#34; { f -&#62;
&#160; &#160; if&#160;(f.isFile()) {
&#160; &#160; &#160; &#160; f.eachLine&#160;{ lineCount ++ }
&#160; &#160; }
}
&#160;
println&#160;lineCount
ここは使用例：
raptor@raptor-laptop:~/foo$ cat countLines.cs &#124; tr -s &#34; &#34; &#34; &#34; &#124; wc
17 31 343
raptor@raptor-laptop:~/foo$ cat countLines.groovy &#124; tr -s &#34; &#34; &#34; [...]]]></description>
			<content:encoded><![CDATA[<p>開発者に対して、自分は何行ぐらいソースを書くのは、気になってるはずです。Googleで検索するとそのようなツールも多いと思います。</p>
<p> 開発者として、自分のソース行数計算ツールを作ってほしいですね。Groovyだったらすごっく簡単の何行ソースで実現できます。</p>
<p>※Groovyとは、Java言語の実行環境であるJava仮想マシン(JVM)上で動作するスクリプト言語である。Java言語とほぼ同じで、スクリプト言語として使いやすいよういくつかの拡張が行なわれている。</p>
<p>変数の型宣言の省略と動的な型付け、メソッド呼び出しの括弧や行末のセミコロンの省略、リストやマップを宣言時に初期化するための特殊な構文、正規表現のための構文、クロージャなどである。</p>
<p><span id="more-183"></span>  </p>
<p>以下は実現のGroovyのソースです。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Navy;">#!/usr/bin/env groovy</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">funcName</span><span style="color: Gray;"> = </span><span style="color: Olive;">(</span><span style="color: Blue;">args</span><span style="color: Gray;">.</span><span style="color: Green;">length</span><span style="color: Gray;"> &gt; </span><span style="color: Maroon;">0</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: Blue;">args</span><span style="color: Olive;">[</span><span style="color: Maroon;">0</span><span style="color: Olive;">]</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/s</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;"> ? </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">eachFileRecurse</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> : </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">eachFile</span><span style="color: #8b0000;">&quot;</span></li>
<li><span style="color: Blue;">def</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lineCount</span><span style="color: Gray;"> = </span><span style="color: Maroon;">0</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">File</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$funcName</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"> </span><span style="color: Blue;">f</span><span style="color: Gray;"> -&gt;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">isFile</span><span style="color: Olive;">())</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">f</span><span style="color: Gray;">.</span><span style="color: Blue;">eachLine</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span><span style="color: Gray;"> </span><span style="color: Blue;">lineCount</span><span style="color: Gray;"> ++ </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">println</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">lineCount</span></li></ol></div>
<p>ここは使用例：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Gray;">raptor@raptor-laptop:~/foo$ cat countLines.cs | tr -s &quot; &quot; &quot; &quot; | wc</span></li>
<li><span style="color: Gray;">17 31 343</span></li>
<li><span style="color: Gray;">raptor@raptor-laptop:~/foo$ cat countLines.groovy | tr -s &quot; &quot; &quot; &quot; | wc</span></li>
<li><span style="color: Gray;">13 37 235</span></li>
<li><span style="color: Gray;">raptor@raptor-laptop:~/foo$</span></li></ol></div>
<p>簡単でしょう。</p>
<p>URLリソース：</p>
<p><a title="http://freeopenidea.blogspot.com/2008/12/short-program-to-count-lines-of-code.html" href="http://freeopenidea.blogspot.com/2008/12/short-program-to-count-lines-of-code.html">http://freeopenidea.blogspot.com/2008/12/short-program-to-count-lines-of-code.html</a></p>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/10/24/luminicbox-log-logging-api-and-output-console-for-actionscript.html" title="LuminicBox.Log: ActionScript Debbug用コンソールツール">LuminicBox.Log: ActionScript Debbug用コンソールツール</a></li>
<li><a href="http://digitechlog.com/2009/10/15/alcon-a-lightweight-debugging-tool-for-actionscript-developers.html" title="Alcon: オープンソースのActionScript向けの軽量デバッギングツール">Alcon: オープンソースのActionScript向けの軽量デバッギングツール</a></li>
<li><a href="http://digitechlog.com/2009/08/23/granite-data-services-free-lgpl-alternative-to-adobe-livecycle-data-services-for-j2ee-servers.html" title="Granite Data Services: オープンソースプロジェクトによって開発されたデータサービス">Granite Data Services: オープンソースプロジェクトによって開発されたデータサービス</a></li>
<li><a href="http://digitechlog.com/2009/08/16/flosc-flash-opensound-control-java-server-enabling-communication-between-flash-and-osc.html" title="Flosc(Flash OpenSound Control): flashと他のプラットフォーム同士でデータを送受信するJavaサーバー">Flosc(Flash OpenSound Control): flashと他のプラットフォーム同士でデータを送受信するJavaサーバー</a></li>
<li><a href="http://digitechlog.com/2009/08/05/jags-open-source-java-actionscript-game-server.html" title="JAGS Game Server: JavaとAS3でオープンソースのゲームサーバ">JAGS Game Server: JavaとAS3でオープンソースのゲームサーバ</a></li>
<li><a href="http://digitechlog.com/2009/07/10/openamf-free-open-source-alternative-to-adobe-java-flash-remoting.html" title="OpenAMF: オープンソースのJava Flashリモートツール">OpenAMF: オープンソースのJava Flashリモートツール</a></li>
<li><a href="http://digitechlog.com/2009/06/22/silex-an-open-source-cms-ria-software-build-flash-websites.html" title="SILEX: WYSIWYGでFlashサイトを構築できるオープンソースのRIA開発ツール">SILEX: WYSIWYGでFlashサイトを構築できるオープンソースのRIA開発ツール</a></li>
<li><a href="http://digitechlog.com/2009/05/15/a-useful-java-class-for-export-data-into-excel-with-jakarta-poi-hssfworkbook.html" title="Javaでデータをエクセルにエクスポートするクラスと使用例">Javaでデータをエクセルにエクスポートするクラスと使用例</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2008/12/04/how-to-count-lines-of-code-with-short-program-in-groovy.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

