This shows how different approaches to memoization work (or don't) in different Ruby engines.
If you're using the idiomatic Ruby approach to memoization, like this:
def data
@memo ||= expensive_action
end
Warden::Manager.serialize_into_session{|user| user.id } | |
Warden::Manager.serialize_from_session{|id| User.get(id) } | |
Warden::Manager.before_failure do |env,opts| | |
# Sinatra is very sensitive to the request method | |
# since authentication could fail on any type of method, we need | |
# to set it for the failure app so it is routed to the correct block | |
env['REQUEST_METHOD'] = "POST" | |
end | |
VirtualBox仮想マシンのネットワークはデフォルトでNATとなっている。
VirtualBox の場合、NAT ネットワークアダプタには 10.0.2.0/24 の IP アドレスが割り当てられ、ゲスト OS から見える ホスト OS の IP アドレスには 10.0.2.2
が設定される仕様。
したがってホストOS上に建てたサーバーにゲストOSからアクセスしたい場合は、http://10.0.2.2
とアクセスすれば普通に見ることができる。
class MyJob < ActiveJob::Base | |
queue_as :urgent | |
rescue_from(NoResultsError) do | |
retry_job wait: 5.minutes, queue: :default | |
end | |
def perform(*args) | |
MyService.call(*args) | |
end |
OldHttpRequest = Turbolinks.HttpRequest | |
class Turbolinks.CachedHttpRequest extends Turbolinks.HttpRequest | |
constructor: (_, location, referrer) -> | |
super(this, location, referrer) | |
requestCompletedWithResponse: (response, redirectedToLocation) -> | |
@response = response | |
@redirect = redirectedToLocation | |
お作法についてはRuby on Rails に貢献する方法 | Rails ガイドを参考にしています。
Railsのコードを読むには、最低限次の二つの知識があったほうがよいです
/* | |
yarn init -y | |
yarn add webpack webpack-cli webpack-serve html-webpack-plugin -D | |
yarn add babel-loader@^8.0.0-beta @babel/core @babel/preset-env -D | |
echo '{ "presets": ["@babel/preset-env"] }' > .babelrc | |
*/ | |
const HtmlPlugin = require("html-webpack-plugin"); | |
module.exports = { | |
mode: process.env.NODE_ENV || "development", |
begin | |
require "bundler/inline" | |
rescue LoadError => e | |
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler" | |
raise e | |
end | |
gemfile(true) do | |
source "https://rubygems.org" |