みんなのちからになりたい

コピペでブログラムつくっていきたい

ruby

blockとかProcとかがいまいちよくわからない

blockとかProcとか概念が独特すぎていまいちよくわからなかったけど、これみてたらなんとなく理解できた。http://d.hatena.ne.jp/shunsuk/20090101/1230816826:title:bookmakすごい勉強になるけどいまいちProc作る理由がよくわからない...

websocket-client-simple

http://shokai.org/blog/archives/7223あとでやってみる。 まえにMacにEventmachine入れたらわけわからないエラー出まくって怒られたのですごい助かる。

Sinatra RocketIO

橋本商会 » Sinatra RocketIOというプラグイン作った、これでWebSocketとCometが使えるまんまnodejsっぽい感じで使えるっぽい。 2年前くらいにMBPにEventMachine入れようとしたけどわけわかんないエラー出まくってインストール出来なかった思い出が蘇る。

組み込みクラスのinitializeをoverrideする

昨日のやつの続きで組み込みクラスでも同じことやってみる。標準で用意されてるクラスのinitializeをoverrideする - みんなのちからになりたい今回はTimeで。 class Time def initialize(*args) p "kita!" end def aaa "aaa" end end p tt = Time.new(2013, …

標準で用意されてるクラスのinitializeをoverrideする

きのうのやつまだ解決してないんだけども、ああいうことができるならinitializeとかもoverrideできるのかもと思ってやってみる。 そもそも標準で用意されてるクラスにinitializeがあるのか調べてみる。てっとり早くDateでやってみる。 ちなみにDate.methods…

rubyの演算子を再定義するとFloatがなんか変

rubyは演算子もメソッドだということなので、試しに再定義してみた。 class Float ['+', '-', '*', '/'].each do |num| define_method(num) do |other| "UMAIBOU" end end end p 1.0 + 1.0 p 1.0 - 1.0 p 1.0 * 1.0 p 1.0 / 1.0 $ ruby test.rb "UMAIBOU" 0.…

moduleのメソッドでclassのメソッドをoverrideする

moduleのメソッドでclassのメソッドをoverrideしようとしてもならなかった。 module HogeHoge def hoge "hogehoge" end end class Hoge include HogeHoge def hoge "hoge" end end p Hoge.new.hoge $ ruby test.rb "hoge" ならない。 ぐぐってみるとできない…

scrapingの練習として

じゃがりこのラインナップ取ってくるやつ作った。 勉強になる。

active_supportで日付いじるの便利

DateTimeに5分足したいとかするとき、どうしたらいいかわからなくて悩んだ。 require "date" dt = DateTime.now p "now -> #{dt}" dt += 5 p "now + 5 -> #{dt}" $ ruby datetime.rb "now -> 2013-03-08T12:07:05+09:00" "now + 5 -> 2013-03-13T12:07:05+09…

RSpecのbeforeのやつ

RSpecではまってる件 - みんなのちからになりたいこのまえはまってたやつ、やっぱそういうことみたいだった。RSpec の it { … } と速度の話 #Ruby #Rspec #Rails - Qiita it や its 毎に before(:each) と after(:each) が走るため。 なるほど勉強になる。こ…

hashの初期値

Hashのこんな使い方 #Ruby - Qiitahashに初期値入れられるのは知ってたけどこんな便利なことできるって知らなかった。 すごい便利。試してみる。 val = Hash.new do |hash, key| p "haitta!!" end p val_a: val["a"] = "a1" p val_b: val["b"] p val_a: val[…

rubyで標準エラーに出力するのはいいけどどうやって読むのか

たぶんそうとうアホなこと書いてると思うんだけど、例えばファイルを読むとき例外が出たらSTDERR.putsとかでエラーを書いたりするみたいなんだけど、普通はコンソールに出力されるだけでそれを呼んだメソッドとかはどうやって読むつもりでいるのかという疑問…

RSpecではまってる件

見よう見まねでRSpec書いてテストしてるんだけど、そもそもRSpecの仕様よくみてないっていうのもあるんだけどtopでbeforeでクラスのインスタンス作ったやつを使ってネストさせたdescribeで判定させるとき、desribeの度にインスタンスが新しく作られててはま…

クラスメンバのhashとか配列とかにアクセスするとき

githubの誰かのリポジトリをみてたら、外からhashとかにアクセスさせるとき def [](key) @hash[key] end みたいなことしてて、すごいかっこいい。 演算子もメソッドだからこういうことやれるらしい。クラス/メソッドの定義 - Rubyリファレンスマニュアルこ…

cacheみたいなことしたい

スクレイピングとかするとき、毎回アクセスしにいくと遅いしそのまえに相手の鯖に悪そうなのでキャッシュしといて2回めからはそこから取ってくるみたいなことしたい。 serializeしてファイルに書けばいけそうなので調べたらMarshalでやれそう。module Marsha…

URI.joinするときケツのスラッシュを付けたり付けなかったりしたときで値が違う

"http://aaa.com/bbb"と"ccc/ddd"をjoinさせて"http://aaa.com/bbb/ccc/ddd"を作ろうと思ったらケツにスラッシュ付けないと"http://aaa.com/ccc/ddd"になったのでなんでかなと。 [2] pry(main)> require "uri" => true [3] pry(main)> URI.join("http://www.…

rubyのclassを継承してる時の定数ではまる

自分でもなんの根拠があったわけでもなく、いままでやってきた経験から継承先で定義したものはインスタンス作ったあとは継承先のものが使われるって思ってて、それをrubyでやってみたら違ったのではまった。例えばこういう感じ。 class AAA WORK = "work" de…

シンボル

あるクラスの中にハッシュがあって、そのキーをシンボルにしてたんだけど、そのシンボルをクラス外から使えるのかなと思って使ってみたら普通に使えた。 わかってるひとからすれば当然のことなんだろうけど、型定義のある言語しかやってこなかったひとからす…

open-uriで`open_loop': HTTP redirection loop:が出る

スクレイピングしようとしたページがなんかリダイレクトされててopen-uriすると `open_loop': HTTP redirection loop: が出てどうしたらいいかわからなかったのでぐぐった。nokogiri抓取页面报错HTTP redirection loop: - ITeye问答中国語まったくわからない…

Nokogiriを使う

XPathがいまいち馴染めなくて使いかたがよくわからなかったNokogiriをまた使ってみる。 よく読んだらcssセレクタも使えるみたいなので、XPathよりはまだそっちのほうが馴染みがあるので今度からその方向で。 Nokogiri使い方とか スクレイピングのためのNokog…

windowsのコマンドプロンプトでrubyのUTF-8文字列が壮絶に化ける件

ぐぐるとレジストリにMSゴシックとかのフォント入れてchcp 65001しろとかいろいろ書いてあって試してみたけどいまいち効果があったのかわからなかったけど、これ試したら一発だった。 OSとRubyスクリプトの文字コードが異なる場合の対策 | もっとクールにプ…

rubyで初めて作ったやつ

見よう見まねで作ったのgithubに上げてみたけど、readmeってmdって拡張子にしないと表示されないのpushしたあとで気づいたけどすべては後の祭りっぽい。 https://github.com/tamakin/closed 勉強になる。

optparse

optparseの参考になる使い方をgithubでfollowしてるひとのソースいろいろみてたんだけど勉強になった。https://github.com/Shinpeim/Gatchaman/blob/master/bin/gatchan def help warn "usage: #{$0} input_file [-r document_root] [-c current_directory] …

gemとかでコマンド実行するときに--helpとかするとUsageなんちゃらとか出るアレをしたい

ruby argv parseとかでぐぐるとOptionParserを使うといいっぽい。 ここがすごいわかりやすい。 http://d.hatena.ne.jp/zariganitosh/20100210/1265785723 --helpとか--versoinはdefaultで実装されているらしい。 やってみる。 require 'optparse' OptionPars…

yamlに書いたhashのキーをシンボルでアクセスしたい

設定をyamlで書いてて、rubyのclassで設定ファイルがなかったらdefalutにベタで書いておいたhashを使うみたいなコード書いてたんだけど、hashのキーをシンボルにしてたのでyamlから読んだ場合まったくみつからないって現象が起きた。 - wrestlername: アント…

テスト便利

rubyの勉強しながらRSpecの書き方もよくわからないまま見様見真似で書いてるんだけど、テストするときはテスト流せばいいのですごい便利。 あたりまえのことなんだけど、同じ事をVSでやれって言われてもやれないことはないんだろうけどまあだいたいできない…

rubyで祝日を求めるライブラリ

さがしたら3つくらい見つけた。 http://www.funaba.org/ruby.html#date2 https://github.com/komagata/holiday_jp https://github.com/masa16/holiday_japan 導入手順と使い方の単純さでholiday_japanを使ってみたけどすごいよかった。

第n◯曜日を求めたい

第2月曜とか第3火曜とかを求めたいので調べた。 http://jurakudai.blog92.fc2.com/blog-entry-2.html class Date # 第n週目 def mweek (self.day + 6 + (self - self.day + 1).wday) / 7 end # 第n曜日 def mwday mw = mweek d = self - ((mw - 1) * 7) if s…

Windowsのコマンドプロンプトで文字化ける

UTF-8で書いてると壮絶に文字化けるので調べた。 http://d.hatena.ne.jp/wwwcfe/20101229/ruby19_encoding オプション -U を使うU はデフォルトの内部エンコーディングを UTF-8 にするオプションです ruby -U encoding_test.rb 勉強になる。

case式が変数に代入できる

なにでぐぐってたのか忘れたけどこのページみてたらcase文を変数に入れてたのでびびった。 http://bojovs.github.com/2012/04/24/ruby-coding-style/ kind = case year when 1850..1889 then 'Blues' when 1890..1909 then 'Ragtime' else 'Jazz' end やって…