Ruby

case文を使ったあれこれ

標準入力から「文字列,数値」を取得して出力・www,数値 「www」を数値回繰り返す 結果:wwwwwwwww・HogeFuga,数値 数値が3で割れるときはHoge、5で割り切れるときはFuga、15で割り切れるときはHogeFuga、それ以外は数値・Sosu,数値 数値番目の素数・fib,数値…

リタためす(未達成)

Slack に Ruby 製 Bot の Lita を参加させる Windows環境へRedisをインストール WindowsでrubyをいじっていてSSLエラーがどうのこうの言われた場合の対処 https://github.com/kenjij/lita-slack.git >lita start terminate called after throwing an instanc…

pumaをインストールできない

Slack に Ruby 製 Bot の Lita を参加させるを読んで「コレだ!(思いつき)」となってハマったお話Ruby2.0は32bitを使った 色々試したから、どれが有効打なのかわからん C:\Users\kenmi_000\Documents\Heroku>gem install lita Fetching: thor-0.19.1.gem (…

pryをWindows8-64bitに入れる

win7で苦労していたことを思い出しながらためす。よくあるコマンドで入れるとエラーになる。 C:\>gem install pry pry-doc ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) bad response Not Found 404 (https://rubygems.global.ssl.fast…

Rubyで広めたいif文の書き方

date_check?関数というのを作って def date_check?(value) #日付型が正しいか確認 return false if (色々な条件に対して問題があったら) return true endこれを判定させるときに if date_check?(day) @day=day else @day=Date.today end読みやすいけど書いて…

日付型が正しいか確認する

面倒で仕方ない。 まだ試行錯誤中だけど def date_check?(value) #日付型が正しいか確認 # value は 「yyyy-mm-dd」 #正しくないならFALSE return false if value.blank? value_split = value.to_s.split(" ") return false if value_split.length != 1 valu…

irbよりもpry(pra'i)が良いらしい

irbで何かしているときに目に止まったのがpryってやつでWin7-32に入れてみた。 インストール C:\Users\kenmituo\Documents>gem install pry pry-doc Fetching: coderay-1.1.0.gem (100%) Successfully installed coderay-1.1.0 Fetching: slop-3.6.0.gem (10…

Ruby1.9.3とRails3.2とMySQL5.5とSVNで環境構築

Windows7に古いバージョンで環境を構築したのでメモ MySQL5.5 ダウンロード http://dev.mysql.com/downloads/windows/installer/にアクセス 「Looking for previous GA versions?」クリック MySQL5.5を確認してDownload 「Login」「Sign Up」ではなく「No …

よくある判定式

Railsで日付パラメータを受け取って判定してダメだったら今日の日付にする・・・こんな式はよく書く。 #2014-5-1 if params[:day] d=params[:day].split(/-/) if Date.valid_date?(d[0].to_i, d[1].to_i, d[2].to_i) chkday = Time.parse(params[:day]).to_d…

ループで「あいうえお」を出力する

調べると簡単に見つからない。なんでだろう? for i in 12353..12438 puts i.chr("UTF-8") endこんな結果になる。ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめも…

配列の中に配列が含まれているかどうか知りたい

配列に複数の値があるか簡潔に判断する方法(OKweb) hairetu = [1,2,3,4,5] chk_arr = [3,4]puts "if 3 4" if hairetu.include?(3) && hairetu.include?(4) puts "empty 3 4" if (chk_arr - hairetu).empty? といった答えがあるんだけど、chk_arrの全てがあ…

datetimepickerの値検証

個人的には値の検証なんて不要だと思っていたけど、日時型を無視して入力する事例が稀に発生したりする。どうやっているんだろう?普通はモデルのvalidatesで済むけど、日時+時限で値調整をコントローラーで行っているのでたちが悪い。そんなコードを書いた…

nil?present?

if文でよく使う「nil」には姉妹のような素敵な存在がいることを最近になってしった。 if hoge.nil? p "hoge is nil" end if fuga.present? # unless fuga.blank? p "fuga is not nil" endpresent素晴らしい。

CodeIQの問題に取り組むにあたって調べたこと

メッセージがいっぱい irbでrubyファイルを実行するけど、だらだらとメッセージが表示される。 そこでhttp://rurema.clear-code.com/query:IRB%3A%3AContext%23echo/ ...する行を表示する --noverbose これから実行する行を表示しない (デフォルト) --echo …

datetimepickerの時間で躓いた

大雑把すぎる例 departure = Time.local(check.year, check.month, check.day, check.hour, check.min)そのまま出すとこんな感じになった。 2013-02-26T13:30:00+00:00 datetimepickerで使えるようにするために、末尾に追加 .strftime("%Y-%m-%d %H:%M")

Rails3.1環境を構築したけどRails2.3系を修正することになった

まずサーバの起動方法が異なるところから躓いた rails s thin(3.1) ruby script/server mongrel(2.3) そして実行してみた kenmituo@hoge ~/My Documents/Aptana Studio 3 Workspace/2011 $ ruby script/server mongrel c:/Ruby187/lib/ruby/gems/1.8/gems/ac…

メールアドレスと電話番号のバリデート

モデルに仕込むメールアドレスと電話番号の検証 validates :email, :format=>{:with=>/^[a-z0-9_.-]+@([a-z0-9-]+\.)+[a-z]{2,4}$/i, :message=>":たぶん正しくない", :allow_blank=>true} validates :phone, :format=>{:with=>/^[0-9-]/, :message=>":半角…

1.8系と1.9系の混在

調べるとできるらしいのでメモ Ruby − 「pik」で複数バージョン共存!(mk-mode BLOG) C:\Users\kenmituo>ruby -v ruby 1.8.7 (2012-02-08 patchlevel 358) [i386-mingw32] C:\Users\kenmituo>gem install pik ------------------------------------…

定期的にFTPでアップロードする仕掛けを学ぶ

自習なんだけど。 cronディレクトリがあるのでフムフムとcrontabを眺める。よくよく考えるとcronを起動させる何かが分からないのでサービスを眺めるがそれっぽいのが無い。ググってみたらpycron、Z-Cronとか引っかかるが見当たらない。cron for Windowsには…

自然対数を扱う

log2X(書けた!)をruby1.8.3で扱いたい。 任意の底を持つ対数を計算する方法を参考にすると、「対数の底の変換公式」が必要ってことで Math.log(X)/Math.log(2) ほら、高校数学は大人になっても使うんだよ! しかし扱うデータに問題があり、 log21 これが0…

小ネタ

ちょろちょろと書く select_tagでselectedできない railsでselect_tagで事前に選んだ項目でselectedさせる(コチョナナバ)にあった <%= select_tag :hoge, options_for_select(Table.select_rrays ,:selected=>@hoge.to_i) %>「to_i」を付けてあげないとダ…

環境構築だよーん

Rubyインストール http://rubyinstaller.org/から、ruby1.8.7-p358をダウンロード。 「Add Ruby executables to your PATH」をチェック ruby -v \Ruby187\bin 環境変数 HTTP_PROXY=http://kenmituo.com:10080 HTTPS_PROXY=https://kenmituo.com:10080 Rails…

へんなコードと三項演算子

作成してから数年経ってから指摘されたバグがあって、教室名を表示する所に教室IDが表示されていた。 あまり教室名を入力していないこともあって指摘されたときには唖然として5分間は動けなかった。 普段は面倒だから教室名カラムを持たせているのに、このDB…

2038問題

/.j(http://slashdot.jp/article.pl?sid=09/02/09/012251)にてUnix Timeが「1234567890」になることが記事になっていた。 Rubyで確認してみる。 C:\>ruby -e 'p Time.at(1234567890)' Sat Feb 14 08:31:30 +0900 2009 C:\>ruby -e 'p Time.at(0x7fffffff)'…

失敗作

失敗昨を残してみる。 tempfile版 tempfileを作成する場所の指定する必要があった。 @printers = Array.new @lprcount = params[:count].nil? ? 0 : params[:count].to_i require "tempfile" @printers = Array.new if params[:count].nil? @lprcount = 0 te…

LBP-1820のステータスを一括取得

20数台のプリンタのステータスを取得したいのが、エラーに悩まされたりして解決に時間が掛かった。 頭を悩ませていたのが「Timeout::Error」って奴。 参考にしたのがこのあたり。 [http://d.hatena.ne.jp/cesar/20070409/p1:title=OVERT MEMO [ruby]net/http…

rbuf_fillって初めて見た。

CanonのLBPプリンタのステータスを一気に取得するRubyプログラムを作成中、結果表示はもちろんRailsで行う。 URLから正規表現で知りたい情報を取得して書き出すだけなんだけど、台数が増えるとエラーになる。 サーバの応答時間が掛かりすぎるのが原因。 とい…

三項演算子を考える

ありがちなif文 if 条件式 flag = "True" else flag = "False" endよく使うんだけど、なんだかイラッとしてきた。そこで三項演算子の出番になるんだけど、1行の文字数を制限したい気分なのであまり使っていなかった。 flag = 条件式 ? "True" : "False" ブツ…

PukiwikiからHikeへ

引越に伴って一番悩んでいるのが書式の変換 あなたの Ruby コードを添削します 【第 1 回】 pukipa.rb - ソースコード:pukiwikiparser.rb このコードを使うように努力してみる。 HTMLからrb形式に変換する 参考ページにはソースのダウンロードがないので範…

instikiを試す

なんだかんだ言って試すことにする。 instikiをダウンロードして解凍、Aptana IDEのディレクトリに放り込む 「instiki」プロジェクトを作成する database.yml 親切にもサンプルがあった。 mysql_example: adapter: mysql database: instiki_development user…