Sinatra is a DSL for quickly creating web-applications in Ruby with minimal effort:
# myapp.rb require 'rubygems' require 'sinatra' get '/' do 'Hello world!' end
Install the gem and run with:
sudo gem install sinatra ruby myapp.rb
実行環境 sinatra 2.1.0 問題 layoutを2重でネストさせたい 解決策 erb :"内側のlayout", :layout => :"外側のlayout" do erb :user(対象のview) end ↑これでいけるわ sinatraのREADME最強! 参考にしたサイト sinatrarb.com
sinatra % bundle exec ruby app.rb/Users/myMBP/work/FJORD/sinatra/vendor/bundle/ruby/3.0.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1755:in `detect_rack_handler': Server handler (thin,puma,reel,HTTP,webrick) not found. (RuntimeError) from /Users/myMBP/work/FJORD/sinatra/vendor/bundle/ruby/3.0.0/gems/si…
タダです. 業務で Nginx + Puma + Sinatra の構成を ECS Fargate で動かそうとしてハマったのでこの記事でその辺をまとめていきます. ハマったこと 設定漏れがあった箇所 Sinatra コンテナイメージビルド時のミス ECS のタスク定義の設定 設定の誤りを修正後のデプロイ確認 まとめ ハマったこと Nginx と Sinatra のコンテナを別々で立ち上げた時に Nginx -> Puma へのソケット通信が通らず,connect() to unix:/xxx/xxx/sockets/puma.sock failed (2: No such file or d…
AWS App Runner が発表されました。 aws.amazon.com Dockerfileを用意するだけでアプリケーションに必要なリソース(VPCとかロードバランサーとか)はマネージドで用意してくれる便利サービスのようです。 僕は使ったことが無いのですが Google Cloudの Cloud Runと似たサービスのようです。 デプロイ方法は2種類用意されており、 Node.js or Python のアプリケーションをコミットしたGithubに接続する Dockerfileを用意する 1のやり方にはハンズオンが用意されています。 www.apprunnerworkshop.com
はじめに 先日、Railsの勉強のために現場で使える Ruby on Rails 5速習実践ガイド という本でタスク管理アプリを作成しました。 そこでよりRailsの理解を深めるためにもSinatraでタスク管理アプリを 実装することにしました。 今回はルーティングついてまとめました。 RESTfulなルーティング Railsで実装した時と同じURLになるようにSinatraのルーティングを設定。Railsでの実装 resources :tasks Sinatraでの実装 # app.rb # index get '/tasks' do end # new get '/tasks/new' d…
はじめに 先日、Railsの勉強のために現場で使える Ruby on Rails 5速習実践ガイド という本でタスク管理アプリを作成しました。 そこでよりRailsの理解を深めるためにもSinatraで タスク管理アプリを実装することにしました。 今回はSinatra,PostgreSQL,ActiveRecordをデータベースの設定に ついてまとめました。 database.ymlのproduction設定(Herokuにデプロイすることを想定) productionにurl: を追加 # database.yml default: &default adapter: postgresql …
今回も前回に引き続き、dockerで環境構築の学習を記しておく。 今回は主にDockerfileの作成手順についてフォーカスする。 前回、かなり適当に追記して動かしていたが、どうやら コンテナの中に入る→作業する→うまくいってからDockerfileに記載 の手順を踏んだほうが良いらしいので、それに従って作業していくこととした。 目的 コンテナの中に入る→作業する→うまくいってからDockerfileに記載の手順でDockerfileを作成する rubyのフレームワークであるsinatraを用いて、ブラウザでトップページを表示する $ mkdir sinatra_app $ cd sinatr…
要約 冬休みに AWS を勉強していて実践してみたくなったので簡単なアプリを作ることにした.作ったのは自分のホームページの管理アプリ.読んだ本や映画の感想を一覧にしているのだが,シンプルにhtml直書きのソースゆえ,いちいち手打ちで <tr> とか書かなきゃいけなくて管理がしんどかったので,Slack に投稿するだけで html をいい感じに書き換えてくれるアプリを作ることにした. タイトルにもあるとおり,登場人物は AWS,Ruby+Sinatra,Slack API の3名である. 完成品はこちら github.com 要約 アプリの仕様 大まかな構成 Slack API AWS Elas…
Sinatraとpgを使ったメモアプリを作る課題があったので、備忘録としてpgを使ったDB操作をメモしておく。 pgって何? github.com Pg is the Ruby interface to the PostgreSQL RDBMS. RubyでPostgresSQLとかのRDBMSを使うためのインターフェーストノコト
2021 May 30. 2021 Feb. 14. 2020 Nov. 07. 2018 Nov. 04. 2018 Oct. 08. 2018 Apr. 21. sinatraインストール (sinatraはBundlerでインストールできるので、このセクションは無視して下の「sinatraインストールに先立ってプロジェクト初期化」から始めればよい) (Rbenv、Bundlerがシステムワイドにインストールされた環境にて) # rbenv exec gem install sinatra # rbenv rehash ## sinatra-reloaderを利用するためにsinatra-…
6:00-7:00 ALL ART & HOUSE (石屋紀次 / 眞崎直子) 06:20 Harry Belafonte / Danny Boy 06:40 中島みゆき / 糸 06:55 Frank Sinatra / My Way 7:00-10:00 MORNING SPRITE (秋田美幸) Janet Kay / Got To Be There Mr.Children / シーソーゲーム Corinne Bailey Rae / Put Your Records On 防弾少年団 / Yet To Come iri / ナイトグルーヴ Harry Styles / Late Nig…
今回はジャズの章 はじめてのアメリカ音楽史 (ちくま新書)作者:ジェームス・M・バーダマン,里中 哲彦筑摩書房Amazon
7:00-10:00 MORNING SPRITE (秋田美幸) The Corrs / Summer Sunshine 石崎ひゅーい / アヤメ Percy Faith / Theme From A Summer Place Donna Summer / Hot Stuff The Beach Boys / Kokomo Michael Bublé / A Nightingale Sang In Berkeley Square ウルフルズ / バンザイ ~好きでよかった~ 東京スカパラダイスオーケストラ / めくれたオレンジ 10-FEET / aRIVAL Faye Wong / Drea…
[ 50年を経て変わらないサウンドという芸術の軌跡 | #Beachboys (#BrianWilson) 特集 | PART1 | 2022年06月27日号 | #AmericanBand / I Just Wasn't Made for These Times / #GoodVibrations / Surf's Up / Today & Summer Days 他 | 米国西海岸の若者文化、特にビキニの娘、サーフィン、改造車(ホットロッド)、青い海などをテーマにしたポップな楽曲で知られている。 特に、ブレイクした名曲サーフィンUSAは、チャックベリーの作品を、アレンジしたものだったが、ロ…
[ 50年を経て変わらないサウンドという芸術の軌跡 | #Beachboys (#BrianWilson) 特集 | PART1 | 2022年06月26日号 | #AmericanBand / I Just Wasn't Made for These Times / #GoodVibrations / Surf's Up / Today & Summer Days 他 | 米国西海岸の若者文化、特にビキニの娘、サーフィン、改造車(ホットロッド)、青い海などをテーマにしたポップな楽曲で知られている。 特に、ブレイクした名曲サーフィンUSAは、チャックベリーの作品を、アレンジしたものだったが、ロ…
Sinatraでのメモアプリ作成も終わりに近づいてきました。作成したリポジトリのREADMEに画像を表示したかったので方法を調べました。 結論 新規issueページで画像URLを生成して、READMEに生成した画像URLを貼り付ける。 手順 対象リポジトリのIssues タブ内のNew issue から新規issueページを開く。 comment 欄に追加したい画像をドラッグ、もしくはペースト(画像URLが生成される)。 Submit new issue でissue作成。 生成された画像URLをREADME.mdに貼り付ける。 作成したissueをcloseする。 注意点 リポジトリページの…
READMEの書き方 Sinatraのメモアプリも残すはREADMEの作成のみです。 読みやすいREADMEの書き方を調べてみました。 結論 先輩の方々が公開しているテンプレートの内容をきちんと理解して活用する。 ユーザー目線で考えて分かり易く書く。 僕が考える良いREADMEとは READMEを読んだだけで詳細、使い方が理解できる。 画像、表を使って視覚的に理解しやすい。 READMEがそのまま要件定義になっている。 参考にしたいテンプレートの詳細 こちらの記事を参考にしました。 # Product_Name ## Description ***DEMO:***  =最下段に解説あり Softly, as in a Morning Sunrise Frank Sinatra Jr. "The Second Time Around" on The Ed Sullivan Show wiki = FRANK SINATRA JR(翻訳) https://en-m-wikipedia-org.tran…
Sinatraのメモアプリの終了条件であるXSS対策について調べました。 結論 文字コード指定とエスケープ(サニタイジング)を行うとXSS対策できる XSSとは 悪意あるクライアントサイドのコードをウェブサイトに挿入するセキュリティ攻撃です。 引用: Cross-site scripting (クロスサイトスクリプティング) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN クロスサイトスプリプティング(Cross-site scripting) Cookieやセッショントークンの不正取得、HTMLコンテンツの書き換えなどが行われてしまう XSSの簡単な例 入力フォーム…
Sinatraのメモアプリでhelper 読込の際にrequire とrequire_relative の使い分けが分からかったので調べました。 結論 gemなどのライブラリの読込にはrequire、helperなどの自前で用意したファイルの読込にはrequire_relative を使う。 相違点 参照方法が異なる。 メソッド 用途 参照方法 パスの記述例 require ライブラリ読込 1. カレントディレクトリからの絶対パス2. rubyコマンドを実行した位置からの相対パス($LOAD_PATH) require 'sinatra' require_relative 自前ファイル読込 読…
Sinatraを使ったメモアプリを作成中に新規投稿、投稿編集時にformタグ内のinputが未入力でPOST、PATCHで送信できないようにしたかったので調べてみました。 結論 required 属性を使うことでクライアント側(ブラウザ)でフォームが未入力時に警告を表示できる 必須入力にしたい要素にrequired="required"(もしくはrequired)属性を追加する あくまでクライアント側で空文字を防止するだけなのでセキュリティを万全にするにはサーバ側で空文字が送信された場合の処理は別途必要 例)formの値を/memos にPOSTで送信する(inputが未入力で警告を出す) <…
「rubyとsinatraではじめるwebアプリケーション開発の教科書」 でWebアプリの作成を学習中です。 パスが通せなくなって困った時の対処法です。 ページ数でいうと42pです。 テキストエディタで~/.bash_profileというファイルを作り〜の辺りです。 まずわからないことだらけです。 テキストエディタ /.bash_profileというファイル ここでいうテキストエディタは38pでインストールした emacsのことです。 .bash_profileはコマンドでスクリプトを操作できるようにすための ファイルのことです。多分 .bash_profileファイルをemacsで作ってスク…
ずっと昔の「木馬」は、生田神社の第一鳥居付近のビルの地下にあった。あれから木馬も42年になる。もうすぐ新しい年号になるが、今振り返ると良き昭和の時代でもあった。 ほの暗い店は大音量でジャズが流れ、紫煙がたちこめて店内の照明が霞むぐらいだったが誰からも文句が出なかった。黙りこくったジャズキチたちが音楽に耳を傾ける。奥の片隅は新聞記者、営業マン、売れない芸術家たち、常連のアジト状態。そのせいもあって、はじめての人はなかなか入りづらい隠れ家だった。 或る日、一人の若い女性が、重そうなボストンバックを引きずりながらカウンター席に座った。マンハッタンをオーダー。セミロングの髪に白いブラウス、見かけは大人…
普段はKPOPアイドルオタクをやっているゐとです。前回の記事を読んだ方はご存知かと思いますが、ひょんなことからシェリンに落ちてしまったアラサーです。 今回は、ブログの最後に書いたシェリンの歌を聞いて腰抜かした話と、エレクトロ・スウィングについて少し書いてみます。シェリンの歌みたコラボ公開から大変浮き足立っており文章は支離滅裂ですのでご了承くださいませ。 シェリンの歌に腰抜かした話 シェリンの切り抜きをいくつか徘徊していた時は、YouTubeのおすすめばかり見ていた。切り抜きばかりで公式が出してる動画を見たことがないなと思った私は、「シェリン」と初めて検索をかけた。 そして一番最初に目に入ってき…
またまたHTMLネタです。 セクション要素(sectionやarticle等)をちゃんと使ってマークアップするようになった(当たり前やろ!というツッコミは無しでお願いします笑)のですが、次から次に疑問が湧いてくるので忘れないようにメモです。 結論 hタグは必ずしもsectionやarticleで囲む必要はない。body、header、fotter タグの直下に配置することもある。 <body> <h1>Let's call it a draw(ing surface)</h1> <section> <h2>Diving in</h2> </section> <section> <h2>Simp…