日常で使うRubyプログラミング

日常の作業でRubyを使う際、気になったことをChatGPTに聞いています。

RubyのSinatraの単純なサンプル

5行書くだけでWebサーバーが出来ます。

'Ruby on Rails'の学習もしたことがありますが、正直ややこし過ぎて、1冊本を読み終えた頃には個人用途でアプリケーションを作る気力は失せていました。

単純なものから必要に応じて規模を拡大して行く方が、学習はスムーズに進むかもしれません。

User
RubyのSinatraで構築するWebサーバーで次の条件を満たすものを構築したいです。

・ローカルネットワーク上の他端末からアクセスができる
・デフォルトのviews, publicフォルダを持つ。

ChatGPT
Sinatraでローカルネットワーク上の他端末からアクセス可能なWebサーバーを構築する手順を、ステップ・バイ・ステップで説明します。

ステップ1: Sinatraのインストール
まず、Sinatraをインストールしていない場合は、以下のコマンドを実行してインストールします。

gem install sinatra  

ステップ2: 基本的なSinatraアプリケーションの作成
次に、基本的なSinatraアプリケーションを作成します。新しいディレクトリを作成し、その中にapp.rbという名前のRubyファイルを作成してください。以下のコードをapp.rbに記述します。

require 'sinatra'  
  
get '/' do  
 'Hello, world!'  
end  

ステップ3: viewsとpublicフォルダの作成
Sinatraは、デフォルトでviewsフォルダとpublicフォルダを参照します。viewsフォルダ内にはテンプレートファイル(例: ERBファイル)を、publicフォルダ内には静的ファイル(例: CSS、JavaScript、画像ファイル)を置きます。

viewsフォルダとpublicフォルダを、app.rbが存在する同じディレクトリに作成してください。
例として、viewsフォルダにindex.erbを、publicフォルダにstyle.cssを置くことができます。

ステップ4: ローカルネットワーク上でアクセス可能にする
デフォルトでは、Sinatraはlocalhost(127.0.0.1)で起動します。ローカルネットワーク上の他端末からアクセスするには、アプリケーションを特定のIPアドレスでバインドする必要があります。ほとんどの場合、0.0.0.0をバインドすることで、全てのインターフェースを介してアクセスを受け付けるように設定できます。

app.rbに次の行を追加して、0.0.0.0にバインドします。

set :bind, '0.0.0.0'  

ステップ5: Sinatraアプリケーションの起動
最後に、以下のコマンドを実行してSinatraアプリケーションを起動します。

ruby app.rb  

これで、ローカルネットワーク上の他端末からアクセスできるようになります。ブラウザから、Sinatraが起動しているマシンのIPアドレスにアクセスしてみてください。例えば、マシンのIPアドレスが192.168.1.5で、Sinatraのデフォルトポート(4567)を使用している場合、http://192.168.1.5:4567にアクセスします。

これで、ローカルネットワーク上の他端末からアクセス可能で、viewsとpublicフォルダを使用するSinatraアプリケーションの基本的なセットアップが完了しました。