webサービス開発その2
【記事の更新方法変更】
従来は記事に追記するスタイルとしていたのですが,アップロードがだんだんと重くなってきて出先では不便するので,やはり更新毎に記事を独立させます.
ただし,それらの更新をまとめた一つの記事も作っておきます.これは自己満足です.どれだけやってきたのか,どんな効率で調べごとをしたのかということを全体を通して見たいのです.
ということで今回を"その2"として引き続き記事を更新していきます.記事,画像の番号は統合記事の連番としておきます(編集が面倒くさいので(笑)).
【記事本文】
ここからはこれまで"hello world!"を表示する程度だったところをもう少し発展させます.ざっくり言うと,よりwebサイトっぽい要素を盛り込みます.
基本的には以下の記事にチャレンジしてみます.
【記事29】
もうたった5行のサービスを作るのに数時間かかることなんてないです!解説の所要時間の通り,数分でとりあえずのサービス立ち上げは終わりました.
ここで小技を覚えました.一度実行したサービスを停止する方法を知らなかったのですが,調べてみたところctrl+Cで止められそうです.今までいちいちコマンドプロンプトを落としていたので,格段に効率がよくなりました.
次にsinatra-reloaderを使ってsinatraでアプリを稼働中にrbファイルの変更をブラウザの更新ボタンで反映させるように改造です.
sinatra-reloadertってこういうことが出来るようになるgemなんですね.sinatraだけのときはブラウザの更新ボタンだけではダメで,一度アプリを停止して再度アプリを稼動させないとrbファイルの変更は反映されないところから使いやすくなりました.
【累計19時間/ 更新2017.02.10】
次にsinatraのルーティングを追加します.
rbファイルを以下の内容に書き換えて,ブラウザを更新します.
require 'sinatra' require 'sinatra/reloader' get '/' do 'how are you?' end # ここから get '/path/to' do "this is [/path/to]" end # ここまでを追加
ほうほう,これでhtmlを読み込める訳ですね.
続いて以下にapp.rbを書き換えます.
require 'sinatra' require 'sinatra/reloader' get '/' do 'how are you?' end get '/path/to' do "this is [/path/to]" end # ここから get '/hello/*' do |name| "hello #{name}. how are you?" end # ここまでを追加
これで以下にアクセスするとAliceに対しての応答文となる.
http://localhost:4567/hello/Alice
…あまり記事の内容をそのまま書いていくと記事の丸パクリになってしまい昨今のキュレーションサイト問題みたいになってしまうので,ここからは引っかかったことや記事に掲載されていない内容などを書いていきます.
記事ではtouchというコマンドを何回か使用していますが,これはコマンドプロンプトでは存在しません.ということで以下の記事を参考にします.
【記事30】
Reread : Windows のコマンドプロンプトで空ファイルを作成する方法
type null > 任意のファイル名
とするといいみたいです.
むむ!通りません.ということで【記事29】にあるもう一つの方法
copy null > 任意のファイル名
を試してみます.お!こっちは出来ました.ただし,空のファイルではなく,"指定されたファイルが見つかりません。"と書き込まれています.ただ,結局中身を書き換えるので今回はスルーします.
redcarpetを使うところで引っかかりました.
とエラーが出てきてしまい,そんなディレクトリないよ!と言われます.
redcarpetはgemフォルダにあり,コマンドプロンプトでbandleとコマンドした結果でも以下のようにgemとして登録されています.
Using backports 3.6.8 Using multi_json 1.12.1 Using rack 1.6.5 Using redcarpet 3.4.0 Using tilt 2.0.6 Using bundler 1.14.3 Using rack-protection 1.5.3 Using rack-test 0.6.3 Using sinatra 1.4.8 Using sinatra-contrib 1.4.7 Bundle complete! 3 Gemfile dependencies, 10 gems now installed. Bundled gems are installed into ./vendor/bundle.
まさか!redcarpetのバージョンが変わってmarkdown: ***が使えなくなっているとか!?とも考えましたが,それは色々と確認してから確認することにします.
他にはソースコードに
require 'redcarpet'
の記述が無いのが気になります.今まで使うgemはrequireしていたので,とりあえずこの記述を追加してみましたが,結果は変わらず…
ううう…
何が原因なのか調べてみます.
気分転換にひとまず街を散歩して,いきなりステーキで腹ごしらえ&人気調査をしてきます.
[累計経過時間 22時間]