【パーフェクト Ruby on Rails】を読む - その14
3-2-5 RailsとRackの関係
Railsアプリケーションはrackupで起動可能です
RailsはRackの仕様に則ったアプリケーションなので
$ bundle exec rackup
コマンド実行後、ブラウザのlocalhost:9292
で起動できます。
rails new
すると config.ru
というファイルがあり、このファイルがあることがRackアプリケーションであるという証拠になります。
config.ruファイルに明記されていませんがどのようなRackミドルウェアを利用しているかを確認するには
% bin/rails middleware
で確認できます。
私の環境では以下の通りでした。
% bin/rails middleware use Webpacker::DevServerProxy use Rack::MiniProfiler use ActionDispatch::HostAuthorization use Rack::Sendfile use ActionDispatch::Static use ActionDispatch::Executor use ActiveSupport::Cache::Strategy::LocalCache::Middleware use Rack::Runtime use Rack::MethodOverride use ActionDispatch::RequestId use ActionDispatch::RemoteIp use Sprockets::Rails::QuietAssets use Rails::Rack::Logger use ActionDispatch::ShowExceptions use WebConsole::Middleware use ActionDispatch::DebugExceptions use ActionDispatch::ActionableExceptions use ActionDispatch::Reloader use ActionDispatch::Callbacks use ActiveRecord::Migration::CheckPending use ActionDispatch::Cookies use ActionDispatch::Session::CookieStore use ActionDispatch::Flash use ActionDispatch::ContentSecurityPolicy::Middleware use ActionDispatch::PermissionsPolicy::Middleware use Rack::Head use Rack::ConditionalGet use Rack::ETag use Rack::TempfileReaper run AppName::Application.routes
多い…。
ミドルウェア内の記述で破壊的メソッドのgsub!
が出てきたので復習しました
p "もとみち".gsub!("もと", "肉") #=> "肉みち" !は破壊的メソッドで、元あった"もと"を消し去り、"肉"として生まれ変わります。
今回、本書で書かれていたパターンは正規表現を置き換え元にしていたので同様のコードを書き、紐解いてみました。↓
p "hoge".gsub!(/hoge/i,"肉おいしい")#=>"肉おいしい" # /i の部分で含まれている大文字小文字関係なく変換する p "hoge".gsub!(/Hoge/i,"肉おいしい")#=>"肉おいしい" p "hoge".gsub!(/hoGe/i,"肉おいしい")#=>"肉おいしい"
↓paizaで検証しました。
正規表現をちゃんと言葉にできなかったので調べました
「正規表現」という単語が出てきたら「曖昧な感じで指定できるんだな~」という事です。正規なのに曖昧って面白いですね。🤷♀️
ひとこと
正規表現の/xyz/i
の/i
って何だろう?となって、それがフラグだと知れたのが楽しかったです。うん感動した!😈