README.md in tanemaki-0.1.1 vs README.md in tanemaki-0.1.2

- old
+ new

@@ -1,6 +1,7 @@ [![Build Status](https://travis-ci.org/mmmpa/tanemaki.svg)](https://travis-ci.org/mmmpa/tanemaki) +[![Coverage Status](https://coveralls.io/repos/mmmpa/tanemaki/badge.svg?branch=master)](https://coveralls.io/r/mmmpa/tanemaki?branch=master) # Tanemaki Tanemaki(たねまき)はRuby on Railsの`rake db:seed`で使われるseed.rbを整理するために書かれました。 @@ -58,34 +59,61 @@ :yomigana => :string, :created_at => :datetime, :updated_at => :datetime } ``` + `create`に必要なキーワード引数の**キーを一行目に書いたCSV**(例えば area_code.csv)を用意。 + ```csv ken_code,sityouson_code,tiiki_code,ken_name,sityouson_name1,sityouson_name2,sityouson_name3,yomigana 27,0,27000,大阪府,,,,おおさかふ 27,100,27100,大阪府,大阪市,,,おおさかし 27,102,27102,大阪府,大阪市,,都島区,みやこじまく 27,103,27103,大阪府,大阪市,,福島区,ふくしまく # 略 27,128,27128,大阪府,大阪市,,中央区,ちゅうおうく ``` + ゴー。 + ```ruby AreaCode.tanemaki('area_code.csv').seed ``` + 内部的には各行においてこのようなことが起こります。 + ```ruby AreaCode.create({ken_code: 27, sityouson_code: 102, tiiki_code: 27102, ken_name: ,'大阪府', sityouson_name1: ,'大阪市', sityouson_name2: '', sityouson_name3: '都島区', yomigana: 'みやこじまく'}) ``` 返り値は`create`の返り値の`Array`。 ## create以外を使う ぼくはどちらかというと`create!`が好きなので ```ruby AreaCode.tanemaki('area_code.csv', method: :create!).seed ``` + +## 名前無し引数に使う + +こういうのです。 + + FactoryGirl.build(:user, :invalid, name: 'MMMPA', name_reading: 'ンンンパ') + +名前無し引数のカラムの名前を省いたfactory.csvを用意します。 + +```csv +,name,name_reading, +:user,MMMPA,ンンンパ,:invalid +:user,o296sm,おふくろさま,:valid +``` + +こうすると1列目([0])と4列目([3])は普通の引数としてメソッドに渡されます。カラムの位置にかかわらず、出現順に引数の頭に回されます。 + +突然ですが`evaluate`に渡した名前のカラム、もしくは名前無しカラムのインデックスと一致するカラムは式として評価されます(この場合`Symbol`になる)。 + + FactoryGirl.tanemaki('factory.csv', method: :build).evaluate(0, 3).seed + ## select CSVから必要なカラムのみ使います。 ```ruby