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用のマークアップを追加したもの
CompilerTemplateをパースしてDirectivesやExpressionsを実行するView- ユーザーに見えているDOM
Directives- Custom属性、Customタグを適用してHTMLを拡張する DOMを直接触った操作がしたい場合は独自のDirectiveを用意する
Expressions- “で表現され、スコープ内の変数や関数にアクセスできる
Scope- 変数や関数に参照できるスコープ“
Model
: