2009-07-10
githubに初めてリポジトリを作成する際のチュートリアル
SSH公開鍵を作成する
使用しているパソコンにsshの公開鍵が無い場合は、新たに作成します。
rsaまたはdsaの鍵ペアを既に持っている場合は、このステップは省略します。
cd ~/.ssh ssh-keygen Generating public/private rsa key pair.   Enter file in which to save the key (/Users/username/.ssh/id_rsa): # press enter here   Enter passphrase (empty for no passphrase): # type in your passphrase here   Enter same passphrase again: # type your passphrase again   Your identification has been saved in /Users/username/.ssh/id_rsa.   Your public key has been saved in /Users/username/.ssh/id_rsa.pub.   The key fingerprint is:   30:93:77:c6:97:af:61:82:dc:ea:9b:6b:67:d4:1b:61 user@host  
公開鍵(ここではid_rsa.pubという名前のファイルとします)の内容を以下のようにしてクリップボードにコピーします。
cat id_rsa.pub | pbcopy
githubのアカウントのページを開き、「SSH Public Keys」の項目以下の「add another public key」をクリックし、コピーしてある公開鍵の内容をペーストします。
githubにリポジトリを作成する
http://github.com/repositories/newのページを開き、新しいリポジトリを作成します。
project name、description、homepage urlを必要に応じて記入し、Create Repositoryをクリックして新規リポジトリを作成します。
例
project name: sample
description: my sample repository
homepage url: http://d.hatena.ne.jp/femoco
リポジトリの作成が完了すると、githubが次の作業を指示してくれます。
以下のように表示されました。
Global setup:
Download and install Git
git config --global user.name "FeMoCo"
git config --global user.email email@address.hoge
Next steps:
mkdir sample
cd sample
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@github.com:femoco/sample.git
git push origin master
この指示に従い、リポジトリに載せるためのディレクトリを作成していきます。
ここでは、~/code/sampleというディレクトリ以下にファイルを置いていることにします。
cd ~/code mkdir sample cd sample git init touch README git add README git commit -m "first commit" git remote add github git@github.com:femoco/sample.git git push github master ここで公開鍵に対するパスフレーズを訊かれるので、設定したパスフレーズを入力します。
これで、作成したリポジトリにREADMEのみがpushされました。
githubをリモートリポジトリとして設定する
cd ~/code/sample emacs .git/config
作成したconfigファイルを以下のように編集します。
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true [remote "github"] url = git@github.com:femoco/sample.git fetch = +refs/heads/*:refs/remotes/origin/* push = refs/heads/master:refs/heads/master
githubにpushする
sampleディレクトリに何か新しいファイルを作成して、githubにpushしてみます。
cd ~/code/sample emacs sample.txt
sample.txtを以下のように編集してみます。
This is a sample text for github tutorial.
commitし、以下のようにpushします。
git push github master
以上で、githubにpushすることが出来ました。
Railsでcsvからfixturesを投入するには?
rake db:fixtures:load FIXTURES=fixture_file_name
で普通に読みこむことができます。
rake db:fixtures:loadは、読みこむファイルがyamlでもcsvでも、自動的に判別して読みこんでくれます。
fixtureデータとして使用するためのcsvの形式は以下の通りです。
- test/fixturesに、テーブル名.csvとして読みこむファイルを作成する。
- デリミタにはコンマ「,」を使用する。
- idフィールドは不要ですが、作成しても問題ない。
- 1行目にはフィールド名のヘッダを入れる。
具体例をメモしておきます。
例えば、日本の都道府県のテーブルを作成し、そこにデータを投入したい場合には以下のようにします。
先ず、テーブルとモデルを作成します。
テーブル名はprefecturesとし、フィールドはtitle:stringとpermalink:stringをもうけます。
script/generate model prefecture title:string permalink:string
これで、db/migrate以下に20090710012451_create_prefectures.rbのようなmigrationが生成されます。
このまま使っても良いのですが、t.timestampを削除しておきます。
以下のようになります。
class CreatePrefectures < ActiveRecord::Migration
def self.up
create_table :prefectures do |t|
t.string :title
t.string :permalink
end
end
def self.down
drop_table :prefectures
end
end
テーブルを作成します。
rake db:migrate
fixture用のデータの作成
test/fixtures以下にprefectures.csvというファイルを作成し、以下の内容を記入します。
id,title,permalink 1,北海道,hokkaido 2,青森県,aomori 3,岩手県,iwate 4,宮城県,miyagi 5,秋田県,akita 6,山形県,yamagata 7,福島県,fukushima 8,茨城県,ibaraki 9,栃木県,tochigi 10,群馬県,gunma 11,埼玉県,saitama 12,千葉県,chiba 13,東京都,tokyo 14,神奈川県,kanagawa 15,山梨県,yamanashi 16,長野県,nagano 17,新潟県,niigata 18,富山県,toyama 19,石川県,ishikawa 20,福井県,fukui 21,岐阜県,gifu 22,静岡県,shizuoka 23,愛知県,aichi 24,三重県,mie 25,滋賀県,shiga 26,京都府,kyoto 27,大阪府,osaka 28,兵庫県,hyogo 29,奈良県,nara 30,和歌山県,wakayama 31,鳥取県,tottori 32,島根県,shimane 33,岡山県,okayama 34,広島県,hiroshima 35,山口県,yamaguchi 36,徳島県,tokushima 37,香川県,kagawa 38,愛媛県,ehime 39,高知県,kouchi 40,福岡県,fukuoka 41,佐賀県,saga 42,長崎県,nagasaki 43,熊本県,kumamoto 44,大分県,oita 45,宮崎県,miyazaki 46,鹿児島県,kagoshima 47,沖縄県,okinawa
最後に、実際にfixtureのデータをロードします。
rake db:fixtures:load FIXTURES=prefectures
これでprefecturesテーブルにデータが投入されました。
2009-07-09
nifty_generatorsを導入する(nifty_layout、nifty_scaffold、nifty_config)
Railsでアプリを作成する場合、app/views/layouts以下にapplication.html.erbは生成されないため、とても素っ気ない画面になります。
そのままアプリを作りつづけても良いのですが、ある程度見栄えのするアプリ全体の共通テンプレートがあると便利です。
自分で作ることもできますが、先達の作ったものを使わせてもらうこともできます。
ここでは、Railscastsで知られるRyan Batesさんによるnifty_generatorsを導入し、使ってみます。
nifty_generatorsは、以下の4つのgeneratorから構成されています。それぞれ単一で使用することができます。
- nifty_layout: app/views/layouts/application.html.erb、public/stylesheets/application.cssを生成する。
- nifty_scaffold: ちょっと見栄えのするcontrollerとmodel、migrationを生成する。
- nifty_config: config/app_config.ymlとconfig/initizlizers/load_app_config.rbを生成する。
- nifty_authentication: ごく単純なauthentication機能を追加する。
導入
使用方法
nifty_config
script/generate nifty_config
config/app_config.ymlとconfig/initizlizers/load_app_config.rbが生成されます。
config/app_config.ymlを必要に応じて編集し、サーバーを再起動した後に、その内容が反映されます。
config/initializers/load_app_config.rbは、通常、編集する必要はありません。
config/app_config.ymlは、例えば以下のようになります。
development: domain: localhost:3000 site_title: "My Site Title"
上記のようにapp_config.ymlに書いた内容は、controllerやviewから参照することが出来ます。
例えば、viewから参照する場合には、以下のようにします。
<%= link_to APP_CONFIG[:site_title], root_path %>
nifty_scaffold
例えば、userのmigration、model、controller、helper、viewを作成し、かつ、controllerのメソッドとしてnewとeditを作りたい場合は以下のようにします。
script/generate nifty_scaffold user username:string email:string password:string new edit
railsのscaffoldよりも見栄えの良い結果が簡単に得られます。
モデルは作成したくない場合等も、各種のオプションで対応できます。
どのようなオプションが存在するか知りたい場合は、変数なしでコマンドを発行します。
script/generate nifty_scaffold
これでヘルプとサンプルが出力されます。
nifty_layout
script/generate nifty_layout
app/views/layouts/application.html.erb、public/stylesheets/application.cssが生成されます。
簡素なレイアウトですが、充分に見栄えがします。
