コピペコードで快適生活

明日使えるソースを自分のために

Ruby

Rubyで名詞の単数形・複数形を変換する

たまにやりたくなる。いつもメソッド名忘れているけど。 require 'active_support' 'user'.pluralize # => users 'users'.singularize # => user

Rubyでメソッドの定義場所を確認する

gem pry を使うと、$で簡単に確認できる $ "".present? # From: /home/kinosuke/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.7/lib/active_support/core_ext/object/blank.rb @ line 23: # Owner: Object # Visibility: public # Number of lines:…

RailsConsoleでサクッとメール送信

本番環境でメール送信チェックとかするとき用に。 ActionMailer::Base.mail(to: "test@example.com", from: "test@example.com", subject: "題名", body: "本文").deliver

RubyでHTTPリクエストを送る

たまにしか使わなくてよく忘れるのでメモします。 require 'net/http' require 'uri' uri = URI.parse("http://kinosuke.hatenablog.jp/") # when get request req = Net::HTTP::Get.new("#{uri.path}?#{uri.query}") # when post request # req = Net::HTTP…

Rubyでログを強制出力する

require 'logger' _log = Logger.new('/tmp/debug.log') _log.info("#{ログ出力したいもの}") こちらを参考にさせていただきました http://dev.classmethod.jp/client-side/language-client-side/output_log_using_logger/

RubyでHashの要素に.(ドット)でアクセスしたい

Struct使えば楽にできるみたい。 hash = {hoge: 'fuga'} obj = Struct.new(*(hash.keys)).new(*(hash.values)) obj.hoge # => 'fuga'

RailsのArelの使い方

RailsでArelを使うときは、下記サイトをいつも参照させていただいていましたが、自分メモ用として転載します。 メモ || Arelのwhere系メソッド一覧 User.w... User.where(User.arel_table[:name].eq("aa")).to_sql # => SELECT "users".* FROM "users" WHERE…

RubyでUTF-8変換時にUndefinedConversionが出た件

shift_jisで書かれたCSVをUTF-8に変換して取り込み処理をするところで、Encoding::UndefinedConversionError が吐かれてた。 str.encode('utf-8', 'shift_jis') # => Encoding::UndefinedConversionError: "\x87@" from Shift_JIS to UTF-8 なんでだと思って…

Rubyで短縮URL用の文字列生成

短縮URL機能を自前で作らないといけないんだけど、その文字列の生成アルゴリズムをどうするかなーってところで、 Flickrの短縮URL用にRubyでbase58実装 | EasyRamble こちらで紹介されているソースをほぼそのまま利用させてもらいました。ただ今回は、ひとつ…

rbenvでRubyをインストール~gemsetの設定

Rubyインストール # rbenv をインストール(clone)する git clone https://github.com/sstephenson/rbenv.git ~/.rbenv # bash_profile 設定追加 # vim ~/.bash_profile export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" # 上記設定の再読み込…

Rails×SES バウンスメール(不達メール)対策

「SESで不達メールが多いから、対策してくれなかったらSES止めるよ」って過去にAWSから言われたことがあって、そのときの対応メモを書きだしてみた。対応の基本的な流れ SESは不達メールがあった場合に特定のURLに対してリクエストをjson付きで投げてくれる…