Ruby

Mechanizeでページ遷移しながらスクレイピング

ちょっとダルいポイントが有ったのでメモ程度に。 スクレイピング対象サイトとスクレイピングの流れは ページャで何ページか一覧ページがある 一覧ページのタイトルをクリックすると詳細ページが見れる 詳細ページの一部を使用 また他のタイトルをクリックし…

CapybaraでE2Eテストを始める

WAFに依存しない形でCapybaraを導入してE2Eテストを書けるようになるところまでの導入です。テストの実行自体はRSpecを使います。 $ mkdir capybara-test $ cd capybara-test 適当にGemfileを作ってbundle installで入れます # Gemfile source "http://rubyg…

Rubyのワンコールブロックがイケメンな話

またメタプログラミングRubyネタ。小ネタです。 著者がRubyは簡潔にかけていいけどイケてないと言っているのが name = ["i", "my", "me"] name.map{|n| n.capitalize } #=> ["I", "My", "Me"] って感じのが、パイプとか中括弧とかでブロック作ってややこしい…

Rubyのメソッドの引数あれこれメモ

配列引数 複数の引数を1つの配列として扱うにはアスタリスクをつける def my_mthod(*args) args end my_method(1, 'hoge', 'three') #=> [1, 'hoge', 'three'] キーワード引数 Ruby 2.0からの機能(同じことは1.9系とかでもできるがハッシュを展開しないとダ…

Rubyでxls(Excelファイル)を簡単にパースする方法

すごく簡単でドキュメント通りな内容なのですが、非常に便利だったのでメモ。 その名もSpreadsheetというgemを使います。 https://github.com/zdavatz/spreadsheet/blob/master/GUIDE.md # Gemfile gem 'spreadsheet' # vim hoge.rb Spreadsheet.client_enco…

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

Object#extend module MyModule def my_method; 'hello'; end end を使いたいときに class MyClass class << self include MyModule …. end end ↓ class MyClass extend MyModule …. end これでもMyClassの特異メソッドとしてmy_methodを呼べる。 ( MyClass.…

RSpecでsessionを使用したテスト(ログイン機能)

内容としてはajaxのテストを書こうとして、それにはsessionが必要というような場合です。(渡しの場合、ログインしていないとajax通信ができないという仕様でした。) ここけっこう困って、前回こういったsessionを使うテストを実装した際にはgrapeというRai…

Ruby(Rails)からExcelで文字化けしないCSVファイル作成

CSVファイル作成でハマったのでメモ。 今回作ろう思っていたのはリンクになっているボタンを押したらCSVファイルがダウンロードされるという単純なものです。 HTML載せようと思いましたがはてブ内での書き方わからないので省略、、 バージョンはRuby2.0, Rai…

【CentOS6.4】はじめの環境構築 ... plenv, rbenv, tmux, oh-my-zsh

サーバーをいちからやり直さなければならない機会があったのでメモ。 いつもやってる自分の設定をとりあえず入れようかなという感じです。 まず最低限必要な物をyumで入れちゃう。 # yum install -y gcc make wget git zsh openssl-devel # useradd homepage…

Ruby基礎文法のメモ [1]

Rubyの基礎を振り返ろうと思って逆引き辞典をちょっと写経しました。 いままで使ってなかったものとか、簡単にメモです。 2つ飛ばしでループ。aからbの間を2つ飛ばしの場合。 a, b= 2, 10 a.step(b, 2) do |i| p i #=> 2, 4, 6, 8, 10 end どこからどこま…