u16suzuの blog

日々学んだことのメモブログです。

2017-02-01から1ヶ月間の記事一覧

リトライ処理のメモ

Rubyでリトライ処理をする際のテンプレ。再帰を使って綺麗に書ける。 class RetryException < StandardError; end def foo p Time.now raise RetryException end def retry_foo( rc = 3) begin foo rescue RetryException => ex # RetryException以外はretry…

Object#methodについてメモ

この書き方ができるの知らなかった. # レシーバがself. (Object#methodはレシーバとメソッドの実態を封入する.) [1,2,3].each( &self.method(:puts) ) [1,2,3].each( &method(:puts) ) # selfを省略できる [1,2,3].each{|i| puts(i) } こちらはたまに使う. #…

MySQLのパーティションのメモ

各パーティションのサイズを確認 check size of each partitions mysql> use information_schema; mysql> select partition_name,data_length,index_length from partitions where table_name = 'entries'; entries テーブルのパーティション一覧を表示する …

定数を定義する

module Constants GOLD_DEFAULT = 100 ITEM_MAX_COUNT = 255 end p Constants::GOLD_DEFAULT, Constants::ITEM_MAX_COUNT # => 100 # => 255 p Constants.constants # => [:GOLD_DEFAULT, :ITEM_MAX_COUNT] 定数は初めだけ大文字であればよいのだが、全部大…

現在見ているページのmarkdown形式のリンクを生成するブックマークレット

javascript:(function(){prompt('%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84',%20%20%20%20%20'-%20['%20+%20document.title.replace(/([\[\]])/g,'\\$1')%20+%20']'%20+%20'('%20+%20location.href%20+%20')');})…

実引数側でのアスタリスク(*)の使用例メモ

実引数側でのアスタリスクの使用例メモ。配列オブジェクトを展開してメソッドの各引数に入れてくれる。便利。 def foo(name, val) "#{name}: #{val}" end ar = [[:a, 1], [:b, 2], [:c, 3]] ar.each do |elem| puts foo(*elem) # here end こちらの記事のsci…

scopeの使い方メモ

よくググるのでメモ scope :available, -> { where('deleted = false') } scope :available, -> { receivable.opened.showable } # 引数あり scope :find_by_friend_ids, -> friend_ids { where( target_id: friend_ids ) }

[キーワード引数] キーワード引数の使い方メモ

よく忘れるのでキーワード引数の使い方のメモ. 2.1からarg1のようにキーワード引数のデフォルト引数は省略できるようになった. def foo( arg1: , arg2: "arg2") puts "#{arg1} #{arg2}" end # 定義時に省略したarg1は呼び出し時には省略できない.(ArgumentEr…

enumのメモ

定義 class Log < ActiveRecord::Base enum reason: { login: 0, purchase: 1, finish_game: 2 } end 呼び出し 以下のように書いておくと、後から変更が必要になった時にわかりやすい pry(main)> Log::reasons[:login] => 0 全部欲しい場合 pry(main)> Log::…

Rubyのメタプログラミングメモ

Classをインスタンス化する時にHashで渡した値でInitializeするクラスのテンプレート class Person attr_accessor :name, :age, :address def initialize( hash={}) if block_given? yield( self ) else hash.each do |k, v| public_send("#{k}=", v) if res…

空白で区切って指定したフィールドの文字を取得

$ echo "1 2 3" | cut -d " " -f3 3 参考: フィルタを使用した文字列操作 2 | UNIX & Linux コマンド・シェルスクリプト リファレンス