<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>aruy.net &#187; ruby</title>
	<atom:link href="http://aruy.net/archives/category/ruby/feed" rel="self" type="application/rss+xml" />
	<link>http://aruy.net</link>
	<description>ちゃんとプログラムが書けるようになりたい。</description>
	<lastBuildDate>Tue, 15 Nov 2011 15:00:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aruy.net/archives/category/ruby/feed" />
		<item>
		<title>id3lib-rubyをSnow Leopardにインストール</title>
		<link>http://aruy.net/archives/484</link>
		<comments>http://aruy.net/archives/484#comments</comments>
		<pubDate>Sat, 10 Apr 2010 13:51:34 +0000</pubDate>
		<dc:creator>aruy</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://aruy.net/?p=484</guid>
		<description><![CDATA[id3lib-rubyをSnowLeopardにインストールしようと思ったんだけど、gemに怒られるばかりでインストールできない。でググったら以下のページに解決方法が書いてありました。 Installing id3lib [...]<p><a href="http://aruy.net/archives/484">id3lib-rubyをSnow Leopardにインストール</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></description>
			<content:encoded><![CDATA[<p>id3lib-rubyをSnowLeopardにインストールしようと思ったんだけど、gemに怒られるばかりでインストールできない。でググったら以下のページに解決方法が書いてありました。</p>
<p><a href="http://prowestech.com/blog/2009-10-29-installing-id3lib-ruby-on-os-x-snow-leopard" class="broken_link">Installing id3lib-ruby on OS X Snow Leopard</a></p>
<p>インストール時にオプション指定しないと上手くインストールできないらしい。</p>
<blockquote><p>sudo env ARCHFLAGS=&#8221;-arch x86_64&#8243; gem install id3lib-ruby &#8212; &#8211;with-opt-dir=/opt/local
</p></blockquote>
<p><a href="http://aruy.net/archives/484">id3lib-rubyをSnow Leopardにインストール</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aruy.net/archives/484/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aruy.net/archives/484" />
	</item>
		<item>
		<title>Redmineのガントチャートに日付を出したい。</title>
		<link>http://aruy.net/archives/414</link>
		<comments>http://aruy.net/archives/414#comments</comments>
		<pubDate>Thu, 06 Aug 2009 04:29:44 +0000</pubDate>
		<dc:creator>aruy</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[redmine]]></category>

		<guid isPermaLink="false">http://aruy.net/?p=414</guid>
		<description><![CDATA[プロジェクト管理にRedmineを導入してみました。状況を報告する為にガントチャートをPDF出力してみたのですが、時間の単位が日付ではなく週で表示されるのでちょっと不評でした。。。 自分としてはそんなもんかなぁと気になら [...]<p><a href="http://aruy.net/archives/414">Redmineのガントチャートに日付を出したい。</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></description>
			<content:encoded><![CDATA[<p>プロジェクト管理にRedmineを導入してみました。状況を報告する為にガントチャートをPDF出力してみたのですが、時間の単位が日付ではなく週で表示されるのでちょっと不評でした。。。</p>
<p>自分としてはそんなもんかなぁと気にならなかったのですが、同僚が<a href="http://labo-ss.net/blog/?itemid=46&#038;catid=2">Redmineのガントチャートに日付の表示を追加</a>を見つけてきてくれたので、ブラウザでの閲覧時には日付を表示出来るように対応してみました。</p>
<p>やったことは参照先のまんまなんではしょりますが、ブラウザで日付で見れるとなると今度はPDFには反映されないの？ってことになります。 </p>
<p>PDFの生成をどこでやっているのかわからないので、ムリです。って答えていたのですが色々調べているウチに/lib/redmine/export/pdf.rbでPDFを生成していそうって事がわかったので実験してみたところ日付が出るようになりました。</p>
<p>rubyがちゃんとわかっているわけではないので、ブラウザに対応した時の対応の真似事をしただけなのですが備忘録として書いておきます。(#addが追加した部分です。)</p>
<p>300行あたり</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">if</span> gantt.<span style="color:#9900CC;">months</span> <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#006666;">7</span>
  show_weeks = <span style="color:#0000FF; font-weight:bold;">true</span>
  headers_heigth = <span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">*</span>header_heigth
  <span style="color:#9966CC; font-weight:bold;">if</span> gantt.<span style="color:#9900CC;">months</span> <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#006666;">3</span>
    show_days = <span style="color:#0000FF; font-weight:bold;">true</span>
<span style="color:#008000; font-style:italic;">#   headers_heigth = 3*header_heigth</span>
    headers_heigth = <span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">*</span>header_heigth <span style="color:#008000; font-style:italic;">#add</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
g_width = <span style="color:#006666;">210</span>
zoom = <span style="color:#006600; font-weight:bold;">&#40;</span>g_width<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">/</span> <span style="color:#006600; font-weight:bold;">&#40;</span>gantt.<span style="color:#9900CC;">date_to</span> <span style="color:#006600; font-weight:bold;">-</span> gantt.<span style="color:#9900CC;">date_from</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>
g_height = <span style="color:#006666;">120</span>
t_height = g_height <span style="color:#006600; font-weight:bold;">+</span> headers_heigth
&nbsp;
y_start = pdf.<span style="color:#9900CC;">GetY</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Months headers</span>
month_f = gantt.<span style="color:#9900CC;">date_from</span>
left = subject_width
height = header_heigth
gantt.<span style="color:#9900CC;">months</span>.<span style="color:#9900CC;">times</span> <span style="color:#9966CC; font-weight:bold;">do</span> 
  width = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#40;</span>month_f <span style="color:#006600; font-weight:bold;">&gt;&gt;</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">-</span> month_f<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">*</span> zoom 
  pdf.<span style="color:#9900CC;">SetY</span><span style="color:#006600; font-weight:bold;">&#40;</span>y_start<span style="color:#006600; font-weight:bold;">&#41;</span>
  pdf.<span style="color:#9900CC;">SetX</span><span style="color:#006600; font-weight:bold;">&#40;</span>left<span style="color:#006600; font-weight:bold;">&#41;</span>
  pdf.<span style="color:#9900CC;">Cell</span><span style="color:#006600; font-weight:bold;">&#40;</span>width, height, <span style="color:#996600;">&quot;#{month_f.year}-#{month_f.month}&quot;</span>, <span style="color:#996600;">&quot;LTR&quot;</span>, <span style="color:#006666;">0</span>, <span style="color:#996600;">&quot;C&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  left = left <span style="color:#006600; font-weight:bold;">+</span> width
  month_f = month_f <span style="color:#006600; font-weight:bold;">&gt;&gt;</span> <span style="color:#006666;">1</span>
<span style="color:#9966CC; font-weight:bold;">end</span>  
&nbsp;
<span style="color:#008000; font-style:italic;"># Weeks headers</span>
<span style="color:#9966CC; font-weight:bold;">if</span> show_weeks
  left = subject_width
  height = header_heigth
  <span style="color:#9966CC; font-weight:bold;">if</span> gantt.<span style="color:#9900CC;">date_from</span>.<span style="color:#9900CC;">cwday</span> == <span style="color:#006666;">1</span>
    <span style="color:#008000; font-style:italic;"># gantt.date_from is monday</span>
    week_f = gantt.<span style="color:#9900CC;">date_from</span>
  <span style="color:#9966CC; font-weight:bold;">else</span>
    <span style="color:#008000; font-style:italic;"># find next monday after gantt.date_from</span>
    week_f = gantt.<span style="color:#9900CC;">date_from</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">7</span> <span style="color:#006600; font-weight:bold;">-</span> gantt.<span style="color:#9900CC;">date_from</span>.<span style="color:#9900CC;">cwday</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    width = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">7</span> <span style="color:#006600; font-weight:bold;">-</span> gantt.<span style="color:#9900CC;">date_from</span>.<span style="color:#9900CC;">cwday</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">*</span> zoom<span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">1</span>
    pdf.<span style="color:#9900CC;">SetY</span><span style="color:#006600; font-weight:bold;">&#40;</span>y_start <span style="color:#006600; font-weight:bold;">+</span> header_heigth<span style="color:#006600; font-weight:bold;">&#41;</span>
    pdf.<span style="color:#9900CC;">SetX</span><span style="color:#006600; font-weight:bold;">&#40;</span>left<span style="color:#006600; font-weight:bold;">&#41;</span>
    pdf.<span style="color:#9900CC;">Cell</span><span style="color:#006600; font-weight:bold;">&#40;</span>width <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span>, height, <span style="color:#996600;">&quot;&quot;</span>, <span style="color:#996600;">&quot;LTR&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    left = left <span style="color:#006600; font-weight:bold;">+</span> width<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006666;">1</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">while</span> week_f <span style="color:#006600; font-weight:bold;">&lt;</span>= gantt.<span style="color:#9900CC;">date_to</span>
    width = <span style="color:#006600; font-weight:bold;">&#40;</span>week_f <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">6</span> <span style="color:#006600; font-weight:bold;">&lt;</span>= gantt.<span style="color:#9900CC;">date_to</span><span style="color:#006600; font-weight:bold;">&#41;</span> ? <span style="color:#006666;">7</span> <span style="color:#006600; font-weight:bold;">*</span> zoom : <span style="color:#006600; font-weight:bold;">&#40;</span>gantt.<span style="color:#9900CC;">date_to</span> <span style="color:#006600; font-weight:bold;">-</span> week_f <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">*</span> zoom
    pdf.<span style="color:#9900CC;">SetY</span><span style="color:#006600; font-weight:bold;">&#40;</span>y_start <span style="color:#006600; font-weight:bold;">+</span> header_heigth<span style="color:#006600; font-weight:bold;">&#41;</span>
    pdf.<span style="color:#9900CC;">SetX</span><span style="color:#006600; font-weight:bold;">&#40;</span>left<span style="color:#006600; font-weight:bold;">&#41;</span>
    pdf.<span style="color:#9900CC;">Cell</span><span style="color:#006600; font-weight:bold;">&#40;</span>width, height, <span style="color:#006600; font-weight:bold;">&#40;</span>width <span style="color:#006600; font-weight:bold;">&gt;</span>= <span style="color:#006666;">5</span> ? week_f.<span style="color:#9900CC;">cweek</span>.<span style="color:#9900CC;">to_s</span> : <span style="color:#996600;">&quot;&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>, <span style="color:#996600;">&quot;LTR&quot;</span>, <span style="color:#006666;">0</span>, <span style="color:#996600;">&quot;C&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    left = left <span style="color:#006600; font-weight:bold;">+</span> width
    week_f = week_f<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006666;">7</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Days headers</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">if</span> show_days
  left = subject_width
  height = header_heigth
  wday = gantt.<span style="color:#9900CC;">date_from</span>.<span style="color:#9900CC;">cwday</span> 
  day_num = gantt.<span style="color:#9900CC;">date_from</span> <span style="color:#008000; font-style:italic;">#add</span>
  pdf.<span style="color:#9900CC;">SetFontStyle</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'B'</span>,<span style="color:#006666;">7</span><span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#006600; font-weight:bold;">&#40;</span>gantt.<span style="color:#9900CC;">date_to</span> <span style="color:#006600; font-weight:bold;">-</span> gantt.<span style="color:#9900CC;">date_from</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">to_i</span>.<span style="color:#9900CC;">times</span> <span style="color:#9966CC; font-weight:bold;">do</span> 
    width = zoom
    pdf.<span style="color:#9900CC;">SetY</span><span style="color:#006600; font-weight:bold;">&#40;</span>y_start <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">2</span> <span style="color:#006600; font-weight:bold;">*</span> header_heigth<span style="color:#006600; font-weight:bold;">&#41;</span>
    pdf.<span style="color:#9900CC;">SetX</span><span style="color:#006600; font-weight:bold;">&#40;</span>left<span style="color:#006600; font-weight:bold;">&#41;</span>
    pdf.<span style="color:#9900CC;">Cell</span><span style="color:#006600; font-weight:bold;">&#40;</span>width, height, day_name<span style="color:#006600; font-weight:bold;">&#40;</span>wday<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">first</span>, <span style="color:#996600;">&quot;LTR&quot;</span>, <span style="color:#006666;">0</span>, <span style="color:#996600;">&quot;C&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#008000; font-style:italic;"># add ここから</span>
    pdf.<span style="color:#9900CC;">SetY</span><span style="color:#006600; font-weight:bold;">&#40;</span>y_start <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">3</span> <span style="color:#006600; font-weight:bold;">*</span> header_heigth<span style="color:#006600; font-weight:bold;">&#41;</span>
    pdf.<span style="color:#9900CC;">SetX</span><span style="color:#006600; font-weight:bold;">&#40;</span>left<span style="color:#006600; font-weight:bold;">&#41;</span>
    pdf.<span style="color:#9900CC;">Cell</span><span style="color:#006600; font-weight:bold;">&#40;</span>width, height, day_num.<span style="color:#9900CC;">day</span>.<span style="color:#9900CC;">to_s</span>, <span style="color:#996600;">&quot;LTR&quot;</span>, <span style="color:#006666;">0</span>, <span style="color:#996600;">&quot;C&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    day_num = day_num <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span>
　  <span style="color:#008000; font-style:italic;"># ここまで   </span>
    left = left <span style="color:#006600; font-weight:bold;">+</span> width
    wday = wday <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">1</span>
    wday = <span style="color:#006666;">1</span> <span style="color:#9966CC; font-weight:bold;">if</span> wday <span style="color:#006600; font-weight:bold;">&gt;</span> <span style="color:#006666;">7</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><a href="http://aruy.net/archives/414">Redmineのガントチャートに日付を出したい。</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aruy.net/archives/414/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aruy.net/archives/414" />
	</item>
		<item>
		<title>RMagick勉強中</title>
		<link>http://aruy.net/archives/230</link>
		<comments>http://aruy.net/archives/230#comments</comments>
		<pubDate>Fri, 27 Mar 2009 15:59:12 +0000</pubDate>
		<dc:creator>aruy</dc:creator>
				<category><![CDATA[mac]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://aruy.net/?p=230</guid>
		<description><![CDATA[Uploaded with plasq&#8216;s Skitch! 発想が貧素で何すれば面白いか思いつかないので、面白しろい事をしてる同僚の記事を真似つつRMagickを勉強してみることにしました。 参考にしたのはこ [...]<p><a href="http://aruy.net/archives/230">RMagick勉強中</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></description>
			<content:encoded><![CDATA[<div class="thumbnail"><a href="http://skitch.com/aruy/bjwgt/imagemagick"><img src="http://img.skitch.com/20090327-xp6bmagww5wjmybjuw1bc5kc7h.preview.jpg" alt="ImageMagick:" /></a><br /><span style="font-family: Lucida Grande, Trebuchet, sans-serif, Helvetica, Arial; font-size: 10px; color: #808080">Uploaded with <a href="http://plasq.com/">plasq</a>&#8216;s <a href="http://skitch.com">Skitch</a>!</span></div>
<p>発想が貧素で何すれば面白いか思いつかないので、<a href="http://mojalog.com/2009/03/python_photomess.html">面白しろい事をしてる同僚</a>の記事を真似つつRMagickを勉強してみることにしました。</p>
<p>参考にしたのは<a href="http://d.hatena.ne.jp/zrsv/20080823/1219666119">こちら</a>の記事と公式の<a href="http://studio.imagemagick.org/RMagick/doc/">リファレンス</a></p>
<p>まずはじめに、イメージの作成</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'RMagick'</span>
<span style="color:#9966CC; font-weight:bold;">include</span> Magick
pict = Image.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">200</span>,<span style="color:#006666;">200</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">background_color</span> = <span style="color:#996600;">&quot;white&quot;</span><span style="color:#006600; font-weight:bold;">&#125;</span>
pict.<span style="color:#9900CC;">display</span>
<span style="color:#CC0066; font-weight:bold;">exit</span></pre></div></div>

<p>Image.newでイメージを作成して、displayで表示しています。<br />
XServerが入っていない環境では、displayメソッドは使えないみたいです。</p>
<p>また、displayメソッドはとっても便利なのですが、macの<a href="http://pub.ne.jp/tokuhama/?cat_id=73788">RMagickに問題があるらしく</a>ImageMagickのバージョンによって上手く表示されないそうで、実際Rotateメソッドを使って回転したオブジェクトをdisplayしたら、うちの環境では点滅表示されてしまいました。</p>
<p>次は、ファイルの表示。ほとんど新規作成と同じです。</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">mu = Image.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;mu.jpg&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
mu.<span style="color:#9900CC;">display</span>
<span style="color:#CC0066; font-weight:bold;">exit</span></pre></div></div>

<p>そして回転</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">mu.<span style="color:#9900CC;">rotate</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">10</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">display</span>
<span style="color:#CC0066; font-weight:bold;">exit</span></pre></div></div>

<p>ここで、displayが点滅しまくってしまったので、ファイル保存することに。</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">mu.<span style="color:#9900CC;">rotate</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">10</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">write</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;mu10.jpg&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>とりあえず回転までできました。<br />
<img src="http://aruy.net/wp-content/uploads/2009/03/mu10.jpg" alt="mu10" title="mu10" width="229" height="188" class="alignnone size-full wp-image-239" /></p>
<p>今日はここまで。</p>
<p><a href="http://aruy.net/archives/230">RMagick勉強中</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aruy.net/archives/230/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aruy.net/archives/230" />
	</item>
		<item>
		<title>RMagickをインストールした。</title>
		<link>http://aruy.net/archives/221</link>
		<comments>http://aruy.net/archives/221#comments</comments>
		<pubDate>Fri, 27 Mar 2009 02:17:46 +0000</pubDate>
		<dc:creator>aruy</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://aruy.net/?p=221</guid>
		<description><![CDATA[同僚がPythonのPILで遊んでいて楽しそうだったので、 Rubyでも画像処理したい！と思いRmagickをインストールしてみました。 macでは、以下のコマンドでサクっとインストール $ sudo port inst [...]<p><a href="http://aruy.net/archives/221">RMagickをインストールした。</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://mojalog.com/2009/03/python_pilhowto.html">同僚がPythonのPILで遊んでいて楽しそう</a>だったので、<br />
Rubyでも画像処理したい！と思いRmagickをインストールしてみました。</p>
<p>macでは、以下のコマンドでサクっとインストール</p>
<blockquote><p>
$ sudo port install ImageMagick<br />
$ sudo gem install RMagick
</p></blockquote>
<p>適当な画像をリサイズし動作確認</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'RMagick'</span>
&nbsp;
cat = <span style="color:#6666ff; font-weight:bold;">Magick::ImageList</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'ho.jpg'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
cat.<span style="color:#9900CC;">resize</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">0.1</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">display</span>
<span style="color:#CC0066; font-weight:bold;">exit</span></pre></div></div>

<p>リサイズされた画像が表示されました。</p>
<p>で、つまづいたのがWindows<br />
とりあえず、ImageMagickをインストールと思い<a href="http://www.imagemagick.org/script/index.php">http://www.imagemagick.org/script/index.php</a>より最新版をダウンロードしインストール。<br />
続いてRmagick。<a href="http://rubyforge.org/frs/?group_id=12&#038;release_id=30561">RubyForge</a>よりrmagick-2.9.0-doc.tar.gzwをダウンロード、一向に落ちてこない。<br />
しょうがないので、「<a href="http://www.google.co.jp/search?hl=ja&#038;client=firefox-a&#038;rls=org.mozilla%3Aja%3Aofficial&#038;hs=Y2g&#038;q=RMagick-2.9.0-ImageMagick-6.4.8-6-Q8.zip%E3%80%80mirror&#038;btnG=%E6%A4%9C%E7%B4%A2&#038;lr=lang_ja">RMagick-2.9.0-ImageMagick-6.4.8-6-Q8.zip　mirror</a>」でググったミラーからダウンロード</p>
<p>どうやらWindows版のRMagickはImageMagickのバージョンの整合がシビアらしくImageMagickが同梱されいた為、先にインストールしたImageMagickをアンインストール。ついてきたImageMagick-6.4.8-6-Q8-windows-dll.exeを実行<br />
インストールできたら、以下のコマンドでrmagickをインストール</p>
<blockquote><p>
gem install rmagick-2.9.0-x86-mswin32.gem
</p></blockquote>
<p>これで、準備完了と思いmacと同じスクリプトを実行してみたのですが、なんかエラー</p>
<blockquote><p>プロシージャエントリポイントtransparentPaintImageChroma がダイナミックリンクライブラリ　CORE_RL_Magick_.dllから見つかりませんでした</p></blockquote>
<p>ImageMagickが見えないのかな？とPATHを確認したりしてみたのですが問題なさそう。<br />
（今考えると、DLLから・・・ってことだからDLLは見えてるわけでとんだお門違いですね。）</p>
<p>手詰まったのでGoogle先生に聞いてみたら、<a href="http://blog.livedoor.jp/maru_tak/archives/50666630.html">こちら</a>にそのままズバリの記事を発見。<br />
RMagickがVC++ 2008 でコンパイルされていることが問題とのことなので、<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&#038;displaylang=en">Microsoft Visual C++ 2008 Redistributable Package (x86)</a>をインストール<br />
無事、動作確認ができました。</p>
<p>さて、これからがなにするかが問題だ。</p>
<p><a href="http://aruy.net/archives/221">RMagickをインストールした。</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aruy.net/archives/221/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aruy.net/archives/221" />
	</item>
		<item>
		<title>Notes/Ruby フィールドリスト作成</title>
		<link>http://aruy.net/archives/149</link>
		<comments>http://aruy.net/archives/149#comments</comments>
		<pubDate>Tue, 13 Jan 2009 10:46:19 +0000</pubDate>
		<dc:creator>aruy</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[ノーツ]]></category>
		<category><![CDATA[Notes]]></category>

		<guid isPermaLink="false">http://aruy.net/?p=149</guid>
		<description><![CDATA[NotesDBのフィールドリストが必要になったので 簡単にRubyで書きました。 たいした内容じゃないので公開する必要なんてないんだけど 以前も書いたのですが、どっかにいっちゃって困ったのでなくさないようにメモ #!ru [...]<p><a href="http://aruy.net/archives/149">Notes/Ruby フィールドリスト作成</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></description>
			<content:encoded><![CDATA[<p>NotesDBのフィールドリストが必要になったので<br />
簡単にRubyで書きました。</p>
<p>たいした内容じゃないので公開する必要なんてないんだけど<br />
以前も書いたのですが、どっかにいっちゃって困ったのでなくさないようにメモ</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!ruby -Ks</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'win32ole'</span>
ns = WIN32OLE.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'Notes.NotesSession'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
sv = <span style="color:#CC0066; font-weight:bold;">gets</span>.<span style="color:#CC0066; font-weight:bold;">chomp</span>
fn = <span style="color:#CC0066; font-weight:bold;">gets</span>.<span style="color:#CC0066; font-weight:bold;">chomp</span>
&nbsp;
db = ns.<span style="color:#9900CC;">GetDatabase</span><span style="color:#006600; font-weight:bold;">&#40;</span>sv, fn<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
title = db.<span style="color:#9900CC;">Title</span>
<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;DBTitle:#{title}&quot;</span>
&nbsp;
forms = db.<span style="color:#9900CC;">Forms</span>
&nbsp;
forms.<span style="color:#9900CC;">each</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>form<span style="color:#006600; font-weight:bold;">|</span>
  <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;FormTitle:#{form.name}&quot;</span>
  fields = form.<span style="color:#9900CC;">fields</span>
  fields.<span style="color:#9900CC;">each</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>field<span style="color:#006600; font-weight:bold;">|</span>
    <span style="color:#CC0066; font-weight:bold;">puts</span> field
  <span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#006600; font-weight:bold;">&#125;</span></pre></div></div>

<p><a href="http://aruy.net/archives/149">Notes/Ruby フィールドリスト作成</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aruy.net/archives/149/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aruy.net/archives/149" />
	</item>
		<item>
		<title>Notes 添付ファイル その2</title>
		<link>http://aruy.net/archives/125</link>
		<comments>http://aruy.net/archives/125#comments</comments>
		<pubDate>Tue, 16 Dec 2008 09:48:11 +0000</pubDate>
		<dc:creator>aruy</dc:creator>
				<category><![CDATA[ruby]]></category>
		<category><![CDATA[ノーツ]]></category>
		<category><![CDATA[Notes]]></category>

		<guid isPermaLink="false">http://aruy.net/?p=125</guid>
		<description><![CDATA[RubyでNotesのメールを書き出す を参考に、Notes添付ファイルを一括出力する処理をRubyで書いてみました。 まんまコピーなんですが、忘れないように記録 全件対象で処理した場合、エラーが発生し落ちてしまったので [...]<p><a href="http://aruy.net/archives/125">Notes 添付ファイル その2</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://d.hatena.ne.jp/jitte/20060429/1146289698">RubyでNotesのメールを書き出す</a><br />
を参考に、Notes添付ファイルを一括出力する処理をRubyで書いてみました。<br />
まんまコピーなんですが、忘れないように記録</p>
<p>全件対象で処理した場合、エラーが発生し落ちてしまったので、<br />
@Attachmentsで抽出したViewを作成し処理対象を添付ファイルが<br />
存在する文書のみに変更しました。</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'win32ole'</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">class</span> Log
  <span style="color:#9966CC; font-weight:bold;">def</span> initialize<span style="color:#006600; font-weight:bold;">&#40;</span>s<span style="color:#006600; font-weight:bold;">&#41;</span>
    @@logger <span style="color:#006600; font-weight:bold;">||</span>= <span style="color:#CC0066; font-weight:bold;">Proc</span>.<span style="color:#9900CC;">new</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>x<span style="color:#006600; font-weight:bold;">|</span> <span style="color:#CC0066; font-weight:bold;">puts</span> x <span style="color:#006600; font-weight:bold;">&#125;</span>
    @@logger.<span style="color:#9900CC;">call</span><span style="color:#006600; font-weight:bold;">&#40;</span>s<span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> Log.<span style="color:#9900CC;">register_logger</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0066; font-weight:bold;">p</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    @@logger = <span style="color:#CC0066; font-weight:bold;">p</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">class</span> Notes
  <span style="color:#9966CC; font-weight:bold;">class</span> Session
    <span style="color:#9966CC; font-weight:bold;">def</span> initialize<span style="color:#006600; font-weight:bold;">&#40;</span>server, dbname<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#0066ff; font-weight:bold;">@server</span>, <span style="color:#0066ff; font-weight:bold;">@dbname</span> = server, dbname
      <span style="color:#0066ff; font-weight:bold;">@session</span> = WIN32OLE.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'Notes.NotesSession'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">or</span> <span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#0000FF; font-weight:bold;">nil</span>
      <span style="color:#0066ff; font-weight:bold;">@db</span> = <span style="color:#0066ff; font-weight:bold;">@session</span>.<span style="color:#9900CC;">GetDatabase</span><span style="color:#006600; font-weight:bold;">&#40;</span>@Server, <span style="color:#0066ff; font-weight:bold;">@dbname</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">def</span> each
      view = <span style="color:#0066ff; font-weight:bold;">@db</span>.<span style="color:#9900CC;">GetView</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'Attachments'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      doc = view.<span style="color:#9900CC;">GetFirstDocument</span>
&nbsp;
      <span style="color:#9966CC; font-weight:bold;">while</span> doc
        <span style="color:#9966CC; font-weight:bold;">yield</span> <span style="color:#6666ff; font-weight:bold;">Notes::Document</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>doc<span style="color:#006600; font-weight:bold;">&#41;</span>
        doc = view.<span style="color:#9900CC;">GetNextDocument</span><span style="color:#006600; font-weight:bold;">&#40;</span>doc<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">include</span> <span style="color:#CC00FF; font-weight:bold;">Enumerable</span>
&nbsp;
    <span style="color:#008000; font-style:italic;">#添付ファイルをdirに書き出す</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> extract_files<span style="color:#006600; font-weight:bold;">&#40;</span>dir<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>doc<span style="color:#006600; font-weight:bold;">|</span>
        doc.<span style="color:#9900CC;">each_attachment</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>obj<span style="color:#006600; font-weight:bold;">|</span>
          name = obj.<span style="color:#9900CC;">name</span>
          Log.<span style="color:#9900CC;">new</span> <span style="color:#996600;">&quot;<span style="color:#000099;">\t</span>#{name}&quot;</span>
&nbsp;
          <span style="color:#008000; font-style:italic;">#対象外の拡張子をチェックする</span>
          ext = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">extname</span><span style="color:#006600; font-weight:bold;">&#40;</span>name<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">downcase</span>
          <span style="color:#9966CC; font-weight:bold;">next</span> <span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#006600; font-weight:bold;">%</span>w<span style="color:#006600; font-weight:bold;">&#40;</span>htm html csv pif scr com bat<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9966CC; font-weight:bold;">include</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>ext<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
          <span style="color:#008000; font-style:italic;">#書き出しメソッドを呼び出し</span>
          doc.<span style="color:#9900CC;">extract_file</span><span style="color:#006600; font-weight:bold;">&#40;</span>name, <span style="color:#996600;">&quot;#{dir}/#{name}&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;">#添付ファイルをdir/fromに書き出す</span>
    <span style="color:#9966CC; font-weight:bold;">def</span> extract_files_by_sender<span style="color:#006600; font-weight:bold;">&#40;</span>dir, body_hash = <span style="color:#0000FF; font-weight:bold;">nil</span><span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>doc<span style="color:#006600; font-weight:bold;">|</span>
        k = doc.<span style="color:#9900CC;">unid</span>
&nbsp;
        <span style="color:#008000; font-style:italic;">#出力先の作成</span>
        extract_dir = <span style="color:#996600;">&quot;#{dir}/#{k}&quot;</span>
        <span style="color:#CC00FF; font-weight:bold;">Dir</span>.<span style="color:#9900CC;">mkdir</span><span style="color:#006600; font-weight:bold;">&#40;</span>extract_dir<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">unless</span> <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">exist</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>extract_dir<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
        doc.<span style="color:#9900CC;">each_attachment</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>obj<span style="color:#006600; font-weight:bold;">|</span>
          name = obj.<span style="color:#9900CC;">name</span>
          Log.<span style="color:#9900CC;">new</span> <span style="color:#996600;">&quot;<span style="color:#000099;">\t</span>#{name}&quot;</span>
          ext  = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">extname</span><span style="color:#006600; font-weight:bold;">&#40;</span>name<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">downcase</span>
          <span style="color:#9966CC; font-weight:bold;">next</span> <span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#006600; font-weight:bold;">%</span>w<span style="color:#006600; font-weight:bold;">&#40;</span>htm html csv pif com bat<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9966CC; font-weight:bold;">include</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>ext<span style="color:#006600; font-weight:bold;">&#41;</span>
          doc.<span style="color:#9900CC;">extract_file</span><span style="color:#006600; font-weight:bold;">&#40;</span>name, <span style="color:#996600;">&quot;#{extract_dir}/#{name}&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">class</span> Document
    <span style="color:#9966CC; font-weight:bold;">def</span> initialize<span style="color:#006600; font-weight:bold;">&#40;</span>doc<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#0066ff; font-weight:bold;">@doc</span> = doc
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">def</span> each_attachment
      a = <span style="color:#0066ff; font-weight:bold;">@doc</span>.<span style="color:#9900CC;">Items</span> <span style="color:#9966CC; font-weight:bold;">or</span> <span style="color:#0000FF; font-weight:bold;">return</span>
      a.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>obj<span style="color:#006600; font-weight:bold;">|</span>
        <span style="color:#9966CC; font-weight:bold;">yield</span> <span style="color:#6666ff; font-weight:bold;">Notes::Attachment</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>obj<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">if</span> obj.<span style="color:#9900CC;">Type</span> == <span style="color:#006666;">1084</span> <span style="color:#008000; font-style:italic;">#ATTACHMENT</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">def</span> unid;    <span style="color:#0066ff; font-weight:bold;">@doc</span>.<span style="color:#9900CC;">UniversalID</span>; <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">def</span> extract_file<span style="color:#006600; font-weight:bold;">&#40;</span>name, path<span style="color:#006600; font-weight:bold;">&#41;</span>
      obj = <span style="color:#0066ff; font-weight:bold;">@doc</span>.<span style="color:#9900CC;">GetAttachment</span><span style="color:#006600; font-weight:bold;">&#40;</span>name<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">or</span> <span style="color:#0000FF; font-weight:bold;">return</span>
      <span style="color:#9966CC; font-weight:bold;">begin</span>
        obj.<span style="color:#9900CC;">ExtractFile</span><span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">rescue</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> e
        Log.<span style="color:#9900CC;">new</span> <span style="color:#996600;">&quot;**** #{e.message} ****&quot;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">class</span> Attachment
    <span style="color:#9966CC; font-weight:bold;">def</span> initialize<span style="color:#006600; font-weight:bold;">&#40;</span>obj<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#0066ff; font-weight:bold;">@obj</span> = obj
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">def</span> extract_file<span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#0066ff; font-weight:bold;">@obj</span>.<span style="color:#9900CC;">ExtractFile</span><span style="color:#006600; font-weight:bold;">&#40;</span>path<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#9966CC; font-weight:bold;">def</span> name
      <span style="color:#0066ff; font-weight:bold;">@obj</span>.<span style="color:#9900CC;">Values</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>呼出し側</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'notesruby'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'optparse'</span>
&nbsp;
opt_hash = <span style="color:#CC00FF; font-weight:bold;">Hash</span>.<span style="color:#9900CC;">new</span>
opt_hash<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'dir'</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#996600;">'.'</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">p</span> ARGV
ARGV.<span style="color:#9900CC;">options</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>opt<span style="color:#006600; font-weight:bold;">|</span>
    opt.<span style="color:#9900CC;">on</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'-d [dir]'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>v<span style="color:#006600; font-weight:bold;">|</span> opt_hash<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'dir'</span><span style="color:#006600; font-weight:bold;">&#93;</span> = v <span style="color:#006600; font-weight:bold;">&#125;</span>
    opt.<span style="color:#9900CC;">on</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'-s'</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">|</span>v<span style="color:#006600; font-weight:bold;">|</span> opt_hash<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'same_folder'</span><span style="color:#006600; font-weight:bold;">&#93;</span> = v <span style="color:#006600; font-weight:bold;">&#125;</span>
    opt.<span style="color:#9900CC;">parse</span>!
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
dir = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">expand_path</span><span style="color:#006600; font-weight:bold;">&#40;</span>opt_hash<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'dir'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">if</span> !<span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">writable</span>?<span style="color:#006600; font-weight:bold;">&#40;</span>dir<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">||</span> ARGV.<span style="color:#9900CC;">size</span> == <span style="color:#006666;">0</span>
  Log.<span style="color:#9900CC;">new</span> <span style="color:#996600;">&quot;Usage: ruby #{$0} [-s] [-d dir] file [file...]&quot;</span>
  <span style="color:#CC0066; font-weight:bold;">exit</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
body_hash = <span style="color:#CC00FF; font-weight:bold;">Hash</span>.<span style="color:#9900CC;">new</span>
ARGV.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>arg<span style="color:#006600; font-weight:bold;">|</span>
  <span style="color:#9966CC; font-weight:bold;">if</span> m = arg.<span style="color:#9900CC;">match</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#40;</span>.<span style="color:#006600; font-weight:bold;">*</span><span style="color:#006600; font-weight:bold;">&#41;</span>@<span style="color:#006600; font-weight:bold;">&#40;</span>.<span style="color:#006600; font-weight:bold;">*</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    nsf, svr = m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span>, <span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#93;</span>
  <span style="color:#9966CC; font-weight:bold;">else</span>
    nsf, svr = <span style="color:#006600; font-weight:bold;">&#91;</span>arg, <span style="color:#996600;">''</span><span style="color:#006600; font-weight:bold;">&#93;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">if</span> db = <span style="color:#6666ff; font-weight:bold;">Notes::Session</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>svr, nsf<span style="color:#006600; font-weight:bold;">&#41;</span>
    Log.<span style="color:#9900CC;">new</span> <span style="color:#996600;">&quot;添付ファイル抽出...(#{arg})&quot;</span>
    <span style="color:#9966CC; font-weight:bold;">if</span> opt_hash<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'same_folder'</span><span style="color:#006600; font-weight:bold;">&#93;</span>
      db.<span style="color:#9900CC;">extract_files</span><span style="color:#006600; font-weight:bold;">&#40;</span>dir<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">else</span>
      db.<span style="color:#9900CC;">extract_files_by_sender</span><span style="color:#006600; font-weight:bold;">&#40;</span>dir, body_hash<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p><a href="http://aruy.net/archives/125">Notes 添付ファイル その2</a> is a post from: <a href="http://aruy.net">aruy.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://aruy.net/archives/125/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://aruy.net/archives/125" />
	</item>
	</channel>
</rss>

