自宅でお小遣い稼ぎをしたい主婦がアプリリリースを目指すブログです。この広告は、90日以上更新していないブログに表示しています。プログラミングこんにちは、マリンです。アプリ開発していてわからないことがあると私はまずグーグル先生に聞きます。大体の方がそうだと思いますが・・・すると頻繁にこんな一文を見かけますよね。~このbinって何だろうな?ってずっと気になっていたんですよね。アプリの中にそういうディレクトリがあるのも知ってたんですが、詳細とか何が書かれているのかは今までスルーしてきました。(余計なこと調べるとハマるのでw)でも今は取り急ぎやっていることもないので、いい機会だから調べてみました。解説binファイルとは?Railsアプリの中のbinディレクトリbinディレクトリの中身bin/rails内容binてよく見かけるけど、ついてる時とついてないときあるし、ついでにbin/railsとかbin/rakeとかあるけど・・・binて何だ?railsとrakeの違いってなんだ??について書こうと思います。解説binファイルとは?まずはざっくりbinファイルってなんなのか調べてみました。e-Wordsさんではこのように書かれていました。BINファイルとは、ファイル形式・拡張子の一つだが、標準化されたデータ形式ではなく、アプリケーション独自の形式で保存されたバイナリデータのファイル名の拡張子などによく使われる。“bin”は「バイナリ」(binary)の略号で、テキスト形式ではなくバイナリ形式であることを示している。こちらのサイト様でもっと簡単に書かれていました。(こちらもよくお世話になっております。)wa3.i-3-i.infobinファイルとは通常バイナリデータが書かれていることが多いファイルで、バイナリデータというのはコンピュータが理解するためのプログラムが書かれたファイルということですか。私はこの「バイナリデータ」の認識が間違っていたようですね。最初のアプリケーションでは各ディレクトリのざっくりとした用途が書かれています。バイナリ実行可能ファイルやはりRailsに置いてもその用途は同じようですね。binディレクトリの中身ディレクトリの中身はこのようになっています。bin/┣bundle┣rails┣rake┣setup┣spring┣updatebin/rails今回はrailsコマンドとrakeコマンドの違いを知りたいので、その他のファイルは省略します。これ以降の内容はRailsガイドの「Railsの初期化プロセス」の中に詳しく書かれています。railsguides.jpあとこちらの記事も参考にさせていただきました。shgam.hatenadiary.jpbin/railsファイルの中身は以下のようになっています。ruby#!は「shebang(シバン)」といい、インタプリタを指定するための文を表します。rubyという文でrubyインタプリタを使用することを指示しています。begin~rescue~endこの間は例外処理です。springファイルがLoadErrorになった場合の処理のようです。APP_PATH~APP_PATHにパスを入れています。このあとに呼び出されるrails/commandsの中で使用されるようです。File.expand_pathは、相対パスを絶対パスに変換してくれます。第2引数の__dir__は相対パスの基準となるディレクトリです。require_relative'config/boot.rb'require_relativeとすることで、ファイルの相対パスを指定して読み込むことができるそうです。ENV[~環境変数のBUNDLE_GEMFILEにGemfileのパスを入れています。||=が付いているので、「もし入っていなければ入れる」という指示です。require~bundler/setupをrequireします。このbundler/setupは、Gemfileにある依存ファイルが置かれている読み込みパスをBundlerで設定する際に使用されます。このboot.rbファイルで、Gemfile内のGemをBundlerでセットアップをする指示を出しているということでしょうか・・・ちなみに、RailsガイドではrequireがGemfileが存在する場合に実行されるようif文によって書かれていますが、私のファイルにはなかったです。boot.rbファイルの次はcommands.rbファイルがrequireされます。このファイルにはコマンドの別名を拡張するためのコードが書かれています。serverをsと略せるようになるのはこのファイルのおかげです。Rails::CommandsTasks.new(ARGV).run_command!(command)コマンドの省略形に対する処理をした後、コマンドを実行する流れのようです。長くなってきたので、続きは次回にします。これまでの内容で誤りがありましたら是非ご指摘ください。Tutorial】herokuコマンドが使えないこんにちは、マリンです。Tutorialをや...2017-10-30【Rails】paramsがなんなのかやっとわかった!こんにちは、マリンです。Railsでformとか使っていれば当然par...2017-04-28binって何?railsとrakeって何??(後編)こんにちは、マリンです。プラグインを学んでみる。(後編)こんにちは、マリンです。プラグインを学んでみる。(前編)こんにちは、マリンです。プラグインを学んでみる。»プロフィールid:song-of-life1352607アラサーで思い立ってプログラミングを始めた主婦が、自宅でお小遣い稼ぎをしたいがために自作アプリのリリースを目指すブログです。【Git】ブランチ間違えてコミットしてた!?月別アーカイブ参加グループプログラミングはてなブログをはじめよう!song-of-life1352607さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。