Ruby on Rails Tutorial(1)
Ruby on Rails Tutorial の学習メモ。
第1章 ゼロからデプロイまで
Railsアプリケーションの作成
rails new
コマンドでアプリケーションのスケルトンを作成。
rails server
コマンドでローカルサーバー起動。
Gitによるバージョン管理
作成したアプリケーションをGit(GitHub)でバージョン管理する。
1 2 3 4 5 |
|
コミット前の状態に戻す。
1 2 |
|
GitHubのWeb画面からレポジトリ作成後
リモートリポジトリにpush
1 2 |
|
トピックブランチを作成してファイル名を変更する。
-b
オプションを指定して実行するとブランチの作成とチェックアウトを同時に行う。
-a
オプションを指定することで
変更の加わったファイルをすべて対象とする。新規ファイルは対象とならないとので注意。
1 2 3 4 5 |
|
マスターブランチに切り替えて変更をマージ後、 トピックブランチを削除する。
1 2 3 |
|
変更内容をGitHubにプッシュする。
すでに一度プッシュしてるのでorigin master
は省略できる。
1
|
|
Herokuにデプロイする
プロダクション環境とするHerokuではPostgresを利用するのでGemfileにgemを追加する。
(pg
, rails_12factor
)
Gemfile.lockを更新したいのでbundle install
を実行する。
1 2 |
|
Heroku登録してHeroku Toolbeltをインストールしてくる。
1 2 3 4 |
|
なお、この時点ではRailsのデフォルトページは表示されない模様。
次の章へ
Ruby-lang
パーフェクトRubyを斜め読みしながら気になった事柄についてメモを残しておく。
Rubyと文字コードについて
1.9
系を扱うときはデフォルトの文字コードがUS-ASCIIと判定されるが、2.0
では
デフォルトの文字コードがUTF-8として認識される。
明示する場合は以下のようなマジックコメントを記述する。
1
|
|
クラス、モジュール名はXxxYyy
のようなキャメルケース
メソッド名、変数名はxxx_yyy
のようなスネークケース
真偽を表すメソッド名
is_xxxのような真偽値を返すメソッド名は末尾に?
をつけることが一般的。
1 2 3 |
|
どうやら最後に評価された式をreturnしてるっぽい
メソッド定義
1 2 3 |
|
メソッド呼びだし
1
|
|
メソッド呼び出し時は、
foo('abc')
という馴染み深い形のほかに
foo 'abc'
のように括弧を省略することができる
トップレベル
クラス定義、モジュール定義外で定義されたものは関数のように利用できる。
シングルクォートとダブルクォート文字列の違い
ダブルクォート文字列の場合は#{...}
という形で式展開できる。
戻り値
最後に評価された式、またはretrun
Rubyインストール
Pythonの場合を思い出しながら
pyenv
でPython自体のバージョン管理。
virtualenv
でPython仮想環境作ってactivate
した後、
利用したいパッケージをpip
でインストールする。
Rubyの場合はこんなかな
rbenv
でRuby自体のバージョン管理。
パッケージ管理はgem
で行うが「プロジェクトでどのgem
のどのバージョンを使うか」
といった情報をGemfile
に書き込んでbundler
で管理する。
1
|
|
1 2 3 4 5 |
|
1
|
|
rbenv-binstubs
を利用するとbundler exec <command>
しなくて良いらしいので。
Python東海
Pillowで
- 画像編集の自動化は結構簡単に
- Firefoxの定期スクショのほうがめんどくさい
Eject
- ctypes
- Rasberry Pi / GPIO
マルチプラットフォーム
- Kivy
- PyQt
Vagrant+Pythonで開発環境
- スライドがsphinx+revealjs
- 開発環境+実行環境
CodeIQ
- yieldの使い方
Start-angular
Template
- HTMLにいくつかのAngular用のマークアップを追加したもの
Compiler
Template
をパースしてDirectives
やExpressions
を実行するView
- ユーザーに見えているDOM
Directives
- Custom属性、Customタグを適用してHTMLを拡張する DOMを直接触った操作がしたい場合は独自のDirectiveを用意する
Expressions
- “で表現され、スコープ内の変数や関数にアクセスできる
Scope
- 変数や関数に参照できるスコープ“
Model
: