Ruby

【Rails4】kaminariをAPIで利用する

ページネーション用Gemで有名なkaminari。 ただ、使い方を調べてもAPIでの利用方法が見つからなかったので記載。前提 サンプルとしてTodoをJSONで渡すAPIを実装下記Gem導入済み ・kaminari ・active_model_serializersmodelの出力フォーマットをactive_model…

【Rails4】before_actionに引数を渡す

以下の様にbefore_actionに引数を渡した状態で定義してもエラーとなる。 before_action :test('hogehoge') これは以下の様に修正することで解決できる。 before_action -> { test('hogehoge') } フィルターを設定したい場合は以下の様に追記。 before_action…

特定フォーマットのデータを生成する

JSON、YAML、CSVと設定ファイルには様々なフォーマットのデータが使われる。 Rubyでは特定フォーマットのデータを手軽に扱えるらしいので実際にやってみる。 module Converter #YAMLに変換 def _yaml require 'yaml' YAML.dump(self) end #JSONに変換 def _j…

オープンクラスが何気に便利

Rubyでは既存クラスに対して動的に拡張を行うことができる。 ちょっとした機能を追記する際にクラスを継承して新規にクラスを生成するよりも 既存のクラスに新しく定義を追加してやった方がシンプルで良い。ということでごく簡単なサンプルで遊んで見る。 cl…

クラスインスタンス変数

クラスインスタンス変数について纏めてみた。 Rubyの変数関連で結構ややこしい扱いのため、理解するのに苦労するポイントだと思う。 まず、クラスインスタンス変数とは何かだけど 変数はクラスの名前空間で定義される 継承の対象とならない クラスメッドから…

Rubyで外部コマンド

Rubyは外部コマンド実行をサポートしているらしい。 それも結構簡単に呼び出せるらしいので、やってみた。 def command_called puts :START system('uname') puts :END end command_called #START #Darwin #END 簡単。 system以外にも呼び出し方はあるらしい…

インスタンス変数とクラス変数

インスタンス変数とクラス変数の違いで悩んだので実験してみた。比較しやすいように内部変数がクラス変数かインスタンス変数かの違い以外は 同じ構造のクラスを作り、同じ様にメソッドをCallしてみる。 class Instance def changeInstanceValue(inputStr) pu…

selfの暗黙的な参照について

Rubyのselfで軽く詰まったのでメモ自身の所属するインスタンスに対してアクセスが可能になる所謂 this の様な機能。 基本的には暗黙的な参照を行うわけだが案外落とし穴になったりする。 class People attr_accessor :name attr_accessor :age def set_name(…

MACでRubyの開発環境構築

MACでRubyの開発環境を構築する機会があったのでメモ。 前提条件 HomebrewがInstall済み Homebrewでrbenvをインストール brew install rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile echo 'if which rbenv > /dev/null; then eval …