hrkt0115311の、教えて習うRuby教室 RSSを登録する

プロではない、Ruby初学者がメルマガを書きます。LinuxやWindowsで動くスクリプトも紹介します。お読みいただけたら、「なーんだ、私でもでやれるよ」と思っていただけるかもしれません。学んだ分だけ、単純作業から解放してくれる、Rubyはいかがですか?

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2008/08/21

「hrkt0115311の、教えて習うRuby教室。」Vol.64 〜微妙残暑見舞いの巻〜

この記事を取り寄せる

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

              〜 Ruby始めました 〜
                                             
                 「hrkt0115311の、教えて習うRuby教室。」Vol.64

━━━━━━━━━━━━━━━━━━━━━━微妙残暑見舞いの巻

おはようございます。hrkt0115311です。毎回メルマガを読んでいただきありがとう
ございます! LDRでRSSを登録して下さっている方もありがとうございます。
バックナンバーをご覧下さっている方にも感謝します。励みになります!
http://reader.livedoor.com/about/http://archive.mag2.com/0000267290/rss10.xml

涼しくなったかと思うと、また暑くなったりしますねー。そういえば残暑見舞いの
季節だよなぁ、ということで今回は残暑見舞いをテーマにしてみました。

それでは本日のメルマガ始めます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○目次
・ 微妙残暑見舞い(出力結果)
・ 微妙残暑見舞い(解説)
・ 微妙残暑見舞い(スクリプト)
・ 編集後記

━━━━━━━━━━━━━━━━━━━━━━━━━━━免責事項

 ソースコードは、発行者が実際に動かし、構文チェックなどもしていますが
 ご利用になられて万一損害が生じた場合、保証することができません。
 ご利用になられる際は、ご自身でご確認になられた上で、お試し下さい。

━━━━━━━━━━━━━━━━━━━━Rubyの導入方法について

 OSは何をお使いですか? LinuxでもMacOSでもWindowsでも、Rubyの
 公式ページでインストール方法が説明されています。

 ○Ruby Install Guide
 http://preview.tinyurl.com/4ghc3o

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○微妙残暑見舞い(出力結果)

$ ruby kamomail.rb

 残暑お見舞い申し上げます
 立秋とはいえ、連日の猛暑にいささか参っております。
 君がマチュピチュへと旅立ち一月になります。お元気ですか。

 本物の秋が待ち遠しい今日この頃ですが、なんとか、
 すっぱりな日々を過ごしております。
 最近、おいしいお店を開拓したので、君が帰国したら、
 案内しようと今から楽しみにしています。

 連日うだるような暑さが続いています。
 現地ではアナコンダ、もしくはベンガル虎、あるいは北極熊が
 出ると耳にしました。日本の残暑もそうですが、
 アナコンダ、もしくはベンガル虎、あるいは北極熊にも
 どうぞお気をつけて、良い旅をお過ごし下さい。


 残暑お見舞い申し上げます
 立秋とはいえ、連日の猛暑にいささか参っております。
 君がウォリス諸島へと旅立ち一月になります。お元気ですか。

 本物の秋が待ち遠しい今日この頃ですが、なんとか、
 ざっくばらんな日々を過ごしております。
 最近、おいしいお店を開拓したので、君が帰国したら、
 案内しようと今から楽しみにしています。

 連日うだるような暑さが続いています。
 現地ではアナコンダ、もしくはベンガル虎、あるいは北極熊が
 出ると耳にしました。日本の残暑もそうですが、
 アナコンダ、もしくはベンガル虎、あるいは北極熊にも
 どうぞお気をつけて、良い旅をお過ごし下さい。


 残暑お見舞い申し上げます
 立秋とはいえ、連日の猛暑にいささか参っております。
 君がサンタクルスへと旅立ち一月になります。お元気ですか。

 本物の秋が待ち遠しい今日この頃ですが、なんとか、
 にょろにょろな日々を過ごしております。
 最近、おいしいお店を開拓したので、君が帰国したら、
 案内しようと今から楽しみにしています。

 連日うだるような暑さが続いています。
 現地ではアナコンダ、もしくはベンガル虎、あるいは北極熊が
 出ると耳にしました。日本の残暑もそうですが、
 アナコンダ、もしくはベンガル虎、あるいは北極熊にも
 どうぞお気をつけて、良い旅をお過ごし下さい。

$ ruby kamomail.rb

 残暑お見舞い申し上げます
 立秋とはいえ、連日の猛暑にいささか参っております。
 君がアスワンへと旅立ち一月になります。お元気ですか。

 本物の秋が待ち遠しい今日この頃ですが、なんとか、
 さっぱりな日々を過ごしております。
 最近、おいしいお店を開拓したので、君が帰国したら、
 案内しようと今から楽しみにしています。

 連日うだるような暑さが続いています。
 現地ではアナコンダ、もしくはベンガル虎、あるいは北極熊が
 出ると耳にしました。日本の残暑もそうですが、
 アナコンダ、もしくはベンガル虎、あるいは北極熊にも
 どうぞお気をつけて、良い旅をお過ごし下さい。


 残暑お見舞い申し上げます
 立秋とはいえ、連日の猛暑にいささか参っております。
 君がモヘンジョダロへと旅立ち一月になります。お元気ですか。

 本物の秋が待ち遠しい今日この頃ですが、なんとか、
 がらんな日々を過ごしております。
 最近、おいしいお店を開拓したので、君が帰国したら、
 案内しようと今から楽しみにしています。

 連日うだるような暑さが続いています。
 現地ではアナコンダ、もしくはベンガル虎、あるいは北極熊が
 出ると耳にしました。日本の残暑もそうですが、
 アナコンダ、もしくはベンガル虎、あるいは北極熊にも
 どうぞお気をつけて、良い旅をお過ごし下さい。


 残暑お見舞い申し上げます
 立秋とはいえ、連日の猛暑にいささか参っております。
 君がベスビオ山へと旅立ち一月になります。お元気ですか。

 本物の秋が待ち遠しい今日この頃ですが、なんとか、
 ざっくばらんな日々を過ごしております。
 最近、おいしいお店を開拓したので、君が帰国したら、
 案内しようと今から楽しみにしています。

 連日うだるような暑さが続いています。
 現地ではアナコンダ、もしくはベンガル虎、あるいは北極熊が
 出ると耳にしました。日本の残暑もそうですが、
 アナコンダ、もしくはベンガル虎、あるいは北極熊にも
 どうぞお気をつけて、良い旅をお過ごし下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○微妙残暑見舞い(解説)

なんとかワニとか、猛獣のみなさんをもっと充実させたかったのですが、
「この地域に、いないし」みたいな感じにしたかったので、テンプレートの
一部として、登場する猛獣のみなさんは固定にしてみました。

やたら旅行にでかけている「君」はどんな人なのでしょうか。また、メールなら
海外でも受信できるかもしれませんが、これが残暑見舞いのハガキだとしたら、
主不在の部屋に届くわけで、帰国した「君」が大量の郵便物の山の中から見つける
のかなぁ、などと想像してしまいました。

仕組みは、地名とオノマトペの辞書を用意し、それをランダムに呼び出して
テンプレートに埋め込んで表示しています。

a = Kamomail.new # => Kamomailオブジェクトを作る
a.c # => cメソッドで、辞書からインスタンス変数に言葉をセットする
a.p # => pメソッドで、cメソッドから引き継いだインスタンス変数を
     埋め込んだ文章を出力する。

こんな仕組みです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

○微妙残暑見舞い(スクリプト)

=begin
1.微妙な残暑見舞いを出力するスクリプト

・残暑見舞いの文例:残暑見舞いの文例、残暑見舞い状への返事、
 残暑見舞いに使える俳句「年賀状・暑中見舞いドットコム」
 http://www.nengasyotyuu.com/syochu/sbashic/sbashic_03.html

上記文例を参考にさせていただきました。お礼申し上げます。

・Onomatopedia: Online Onomatopoeia Dictionary
 http://www.onomatopedia.net/dictionary/index

・英語雑貨屋 - 世界の英語地名集
 http://www.rondely.com/zakkaya/dic3/index.htm

上記二つのサイトで公開されているデータを使わせていただきました。
お礼申し上げます。

=end

require "jcode"
$KCODE = "UTF-8"


class Kamomail
  def initialize
    @a1 = 0
    @a2 = 0
  end
  def c
a=["アイガー","アイルランド海","アクロポリス","アコンカグア","アジャンタ",
"アスワン","アセンション","アゾフ海","アゾレス諸島","アッツ島",
"アデン湾","アドリア海","アパラチア山脈","アブ・シンベル","アマゾン河",
"アムノク川","アムール川","アラスカ山脈","アラスカ湾","アラビア海",
"アラフラ海","アララト山","アラル海","アリューシャン列島","アルカトラズ島",
"アルタイ山脈","アルプス","アンコール","アンダマン諸島","アンチル諸島",
"アンデス","アンナプルナ","イエローストーン","イオニア海","イオニア諸島",
"イベリア半島","イラワジ川","インダス川","インドシナ","インド洋",
"イースター島","イーストリバー","ヴィクトリア湖","ヴィクトリア滝","ウェーキ島",
"ウォリス諸島","ウラル山脈","ウラル川","エイヴォン","エトナ山",
"エニセイ川","エベレスト","エリー湖","エルバ","エルベ川",
"エーゲ海","オアフ島","オハイオ川","オビ川","オホーツク海",
"オリノコ川","オリュンポス山","オンタリオ湖","オーデル","オーマン湾",
"カスピ海","ガダルカナル","カナリア諸島","カムチャッカ","ガヤキル湾",
"カラコルム","ガラパゴス諸島","カラ海","カリフォルニア湾","カリブ海",
"カリマンタン島","カルパチア山脈","カロリン諸島","カンザス","ガンジス川",
"ギニア湾","キラウェア","キリマンジャロ","グアム","クック",
"クノッソス","クリミア","グリーンランド","クレタ島","グレートソルト湖",
"グレートバリアリーフ","クンルン山脈","ケーツー","ケープコッド","コモ湖",
"コルシカ","コレヒドール","コロッセオ","コロラド川","コンゴ川",
"コーカサス、カフカス","サイパン島","サウス島、南島","サモア諸島","サルジニア",
"サンゴ海","ザンジバル","サンタクルス","ザンベジ","ザール",
"シェトランド諸島","シェナンドー川","シエラ・デ・グアダラマ","シエラネバダ","シエラマードレ",
"シエラモレナ","シチリア、シシリー","シテ島","シナイ半島","ジブラルタル",
"シャッタルアラブ川","ジャワ","ジーランド","スカンジナビア半島","スタテン島",
"ストーンヘンジ","スペリオール湖","スマトラ島","スラウェシ島","スリーマイル島",
"スワニー川","スンダ海峡","スンダ列島","セブ","セレベス",
"セントクレア","セントヘレナ","セントローレンス川","セントローレンス湾","セーヌ",
"ソコトラ島","ソロモン諸島","ダイヤモンドヘッド","ダウラギリ","タスマニア",
"タスマン海","タタール海峡","タンガニーカ湖","ダーダネルス海峡","チグリス",
"チチェンイツァ","チチカカ湖","チモール","チャオ・プラヤ川","テムズ",
"デービス海峡","ドナウ","ドニエストル","ドニエプル","ドネツ",
"トラファルガー","ドン","ドーバー海峡","ナイアガラ瀑布","ナイセ",
"ナイル","ナポリ湾","ネス湖","ネバ川","バイカル湖",
"ハドソン","ハドソン湾","パナマ運河","パナマ地峡","パナマ湾",
"バフィン湾","パルテノン","バルト海","パレンケ","バレンツ海",
"パンテオン","ビスケー湾","ヒマラヤ山脈","ヒューロン湖","ピレネー",
"ヒンズークシ山脈","フィンランド湾","ブロッケン","フロリダ海峡","ベスビオ山",
"ペニン山脈","ペルシア湾","ペルセポリス","ベンガル湾","ベーリング海",
"ベーリング海峡","ボスニア湾","ボスポラス海峡","ポトマック","ボルガ",
"ホルムズ海峡","ボロブドゥール","ポー","ボーフォート海","マウナケア",
"マウナロア","マゼラン海峡","マチュピチュ","マッキンレー山","マッターホルン",
"マニラ湾","マラッカ海峡","マルヌ","ミシガン湖","ミシシッピ",
"ミズーリ","メキシコ湾","メコン","メナム川","モザンビーク海峡",
"モヘンジョダロ","モルダウ川","モンセラット","モンテローザ","モンブラン",
"モーゼル川","ヤールー川","ユングフラウ","ユーコン","ユーフラテス",
"ライン","ラシュモア山","ラッセンピーク山","ラプラタ","ラブラドル海",
"リオグランデ","ルクソール","ルール","レナ","レマン湖",
"レーニア山","ロス海","ロッキー山脈","ロプノール湖","ロワール",
"ローガン山","ローヌ","雲崗","王家の谷","黄河",
"黄海","希望峰","五大湖","紅海","黒海",
"黒竜江","死海","朱穆朗馬","千島列島","地中海",
"長江","天山山脈","東シナ海","洞庭湖","敦煌",
"南シナ海","南氷洋","北極海","万里の長城","揚子江"]

b =["あせあせ","あっさり","あはは","あーん","いじいじ",
"いちゃいちゃ","いらいら","うきうき","うっかり","うっすら",
"うっすり","うひひ","うふふ","うようよ","うろうろ",
"うろちょろ","おほほ","おろおろ","がくがく","がくん",
"かさかさ","がしゃん","かたかた","がたがた","かちかち",
"がちがち","かちん","がつがつ","がっかり","がっしゃん",
"がっちり","がつっ","がっぷり","かぱかぱ","かぷかぷ",
"がぶがぶ","がぶり","からから","がらがら","がらり",
"がらん","がりがり","がーん","ぎざぎざ","ぎしぎし",
"きちきち","きちっ","ぎっしり","きっちり","きっぱり",
"ぎとぎと","きびきび","ぎゃはは","きゅっ","きょろきょろ",
"きらきら","きらり","きりきり","きんきら","くしゃくしゃ",
"ぐしゃぐしゃ","くすくす","ぐずぐず","くたくた","ぐだぐだ",
"ぐちゃぐちゃ","ぐつぐつ","ぐっすり","くにゃくにゃ","ぐびぐび",
"くよくよ","ぐらぐら","ぐりぐり","くるくる","くるり",
"くんくん","ぐんぐん","けたけた","げたげた","けちょんけちょん",
"げっ","げーげー","ごくごく","ごしごし","こそこそ",
"ごそごそ","ごちゃごちゃ","こちょこちょ","こっくり","ごつごつ",
"こっそり","ごっそり","ごとん","ごぼり","ごほん",
"ごぼん","こりこり","ごりごり","ころころ","ごろごろ",
"ごろり","ころりからり","ごーごー","ざあざあ","さくさく",
"ざくり","ざっくばらん","さっくり","さっさっ","さっぱり",
"さばさば","さらさら","ざらざら","ざわざわ","しくしく",
"しっかり","しとしと","しぱーん","しみじみ","しゃきしゃき",
"じゃらんじゃらん","じゃん","しゅるしゅる","しゅん","しょぼしょぼ",
"しょぼん","しょんぼり","じりじり","じろじろ","しわくちゃ",
"じわじわ","じわっ","しんなり","しんみり","しーん",
"すいすい","すかすか","ずきずき","すっかり","すっきり",
"すっく","ずっしり","すっぱり","すべすべ","すやすや",
"すらすら","ずらり","ずるずる","ずるっ","するり",
"すんなり","そっくり","そよそよ","そろそろ","ぞろぞろ",
"そろりそろり","そわそわ","たじたじ","だらだら","たんまり",
"ちかちか","ちくたく","ちくちく","ちちちち","ちっちっ",
"ちびちび","ちびりちびり","ちまちま","ちゃかちゃか","ちゃきちゃき",
"ちゃっかり","ちやほや","ちょい","ちょきちょき","ちょくちょく",
"ちょこちょこ","ちょこまか","ちょこん","ちょびちょび","ちらちら",
"ちらほら","ちらり","つかつか","つるつる","てかてか",
"てくてく","でっぷり","てんてん","でーん","どきどき",
"どたばた","どっさり","どどん","とろとろ","どーん",
"なでなで","にっこり","にやにや","にやり","にょろにょろ",
"のっそり","のびのび","のろのろ","のんびり","ぱかぱか",
"ぱくっ","ぱしっ","ばたばた","ばたんきゅー","ばちゃばちゃ",
"ぱちゃぱちゃ","はっ","ははは","はらはら","ばりばり",
"ぱりぱり","ばんばん","ぱんぱん","ぴかぴか","びしょびしょ",
"ひそひそ","ぴたっ","ぴちぴち","ぴちゃっ","びっくり",
"ひやっ","ひやひや","びゅっ","ぴゅっ","ひゅるひゅる",
"ひゅん","びゅん","ぴゅん","ひゅんひゅん","ひょっこり",
"ぴらぴら","ぴんぽん","ふあっ","ぷはー","ぶらぶら",
"ふわっ","ふわふわ","ふわり","ぷんぷん","ぺこり",
"ぺこん","へたへた","べたべた","ぺたぺた","へとへと",
"へろへろ","ぼかすか","ぽかっ","ほかほか","ぽかぽか",
"ぽくぽく","ぼけっ","ぽこぽこ","ぼさぼさ","ぼそぼそ",
"ぼそり","ぽたり","ぼちぼち","ぽちぽち","ぼちゃっ",
"ぼちゃぼちゃ","ほっ","ぼやっ","ぼろぼろ","ぼんやり",
"ぼーぼー","まじまじ","まったり","みしみし","むかむか",
"むきむき","むしゃむしゃ","むちゃくちゃ","もぐもぐ","もこもこ",
"もじもじ","もちもち","もやっ","もやもや","ゆっさゆっさ",
"ゆらっ","わいわい","わくわく","わっ","わんさか",
"わんわん","わーい","わーん","んしょ"]

    @a1 = a[rand(a.size)]
    @a2 = b[rand(b.size)]
  end
  def p
puts <<E

 残暑お見舞い申し上げます
 立秋とはいえ、連日の猛暑にいささか参っております。
 君が#{@a1}へと旅立ち一月になります。お元気ですか。

 本物の秋が待ち遠しい今日この頃ですが、なんとか、
 #{@a2}な日々を過ごしております。
 最近、おいしいお店を開拓したので、君が帰国したら、
 案内しようと今から楽しみにしています。

 連日うだるような暑さが続いています。
 現地ではアナコンダ、もしくはベンガル虎、あるいは北極熊が
 出ると耳にしました。日本の残暑もそうですが、
 アナコンダ、もしくはベンガル虎、あるいは北極熊にも
 どうぞお気をつけて、良い旅をお過ごし下さい。

E
  end
end

#実行部分

a = Kamomail.new
a.c
a.p

b = Kamomail.new
b.c
b.p

c = Kamomail.new
c.c
c.p

■ 編集後記
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

「hrkt0115311の、教えて習うRuby教室。」を最後までお読みいただき
ありがとうございます。いかがでしたか?

地名とオノマトペとテンプレートの組み合わせで、なんとなく笑える
文章になりましたでしょうか。笑っていただけたらうれしいなぁ。

説明不足・分かりにくい点・私の理解の誤りなど、お気づきになられた点があれば、
お気軽にご意見・ご感想をお寄せ下さい。 enjoy.ruby@gmail.com にて、
メルマガ読者の皆さまからのフィードバックをお待ちしています。

それではまた、次号でお会いしましょう。

■ いただいた反響について
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

「こんな仕組み作れないかな」とか「説明不足で分からないよ」といった
ご指摘をお寄せいただけると嬉しいです。みなさまの声で、メルマガを
育てていただければ嬉しいです。また、メルマガで、頂戴したメールの
一部を紹介させていただく可能性があります。差し支えがある場合は
「発行者のhtkt0115311に読んで欲しいだけで、メルマガには掲載しないで」
とお書きいただければ幸いです。

■ 転送や再配布について
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 blogなどでご紹介いただく際は、 http://www.mag2.com/m/0000267290.html
 などを並記していただき、私の書いた文章であることが分かる形に
 していただけると幸いです。またメルマガの転送については、転送者さんと
 転送したメルマガを受け取られた方が迷惑でない範囲であれば歓迎します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 メールマガジン「hrkt0115311の、教えて習うRuby教室。」

 ○発行者     htkt0115311
 ○発行システム  『まぐまぐ!』 http://www.mag2.com/
 ○配信中止はこちら http://www.mag2.com/m/0000267290.html
 ○公式サイト    http://enjoy-programming.g.hatena.ne.jp/hrkt0115311/
 ○日記       http://d.hatena.ne.jp/hrkt0115311/
 ○Twitter     https://twitter.com/hrkt0115311
 ○お問い合わせ   enjoy.ruby@gmail.com

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

この記事を取り寄せる
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る