完成?
This commit is contained in:
parent
2490b62e8b
commit
f80bbb7dfe
2 changed files with 29 additions and 3 deletions
|
@ -47,11 +47,15 @@ GEM
|
||||||
loofah (2.22.0)
|
loofah (2.22.0)
|
||||||
crass (~> 1.0.2)
|
crass (~> 1.0.2)
|
||||||
nokogiri (>= 1.12.0)
|
nokogiri (>= 1.12.0)
|
||||||
|
mini_portile2 (2.8.7)
|
||||||
minitest (5.23.1)
|
minitest (5.23.1)
|
||||||
multi_json (1.15.0)
|
multi_json (1.15.0)
|
||||||
mustermann (3.0.0)
|
mustermann (3.0.0)
|
||||||
ruby2_keywords (~> 0.0.1)
|
ruby2_keywords (~> 0.0.1)
|
||||||
mutex_m (0.2.0)
|
mutex_m (0.2.0)
|
||||||
|
nokogiri (1.16.7)
|
||||||
|
mini_portile2 (~> 2.8.2)
|
||||||
|
racc (~> 1.4)
|
||||||
nokogiri (1.16.7-x86_64-linux)
|
nokogiri (1.16.7-x86_64-linux)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
parallel (1.24.0)
|
parallel (1.24.0)
|
||||||
|
@ -89,6 +93,12 @@ GEM
|
||||||
unicode-display_width (>= 2.4.0, < 3.0)
|
unicode-display_width (>= 2.4.0, < 3.0)
|
||||||
rubocop-ast (1.31.3)
|
rubocop-ast (1.31.3)
|
||||||
parser (>= 3.3.1.0)
|
parser (>= 3.3.1.0)
|
||||||
|
rubocop-fjord (0.3.0)
|
||||||
|
rubocop (>= 1.0)
|
||||||
|
rubocop-performance
|
||||||
|
rubocop-performance (1.21.1)
|
||||||
|
rubocop (>= 1.48.1, < 2.0)
|
||||||
|
rubocop-ast (>= 1.31.1, < 2.0)
|
||||||
ruby-progressbar (1.13.0)
|
ruby-progressbar (1.13.0)
|
||||||
ruby2_keywords (0.0.5)
|
ruby2_keywords (0.0.5)
|
||||||
sinatra (4.0.0)
|
sinatra (4.0.0)
|
||||||
|
@ -117,6 +127,7 @@ PLATFORMS
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
erb_lint
|
erb_lint
|
||||||
|
rubocop-fjord
|
||||||
sinatra
|
sinatra
|
||||||
sinatra-contrib
|
sinatra-contrib
|
||||||
webrick
|
webrick
|
||||||
|
|
|
@ -4,11 +4,26 @@ require 'sinatra'
|
||||||
require 'sinatra/reloader'
|
require 'sinatra/reloader'
|
||||||
require 'json'
|
require 'json'
|
||||||
require 'securerandom'
|
require 'securerandom'
|
||||||
|
require 'rack/protection'
|
||||||
|
require 'rack/utils'
|
||||||
|
|
||||||
|
use Rack::Protection
|
||||||
|
|
||||||
|
helpers do
|
||||||
|
include Rack::Utils
|
||||||
|
alias_method :h, :escape_html
|
||||||
|
end
|
||||||
|
|
||||||
FILE_PATH = 'memos.json' # publicフォルダから移動
|
FILE_PATH = 'memos.json' # publicフォルダから移動
|
||||||
|
|
||||||
def load_memos
|
def load_memos
|
||||||
File.exist?(FILE_PATH) ? JSON.parse(File.read(FILE_PATH)) : {}
|
if File.exist?(FILE_PATH) && !File.zero?(FILE_PATH)
|
||||||
|
JSON.parse(File.read(FILE_PATH))
|
||||||
|
else
|
||||||
|
{}
|
||||||
|
end
|
||||||
|
rescue JSON::ParserError
|
||||||
|
{}
|
||||||
end
|
end
|
||||||
|
|
||||||
def save_memos(memos)
|
def save_memos(memos)
|
||||||
|
@ -33,7 +48,7 @@ end
|
||||||
post '/memos' do
|
post '/memos' do
|
||||||
memos = load_memos
|
memos = load_memos
|
||||||
id = SecureRandom.uuid
|
id = SecureRandom.uuid
|
||||||
memos[id] = { 'title' => params[:title], 'content' => params[:content] }
|
memos[id] = { 'title' => h(params[:title]), 'content' => h(params[:content]) }
|
||||||
save_memos(memos)
|
save_memos(memos)
|
||||||
redirect '/memos'
|
redirect '/memos'
|
||||||
end
|
end
|
||||||
|
@ -53,7 +68,7 @@ end
|
||||||
patch '/memos/:id' do
|
patch '/memos/:id' do
|
||||||
memos = load_memos
|
memos = load_memos
|
||||||
halt 404, erb(:not_found) unless memos[params[:id]]
|
halt 404, erb(:not_found) unless memos[params[:id]]
|
||||||
memos[params[:id]] = { 'title' => params[:title], 'content' => params[:content] }
|
memos[params[:id]] = { 'title' => h(params[:title]), 'content' => h(params[:content]) }
|
||||||
save_memos(memos)
|
save_memos(memos)
|
||||||
redirect "/memos/#{params[:id]}"
|
redirect "/memos/#{params[:id]}"
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue