rakeの基本
前提 rubyプログラムの中でC言語をコンパイルして実行する。
1. まず最初に適当な作業ディレクトリを作成し、そこにRakefileを作る。
ここでお約束的な感じでRakefileの頭文字は大文字にしておく。
2. 今回使用するC言語プログラムを作っておく。
今回実行するプログラムはamidakuji.c
3. RakefileにCプログラムをビルドして実行するためのコードを書いていく。
$ rake としたらdefaultでamidakujiが呼ばれるようにしておく。
4~6行目で実行プログラムで、8~10行目でビルドだ。
このように芋ずる式で書いていくと良い。
$ rake
で実行できる。
8時間かけて作ったソースファイル達を rm ./* してしまった。
2日かけて計8時間ほどかけて作ったプログラムがありました。
それをGitHub上にpushしようと思ったんですよね。
だからまずローカル環境で、作業用ディレクトリからpush用のディレクトにコピーしました。そしてそこで一応中身を確認していたのですが一部気に入らない箇所があり、もう一度作業用ディレクトリの中で訂正しようと思ったんですよね。んで、そのファイル達を一旦消しました。
そしたら...
「あれ?」
作業用ディレクトリの中にさっきまで開いていたファイルがないお??
あれ、どこ行ったんだろ...
...
.......
「ない.......」
コマンドの履歴を確認してみたところ作業用ディレからpush用ディレにmvしていたようでした。
そして移動させたファイルを綺麗に削除したみたいでした。
解決策は基本的になく、もう一回作り直すしかないらしい...。゚(゚´ω`゚)゚。
その後誰かに聞いたら「そのためのgitじゃね? コミットしーや。」
とのことで解決しましたとさ。
debianで使うaptコマンド
aptの基本的なコマンド
debian初心者の自分がメモしたコマンドです。
アプリケーションのインストール、アンインストール、アップデートを行うコマンド
# apt install name
# apt remove name
# apt update name
Rake taskでコマンドラインから複数引数を指定する方法
- 1. taskを作成してみる。
- 2. taskに処理を書いてみる。
- 3. rake taskを確認してみる。
- 4. 実行してみる。
- 5. Rake taskでコマンドラインから複数引数を指定する方法
- 6. どっちがいいの?
1. taskを作成してみる。
$rake g task file_name
file_nameにてきとうな名前をつける。
すると、rails/lib/task/ に以下のようなファイルが作成される。
namespace :file_name do
end
2. taskに処理を書いてみる。
namespace :file_name do
task practice do
print "hello"
end
end
これで保存する。
3. rake taskを確認してみる。
$ rake -vT
# 出力結果
...
rake file_name:practice
...
こう出力されれば作成されている。
4. 実行してみる。
$ rake file_name:practice
# 出力結果
hello
ここまでくればとりあえず完成である。
5. Rake taskでコマンドラインから複数引数を指定する方法
5-1. 概要
rakeコマンド実行時にコマンドラインから複数の引数を入力として受け取るには主に2つの方法があります。
- taskを複数定義する。
- 環境変数を複数定義する。
5-2. taskを複数定義する。
例えば、
task :practice, 'firstname', 'lastname'
task :practice do |i, args|
puts "My name is #{args['first_name']} #{args['last_name']}"
end
として、実行してあげると
$ rake file_name:practice[Ryotaro,Kubota]
# 出力結果
My name is Ryotaro Kubota
とできる。
5-3. 環境変数を複数定義する
例えば、
task :practice do |t|
puts "My name is #{ENV['first_name']} #{ENV['last_name']}"
end
として、実行してあげると
$ rake file_name:practice first_name=Ryotaro last_name=Kubota
# 出力結果
My name is Ryotaro Kubota
とできる。
6. どっちがいいの?
まぁどっちでもいいと思ってしまいますが、強いていうなら環境変数の方が好きかもしれないです。
なぜならtaskを繋げてたくさん書いていくとrake -vTで確認したときに、横にたくさん連なって色々見辛くなります(笑)
$ rake -vT
# 出力結果
...
rake file_name:practice,'sample1','sample2','sample3','sample4'...
...
こうなっちゃうとdescで説明したところが右側に追いやられてしまうんですよね...
何か良い方法があれば別ですが...
gsub!を使いこなす
gsubとは
文字列の中で正規表現のパターンにマッチした部分をすべて指定の文字列に置換します。
ここで、!(ビックリマーク)が付いているものを破壊的なメソッドと呼び、その場で完全に置き換えて値が変わることを言います。
基本的な使い方
My name is が 私の名前は に変わる。
Terminalの基本的なこと
ターミナル操作で必要になるコマンドは全て環境変数で設定されている。
/bin, /usr/bin ここのディレクトリにpathを通したコマンドがある。
ちなみに、このようなコマンドは自分で作ったり消したりできる。しかし、初心者のうちはあまりいじらない方が良い。あまりわかっていない状況で操作すると、大変なことにもなる。
基本的なコマンド
$ env
→環境変数の一覧を見ることができる。
$ echo
→echo $USERなどと打つと中身が確認できる便利なコマンド
$ curl http://example.com -o foo.html
→URLからファイルをダウンロードできる。
$ open
→とにかく開くコマンドだが、引数を.とした場合、カレントディレクトリをfinderで開ける。
$ brew search tree
→brewはsearch, install, uninstallといったサブコマンドと言われる引数を最初に指定します。macで使う。