Skip to content

Instantly share code, notes, and snippets.

@pinzolo
pinzolo / scroll_to_bottom.js
Created January 28, 2016 08:57
overflow-y な コンテナに対してスクロールを一番下に持ってくる
// AngularJS なら angular.element('#target')
var target = jQuery('#target');
target.scrollTop(target.find('.child:last').position().top);
@pinzolo
pinzolo / format_for_js.rb
Last active January 18, 2016 06:19
new Date(datetime_text) した時にChrome, Firefox, IE でパース可能な形式にする
module TimeWithZoneHelper
def format_for_js1(time_with_zone)
time_with_zone.to_s.gsub(/-/, '/')
end
def format_for_js2(time_with_zone)
time_with_zone.to_json.gsub(/\"/, '')
end
end
@pinzolo
pinzolo / pinzolo.util.ExCollectors.java
Last active March 3, 2016 07:36
わりと使える集計メソッド郡
package pinzolo.util;
import static java.util.stream.Collectors.*;
import java.math.BigDecimal;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collector;
import java.util.stream.Collectors;
@pinzolo
pinzolo / DistinctCountingCollector.java
Last active December 24, 2015 02:12
重複要素を考慮した Collector クラス
package pinzolo.util.collectors;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import java.util.function.Supplier;
@pinzolo
pinzolo / stub_constant.rb
Created December 16, 2015 10:02
外部gemなしに定数のstub化したい場合
class Foo
BAR = 'bar'
end
class FooTest < ActiveSupport::TestCase
setup do
@original = Foo.send(:remove_const, :BAR)
Foo.const_set(:BAR, 'new_value')
end
@pinzolo
pinzolo / assert_change.rb
Created December 16, 2015 01:32
expressionの結果が変化したかどうかを検証するassertion
def assert_change(expression, message = nil, &block)
exp = expression.respond_to?(:call) ? expression : ->{ eval(expression, block.binding) }
before = exp.call
yield
error = "#{expression.inspect} didn't change"
error = "#{message}.\n#{error}" if message
assert_not_equal before, exp.call, error
end
def assert_not_change(expression, message = nil, &block)
@pinzolo
pinzolo / 01_ajax-upload.html
Last active December 14, 2015 03:18
jQuery使ってAJAXでドラッグアンドロップによるファイルアップロード。主にRails用
<div id="drop-area" class="file-drop-area">
<input id="upload-file" type="file" class="hidden"/>
<button id="select-file" class="btn btn-primary">ファイルを選択</button>
</div>
@pinzolo
pinzolo / confirmations_controller_test.rb
Last active December 10, 2015 07:28
確認メールの有効期限を設定した場合のテスト
require 'test_helper'
class Users::ConfirmationsControllerTest < ActionController::TestCase
setup do
@request.env['devise.mapping'] = Devise.mappings[:user]
@user = create(:user)
end
test '登録して30日以内なら確認可' do
@pinzolo
pinzolo / passwords_controller_test.rb
Created December 10, 2015 06:04
パスワードリセットの有効期限を設定した時のテストコード
require 'test_helper'
class Users::PasswordsControllerTest < ActionController::TestCase
setup do
@request.env['devise.mapping'] = Devise.mappings[:user]
@user = create(:user)
end
test 'メールを送信して30分後まではトークンは有効' do
@pinzolo
pinzolo / devise_skip_reconfirmation.rb
Created December 10, 2015 06:03
システムでメールアドレスを変更しても変更メールを送信しない
def change_user_email(user)
user.email = '[email protected]'
user.skip_reconfirmation!
user.save
end
# テストコード
test 'ユーザーのメールアドレスを変更しても、メールが送信されないこと' do
assert_no_difference 'ActionMailer::Base.deliveries.size' do
change_user_email(@user)