Rubyで仏教プログラミング|#{}と変数を組み合わせて柔軟な入出力を試みる

御参拝、誠に有難う御座います。住職(管理人)の修羅観音です。



Rubyで仏教プログラミングを進めている間に、参加している僧伽的なサロンにて、ProgateのRubyをやり込むという、僧伽の中にプチ僧伽が作成される、という御縁が御座いました。

現在は、そのような御縁のお陰様で、ProgateのRubyを復習がてら、せっせとRuby on Railsの学習と実践も進めております。

ProgateのリニューアルされたRubyコースを復習している最中、初期に学ぶけれども、この寺院(ブログ)で、やっていなかった部分を見付けましてね。

このコーディング・書き方を知っていると、柔軟な対応と言いますか、柔軟な入出力が実現致します。



そして、これを使う事によって、ある仏教プログラミングも可能である、と言う事を見出しました。



今回は、Rubyの柔軟な対応が出来るメソッドと組み合わせ方と共に、浄土宗の勤行や葬儀で聞く事になる「別回向文」も、併せて学ぶことと致しましょう。



もしかしたら、あなたの家が浄土宗の檀家であるならば、葬儀や勤行にて「あ、聞いたことあるかも」と、思い出されるやもしれません。

その他、夏のお盆休みに、お坊さんを家に招いたときに、聞かれた事がある、という人もいらっしゃいましょう。



ちなみに私は、毎日の勤行にて、「仏教サイドの前提知識」で伝えていることを、仏壇の前で行じております。

スポンサーリンク

Rubyで仏教プログラミング:仏教サイドの前提知識「別回向文」

今回は、浄土宗の葬儀や勤行にて、唱える事となる文「別回向文(べつえこうもん)」を、Rubyというプログラミング言語を使って表現致します。



今回の「Rubyで仏教プログラミング」を進めるにあたり、まずはいつものように、仏教サイドの前提知識からお伝えしていきます。



「別回向文」とは、各々の戒名と家・苗字を文中に入れて唱える、追善供養の文です。

読み方は、「○○家先祖代々追福増進菩提」ですが、「追福増進菩提」版と、「追善供養菩提」版があります。

私は、近くの浄土宗のお寺で、お坊さん体験をさせて頂いた御縁では、「追福増進菩提」で教わりました。



「別回向文」は、浄土宗の勤行や葬儀では、「摂益文(しょうやくもん)」の後の「念仏一会」にて、お念仏を称えた後に称えます。

その後に、「総回向文」と続いていきます。



「別回向文」の内容は、葬儀の場では、往生された方の戒名の後に「追福増進菩提」と続き、最後に「又願わくば(その家の苗字)家先祖代々先亡諸精霊各々追福増進菩提」と続きます。



戒名まで取り上げると話が長くなりすぎますし、「戒名と言われても・・・」と、最近往生された方の戒名を、ぱっと思い出せないという事情も御座いましょう。

ゆえに今回は、あなたの家の苗字だけに絞った、「別回向文プログラム簡略版」と銘打って、プログラミングしていく事と致します。



私としましては、ご家族の戒名を、時々でも、せめてお盆やお彼岸といった宗教的・仏教的な時節には、思い出したいものだとは感じますがね。

仏壇に御座いましょう位牌には、ご家族の戒名・法名が記載されているから、確認はしやすいかと存じます。



また、今回のプログラミングでは、私がお坊さん体験で教わった別回向文の文章を、そのまま使います。

内容は、こんな感じです。



「願わくは上来修ところの功徳、みなことごとく回向し奉る。弔うところの精霊は(各々の苗字)家先祖代々追福増進菩提」



「各々の苗字」の部分が、今回のRubyで仏教プログラミングで、覚える単元に御座います。

Rubyで仏教プログラミング:Rubyサイドの前提知識

続いて、今回の「Rubyで仏教プログラミング」における、Rubyサイドの前提知識をお伝え致します。



今回は「#{}」という記法と、変数、そして外部からの入力を前提としていますから、「getsメソッド」を使います。

getsメソッドについては、以前に詳しく解説致しましたね。



参照記事:「Rubyで仏教プログラミング|getsを使って24時間不断念仏会の修養証プログラムを作る」



出力は、いつものように「putsメソッド」を使います。



参照記事:「Rubyで仏教プログラミング|出力メソッド(puts,print,p)で表示する」



今回の主題となりますのは、「#{}」という記法です。



この「#{}」は、今回の主題ではありますが、実はRubyで仏教プログラミングシリーズにて、何気なく登場はしておりますよ。

覚えていませんかな、こういう一文。


puts “#{syuso[:name]}は、#{syuso[:schoo]}の開祖です。”



これ、配列とハッシュの組み合わせの時に、書いておりました一文です。



参照記事:「Rubyで仏教プログラミング|配列とハッシュの合わせ技」



以前までは、脇役として登場してきましたが、今回は主役として扱います。

「#{}」という記法を使うと、変数の値をputsメソッドで出力した文字列の中に組み込むことが出来ます。

「{}(波括弧)」の中に、変数を入れる事によって、変数に代入された値や文字列が表示されます。



実例をあげると、こんな感じです。


namu = “南無阿弥陀仏”puts “#{namu}の御名により、感謝のうちに励みます。”



これを実行すると、「南無阿弥陀仏の御名により、感謝のうちに励みます。」と出力されます。

これは、「#{}」の中に、「namu」という変数を入れる事により、「namu」に代入された「南無阿弥陀仏」という文字列が出力された、という事です。



今回は、getsメソッドを用いて外部から入力された値を変数に代入して、この「#{}」と組み合わせたプログラムを完成させましょう。

スポンサーリンク

Rubyで仏教プログラミング:別回向文プログラムにおける「#{}」の使い所

それではいよいよ、「別回向文プログラム」を、完成させると致しましょう。

今回のプログラムを理解すると、同時に別回向文についても理解して頂けるかと存じます。



別回向文は、このような一文でしたね。



「弔うところの精霊は(各々の苗字)家先祖代々追福増進菩提」



これを出力するプログラムを書くと、こうなります。


puts “弔うところの精霊は(各々の苗字)家先祖代々追福増進菩提”



次に、「#{}」の使い所ですが、ここで個別に変化する箇所は、どこかおわかり頂けますかな。

そう、「(各々の苗字)」という部分です。

この部分が、各々の家・苗字が入る場所ですから、ここが変化するようにプログラムすることになります。



この事を踏まえると、コードは、以下のようになりますね。

わかりやすく、句読点と「」を追加しておきましょう。


puts “弔うところの精霊は、「#{}」家先祖代々追福増進菩提”



これで、出力部分は出来上がりました。

Rubyで仏教プログラミング:「別回向文」は各々の家に合わせて外部から入力を受け付けるようにする

「#{}」の使い所は、これでわかりました。

次は、各々の家、個別の苗字に対応するように、プログラミング致しましょう。



例えば、お坊さん便でやってるのかどうかまではわかりませんが、事前に家の苗字を入力して貰う場面があるとします。

その際には、「苗字を入力して下さい。」とアナウンス・事前通知する文章も書いておくとしましょうか。



そして、自分の苗字を入力できるようなプログラムを書くのですが、ここで「getsメソッド」の出番です。

putsメソッドを使って、わかりやすくアナウンスを表示させた後、変数に外部から入力した苗字を代入する形にするために、getsメソッドを使います。

苗字を入力して貰うわけですから、変数は「Last_name」とします。



以上の事をプログラミングすると、こうなります。


puts “あなたの苗字を入力して下さい。”
puts “————————————-”
last_name = gets.chomp



これで、苗字を入力する部分が出来ました。

尚、「gets.chomp」としていますが、「chomp」は、「改行を除く」という意味が御座います。

「gets」だけですと、苗字を入力した際、苗字の後の文章が改行されて、視覚的に読みにくくなりますから、「gets.chomp」として、余計な改行をしないように計らいます。



最後に、「別回向文」の出力部分と組み合わせましょう。

入力した苗字が出力されるために、「#{}」の{}(波括弧)の中に、変数を入れるのでしたね。

今回の場合ですと、「#{last_name}」とすれば、外部から入力した苗字が出力・表示されます。


puts “弔うところの精霊は、「#{last_name}」家先祖代々追福増進菩提”



以上を踏まえて創り上げた「別回向文」の完成形は、こちらです。

cloud9でプログラミング・コーディングしておりますから、画像にしてお伝えして致します。






架空の苗字「南無家」を想定して、「南無」と外部から入力した出力結果がこちらです。






これで、「別回向文プログラム」が完成致しました。



最後に、別回向文の後は「十念(南無阿弥陀仏を十回)」称えますから、ご一緒にお念仏申して下されば、嬉しゅう御座います。

同唱十念。

長く付き合うことになる「#{}」という記法

今回は、「#{}」という記法を用いて、「別回向文プログラム」を、完成させるに至りました。



この「#{}」は、長く付き合う事になるでしょうし、これからRubyでプログラミングしていく際に、何度も出会う事になるかと存じます。

私も、以前からちょくちょくと、何気なく使ってきましたからね。



復習を兼ねて、「#{}」の使い所を探して頂ければ、より理解が深まるかと存じます。



参照記事:「Rubyで仏教プログラミング総集編|まとめページ」

参照記事2:「Rubyで仏教プログラミング|ハッシュを使って高僧の名前と年齢を表示・出力する」

参照記事3:「Rubyで仏教プログラミング|timesとifで「十念」をプログラミングしてみた」



最後に、何度も申し上げていることを、改めて申し上げます。



今回のように、関心・興味があること、自身が携わる事柄をプログラミングしてみるという事は、プログラミングの実習・実践であり、知識と実践力を養うことになります。

更に、ご自身の興味や関心がある事を深く学ぶきっかけにもなります。



私も今回、毎日の勤行で発している「別回向文」を、改めて学び直す御縁になりました。



プログラミングの学習成果を、ブログにて実践・実習する効果を、「Rubyで仏教プログラミング」を投稿する度に、切に感じております。



参照記事:「プログラミングとブログ運営を同時にやるメリット|「Rubyで仏教プログラミング」をやる理由に通じる」



今回の話も含めて、この「Rubyで仏教プログラミングシリーズ」が、あなたにとってのプログラミング学習の一助となりつつ、仏教・仏法に触れて頂く仏縁となりましたら、大変嬉しゅう御座います。



合掌、礼拝

スポンサーリンク