Ruby
やってみた https://github.com/kimoto/nopasteとりあえずハマったことをメモ。このアプリはpostgresql addonを使っているんだけど app.jsonに "addons": ["heroku-postgresql:dev"]って書くと、heroku上ではちゃんと動いてるんだけど heroku buttonがなぜか…
最新のRubyが出てたので再構築しなおした。ついこないだ同じようなアップデートしたばっかだけど。こないだの記事 → 趣味サーバーで使ってるWEB系ソフトウェアをいろいろアップデートした - キモブロ 特に意味なし。趣味です。以下手順。 最新のRubyを入れる…
Sqale使ってみた。自作のgyazoサーバーを動かしてみる。 ユーザー登録 まずsqale.jpにいきユーザー登録する なんかGithubのOAuth?で認証できたのでこれでログイン。 公開鍵登録 まぁ公開鍵なのでガンガン公開しちゃうけど、こんな感じで設定した。 いわゆる.…
@tokuhirom すごいざっくりですが、例えばユーザーに紐付く何かしらのアイテムを「消す」という操作が $user->items->del とかできたり、その集合がソート済なのか否かがとれたりしたら嬉しいのかなという感じです。— かるぱねるらさん (@karupanerura) 12月…
たとえばchannelsってテーブルがあったとして、ChannelってModelを作った場合で考える channels = Channel.all channels.each do |ch| ch.name end みたいな感じのコードを書いたとしても実際に発行されるSQLは以下のようになる kimoto ~/tmp[27601]% !ru ru…
まぁ言語としては互換か。実際の運用を考えるとiconv使ってるコードは結構あると思うので実質そこのfixは必要かなという感じ。kconvとかも使えない require 'kconv' "あいうえお".tosjis とかなってるコードを String#encodeで置き換えていく感じ 補足: もと…
$ rbenv install 2.0.0-dev $ rbenv global 2.0.0-devでいけた。処理速度のベンチマークをしてみたけど、簡単な四則演算とクラス生成が早くなるわけではなかった。まぁリリースノート見ろよって感じではあるけど。たぶんrequireのあたりの効率化が行われた感…
developmentとproductionでファイルのデプロイ先を変更したりする方法を探していたのだけど、multistageプラグインという名前の通りの機能によって実現出来た。(通常だと環境変数の値でproductionとdevelopmentの切り替えを行う) その他細かいメモ rbenvが…
Net::HTTP.get URI.parse("http://www.google.co.jp") 追記: って思ったけどこれだとredirectのとき追尾してくれないのか。open-uriだとリダイレクトしてたときは自動でリダイレクト先のコンテンツ持ってきてくれる
それがまさにretry-handlerですねー ssig33.com - text/失敗したら繰り返すやつ Proc.new{ open(url) }.retry(:max => 3) https://github.com/kimoto/retry-handler
Modelはそもそもいろんな案件で使い回しが聞く、これは当たり前である。しかし俺がいってるのはそういうことではなくて、ActiveRecordとDataMapperではその取り回し、扱いやすさに大きな差があって、DataMapperの方が扱いやすいということを書いている。Acti…
だから気軽に別案件に移動させることができるのがよい。何よりわかりやすい。だから俺はDataMapperが好きだ。DataMapperはコードの側に主導権がある。データベース定義はコードにとっての一つの仮の姿でしかない。RubyのDataMapperの良さ - キモブロ あとは…
https://github.com/kimoto/csvmapper/blob/master/Changes 0.04 - Added #columns method columns :first_name, :last_name, :age - Added #grouped_by method grouped by field key - Added #where method arel style finder (testing) columnsはまとめて…
class MyCSV < CSVMapper column 定義の羅列 column 定義の羅列 column 定義の羅列 column 定義の羅列 column 定義の羅列 column 定義の羅列 # このモデルが持っているべき処理 def method # columnはインスタンス変数にバインドされてるのでそれ使えば良い …
CSVMapperみたいな感じでXML(or HTML)をRubyのクラスにしたい。と思ってたらhappy mapperってのがすでにあってhttp://happymapper.rubyforge.org/ class User include HappyMapper element :id, Integer element :name, String element :screen_name, String…
単なる言語の機能を利用した言語内DSLだからなにもしないでもこんなかんじだな require 'csvmapper' class MyCSV < CSVMapper end MyCSV.delimiter '<>' MyCSV.column :name, 0, :string MyCSV.column :hash, 1 MyCSV.column :host, 2 MyCSV.column :contact…
なんかマジで簡単になった。最近ライブラリ作りまくってるのでその全体的な手順をメモ。 Ruby1.9の前提で書きますが、1.8でも出来るかもですね。Rubygemsの認証周りについては記載してませんが、画面に表示される英文読んでたら楽ショーで出来る思います gem…
CSVの1行目が列の説明になってるCSVあるじゃないすか。ああいうのは自動でフィールドに変換できるようになってますたとえばこういうやつ。日本語も大丈夫 first name,last name,age,住所 takumi,kimoto,99,ウインドウズ みたいな感じのを読み込むときに、has…
まだもうちょい作りこみたいのでリファクタリングはあとの課題。 とりあえずめっちゃ使いやすい感じにしたい。ローカルにある次期バージョン0.04だと以下の機能を実装済みで ActiveRecordのarelみたいな感じで扱えるようにした csv = MyCSV.load_file("/path…
# encoding: utf-8 require 'csvmapper' require 'cgi' class YPIndex < CSVMapper before_filter do |v| CGI.unescapeHTML(v) if v end delimiter '<>' column :name, 0, :string column :hash, 1 column :host, 2 column :contact, 3, :uri column :genre,…
社内IRCでも話題になっていたけど0.51だと大丈夫、なので0.51を使うようにします。そしてRubyにはbundlerというまともなバージョン管理の仕組みがあるのでそれを使いますカレントディレクトリにGemfileを作成 gem 'foreman', '0.51'とします。すると $ bundl…
https://github.com/kimoto/csvmapper Usage require 'csvmapper' class MyCSV < CSVMapper column :name, 0, :integer column :ipaddr, 1, :ipaddr column :file_path, 2, :pathname column :time, 3, :time end p MyCSV.load("name1,127.0.0.1,./tmp/path/…
https://github.com/kimoto/retry-handler/blob/master/Changes File.method(:read).retry("./not_found.txt", :accept_exception => StandardError, :logger => Logger.new(STDERR)) こんな感じのが出来るようになった
俺の前に作ったproc-cacheというモジュールを最近また使い始めてるけどまじで便利や。retry-handlerぐらい便利だな。 https://github.com/kimoto/proc-cache これはProcの実行結果を一定期間キャッシュしてくれるというもの。なんていうかわかりやすいんだよ…
なんかgoogle analytics簡単につかえるgemあったんで使ってみた。 require 'garb' username = ENV['GARB_USERNAME'] # メアド password = ENV['GARB_PASSWORD'] # パスワード property_id = ENV['GARB_PROPERTY_ID'] # UA-*** って文字列 Garb::Session.logi…
$ gem install open_gem $ gem open -l nokogiri # VISUAL or EDITORがnokogiriのディレクトリを編集状態になる -lでlatest versionって意味になる。-lつけないと複数バージョンあったときは どのバージョンにするかの選択肢が表示される
https://github.com/eval/csv-omg インストール gem install csv-omg 使ってみる require 'csv-omg' class User include CsvOmg col :first_name, 'First Name' col :last_name, 'Last Name' col :age, 'Age' end p users = User.parse(File.read("./test.cs…
とりあえず今回利用するCSVさんはこちら First Name,Last Name,Age John,Doe,27 Jane,Doe,26 Bat,Man,52 インストール $ gem install csv-mapper 使ってみる require 'csv-mapper' results = CsvMapper.import('./test.csv') do start_at_row 1 [first_name,…
Steamのアカウントで外部サイトで認証できる仕組みを試しに作ってみた。TF2のOutpostだかなんだかあのへんのトレードサイトでも使われてるやつね。一応動くデモ http://kymt.me:8888/ ソースコード https://bitbucket.org/kimoto/oidon/srcomniauthのプラグ…
Chainable Lazy Hashを生成してくれるのか。何これカワイイ require 'hashie' c = Hashie::Clash.new c.where(:abc => 'def') p c # => {:where=>{:abc=>"def"}} c = Hashie::Clash.new c.where(:abc => 'def').where(:hoge => 'fuga') p c # => {:where=>{:…