Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

2014-06-01から1ヶ月間の記事一覧

Ruby on Rails | Validation | validates_associated

概要 validates_associated 詳細 ActiveRecordで、関連するテーブルとともに正当性をチェックしたい場合に validates_associatedを利用します、 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title"…

Ruby on Rails | Validation | valid? invlid?

概要 valid? invlid? 詳細 ActiveRecordで、validation設定時にvalid? => 現状の設定値が正しいかどうか真偽値で返却(正しい場合に true) invalid? => 現状の設定値が誤っているかどうか真偽値で返却(誤っている場合にtrue) サンプル テーブル定義 CREAT…

Ruby | Module | nesting

概要 Module.nesting -> [Class, Module] 詳細 このメソッドを呼び出した時点でのクラス/モジュールのネスト情報を配列で返却 サンプルコード require 'tbpgr_utils'require 'tbpgr_utils' module HogeModule class HogeClass def hoge Module.nesting end e…

Ruby | Module | constants

概要 Module.constants -> [Symbol] 詳細 呼び出した時に参照可能な定数名の配列を返却。 サンプルコード require 'tbpgr_utils' class Hoge CONST1 = 1 CONST2 = "hoge" class InnerHoge INNER_CONST = 1 end def check_module_const(const_name) Module.co…

Ruby | Method | unbind

概要 Method#unbind -> UnboundMethod 詳細 self のレシーバとの関連を取り除いた UnboundMethod オブジェクトを生成して返却。 サンプルコード require 'tbpgr_utils' class Hoge def hoge "hoge" end end h1 = Hoge.new m1 = h1.method(:hoge) bulk_puts_e…

Ruby on Rails | ActiveModelの規約

概要 ActiveModelの規約 詳細 ActiveModelは、いくつかの規約を前提とすることで成り立っています。 クラス名・テーブル名 クラス名は対象の単数形のアッパーキャメルケース テーブル名は対象の複数形のスネークケース 主キー キー名を id とする 外部キー …

Ruby | Method | to_proc

概要 Method#to_proc -> Proc 詳細 self を call する Proc オブジェクトを生成して返却。 サンプルコード 1.rb require 'tbpgr_utils' class Hoge def hoge1 "hoge" end def hoge2(param1, param2) [param1, param2]*2 end end h = Hoge.new m1 = h.method(…

Ruby | Method | source_location

概要 Method#source_location -> [String, Fixnum] | nil 詳細 ソースコードのファイル名と行番号を配列で返却。 対象オブジェクトがnativeの場合はnilを返却。 サンプルコード 1.rb require 'tbpgr_utils' require './2' class Hoge1 def hoge; end end h1 …

Ruby | Method | receiver

概要 Method#receiver -> object 詳細 このメソッドオブジェクトのレシーバを返却。 サンプルコード require 'tbpgr_utils' class Hoge attr_reader :id def initialize(id) @id = id end def hoge; end end class Hige attr_reader :id def initialize(id) …

Ruby on Rails | Asset Pipeline

概要 Railsが3.1から採用している *Asset Pipeline* について。 Asset Pipelineとは? Asset Pipelineは以下を行っています CoffeeScript や SCSS をコンパイルする *js/css* などがそれぞれ複数合った場合に *application.js/.css* に結合する *application…

Ruby | Method | owner

概要 Method#owner -> Symbol 詳細 このメソッドが定義されている class か module を返却。 サンプルコード require 'tbpgr_utils' module Hogeable def hogeable; end end class Hoge include Hogeable def hoge; end end h = Hoge.new bulk_puts_eval bin…

Ruby | Method | name

概要 Method#name -> Symbol 詳細 メソッド名を返却。 サンプルコード require 'tbpgr_utils' class Hoge %i{hoge1 hoge2 hoge3}.each do |m| define_method m do |m| puts "#{m} is called" end end end h = Hoge.new h.public_methods(false).each do |m| …

Ruby | Method#arity

概要 Method#arity -> Fixnum 詳細 メソッドが受け付ける引数の数を返却。 ただし、メソッドが可変長引数を取る場合は負の数を返却します。 サンプルコード require 'tbpgr_utils' class Hoge def hoge1;end def hoge2(a);end def hoge3(a, b);end def hoge4…

Ruby | Method#==

概要 Method##== 詳細 自身と other が同じインスタンスの同じメソッドを表す場合に true を返却。 そうでない場合に false を返却。 サンプルコード require 'tbpgr_utils' class Hoge1 def hoge 'hoge' end end class Hoge2 def hoge 'hoge' end end h1 = …

Ruby | Method | [] / call

概要 Method#self[*args] -> object Method#call(*args) -> object Method#call(*args) { ... } -> object 詳細 メソッドを呼び出します。 []形式は通常のメソッド呼び出しに近くなるように用意されたものです。 サンプルコード require 'tbpgr_utils' class…

PHP | array_key_exists

PHP

概要 array_key_exists ( string $options [, array $longopts ] ) 詳細 array_key_exists は連想配列にキーが存在するか確認します詳細はサンプルにて。 サンプル #!/usr/bin/env php 1, 'key2' => 2, 'key3' => 3 ); print_r(array_key_exists('key1', $a…

PHP | getopt

PHP

概要 getopt ( string $options [, array $longopts ] ) 詳細 getopt はコマンドライン引数のリストからオプションを取得します。$optionsmの指定は、 単一文字 => 値を受け付けない 単一文字+コロン1個 => 値を受け付け、必須 単一文字+コロン2個 => 値を…

Ruby | MatchData | values_at

概要 MatchData#values_at -> [String] 詳細 正規表現中の n 番目の括弧にマッチした部分文字列の配列を返却。 0 番目はマッチした文字列全体を表す。 サンプルコード require 'tbpgr_utils' "-----hogehigehage@@@@@" =~ /(h\wge)(h\wge)(h\wge)/ bulk_puts…

Ruby | MatchData | to_s

概要 MatchData#to_s -> [String] 詳細 マッチした文字列全体を返却 サンプルコード require 'tbpgr_utils' "-----hogehigehage@@@@@" =~ /(h\wge)(h\wge)(h\wge)/ bulk_puts_eval binding, <<-EOS $~ $~.to_s EOS __END__ 下記はTbpgrUtils gemの機能 bulk_…

Git | git reset で各種取り消し操作

Git

概要 git reset で各種取り消し操作 詳細 git reset で各種取り消し操作が可能です。 --soft オプション ワーキングツリーとインデックスはそのままでHEADの位置を変更します。オペレーション hoge.txtを追加、ステージング、コミット hige.txtを追加、ステ…

Git | git commit --amend でひとつ前のコミットをやりなおす

Git

概要 git commit --amend でひとつ前のコミットをやりなおす 詳細 1つファイルが抜けていた。 コミットコメントを間違えた。 なんていうときに、 git commit --amend を利用することで、ひとつ前のコミットをやり直すことができます。 コミットコメントだけ…

Ruby | MatchData | to_a

概要 MatchData#to_a -> [String] 詳細 $&, $1, $2,... を格納した配列を返却 サンプルコード require 'tbpgr_utils' "hogehigehage@@@@@" =~ /(h\wge)(h\wge)(h\wge)/ bulk_puts_eval binding, <<-EOS $~ $~.to_a EOS __END__ 下記はTbpgrUtils gemの機能 b…

Git | リベース

Git

概要 リベース 詳細 マージと異なり、履歴が一本化されます。 前提 下記のような操作をするところから開始 masterからtopicブランチを作成 topicブランチで1つの修正を行いコミットをする(修正topic1とする) masterブランチで1つの修正を行いコミットをする(…

Git | ブランチがマージ済みかどうか確認する

Git

概要 ブランチがマージ済みかどうか確認する 詳細 前提 以下のブランチがある $ git branch * master merged no_merged mergedはマージ済み no_mergedは未マージ マージ済みのブランチを表示 $ git branch --merged * master merged 未マージのブランチを表…

Git | ファイルの移動

Git

概要 ファイルの移動 詳細 git では以下の2種類の方法でファイルを移動します。 $ git mv from_file to_fileこれは、以下と同じです。 mv from_file to_file git add to_file サンプル(git mv) $ git init $ echo hoge > from_file $ git add -A $ git commi…

Git | ファイルの削除

Git

概要 ファイルの削除 詳細 git では以下の2種類の方法でファイルを削除します。 $ git rm remove_fileこれは、以下と同じです。 rm remove_file git add remove_file サンプル(git rm) $ git init $ echo hoge > hoge.txt $ git add -A $ git commit -m "add…

Git | 3つの領域

Git

概要 3つの領域 詳細 Gitは3つの領域を持ちます。 ワーキングツリー ステージングエリア リポジトリ(git directory) ワーキングツリー 作業領域です。 実際に、ファイルを修正・保存します。ワーキングツリーはワーキングディレクトリとも呼ばれます。 ス…

Git | バージョン管理ツールの比較

Git

概要 バージョン管理ツールの比較 詳細 手動 日付やバージョン番号を付与したディレクトリを手動で管理する手法。 コピペミス、作成し忘れ、間違って削除など様々なリスクを抱える非効率な管理手法。 しかし、現実にまだこの手法に頼るシステム開発現場が少…

Ruby | MatchData | string

概要 MatchData#string -> String 詳細 マッチ対象になった文字列の複製を返却 サンプルコード require 'tbpgr_utils' "hogehigehage@@@@@" =~ /(h\wge)(h\wge)(h\wge)/ bulk_puts_eval binding, <<-EOS $' $~.string EOS __END__ 下記はTbpgrUtils gemの機…

Ruby | MatchData | regexp

概要 MatchData#regexp -> String 詳細 元になった正規表現オブジェクトを返却。 サンプルコード require 'tbpgr_utils' "@@@@@hogehigehage" =~ /(h\wge)(h\wge)(h\wge)/ bulk_puts_eval binding, <<-EOS $~ $~.regexp EOS __END__ 下記はTbpgrUtils gemの…