{|sum, i| sum + i } p((1..10).inject(0) {|sum, i| sum + i }) p (1..10).inject(0) do |sum, i| sum + i end p((1..10).inject(0) do |sum, i| sum + i end) エッジケースで挙動が変わる事もある
# トークナイズだけを担うモジュールがある words = Tokenizer::Whitespace.call( "this is a list of cool words!") ... # トークンのフィルタリングだけを担うモジュールがある words = TokenFilter::Stopword.call(words)
test_add_custom_stopword_path temp_stopwords = Tempfile.new('xy', "#{File.dirname(__FILE__) + "/"}") temp_stopwords << "this words fun" temp_stopwords.close temp_stopwords_path = File.dirname(temp_stopwords) temp_stopwords_name = File.basename(temp_stopwords.path) TokenFilter::Stopword.add_custom_stopword_path(temp_stopwords_path) words = Tokenizer::Whitespace.call("this is a list of cool words!") TokenFilter::Stopword.language = temp_stopwords_name # ここまで全て前準備で、以下が本当にテストしたい機能の呼び出し部 words = TokenFilter::Stopword.call(words) assert_equal %w(list cool !), words end
をエディタで開いてみる def invalid_credentials logger.warn "Failed login for '#{params[:username]}' from #{request.remote_ip} at #{Time.now.utc}" flash.now[:error] = l(:notice_account_invalid_credentials)
app/models/user.rb def self.valid_notification_options(user=nil) # Note that @user.membership.size would fail since AR ignores # :include association option when doing a count if user.nil? || user.memberships.length < 1