tempfile = Tempfile.open(...) do |f| ... ... f.write end (...tempfileを使った処理...) といったコードがありました。 このコード、だいたいの場合問題なく動くのですが、たまに作成したはずの一時ファイルがないと怒られることがありました。 実は Tempfile オブジェクトは自身への参照がなくなり、ガベージコレクションされた際に一時ファイルを削除する仕組みがあります。実はさきほどのコードでは Tempfile のオブジェクトへの参照が Tempfile#open のブロックを抜けるタイミングでなくなってしまっていたのです。 変数 tempfile があるじゃないか、と思うかもしれませんが実はこれ Tempfile のオブジェクトではないのです。 ドキュメントを見ると、 Tempfile オブジェクトはFileクラスへのDe
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The Difference Between a Cache and a Read Models, an example | Arkency Blog 原文公開日: 2021/11/24 原著者: Tomasz Wróbel サイト: arkency.com 以下のような、そこそこ複雑なビューがあるとします。カレンダー的なテーブルがあって、横軸は貸部屋、縦軸は利用可能な期間を表しています。 もちろん、このビューでは以下のような機能が欲しくなります。 利用可能かどうかや場所を指定してフィルタする機能 ソート機能 貸部屋リストのページネーション 期間のページネーション(別の期間を参照する) サーバーがJSONを配信すると、SPAフロントエンドのようなクライアントがそのJSONを消費する形になります。 以下のようなさまざまなテーブルにあ
全角→半角&半角→全角 NKF.nkf('-w -Z4', 'カタカナカタカナ') => "カタカナカタカナ" 全角→半角 NKF.nkf('-w -Z4 -x', 'カタカナカタカナ') => "カタカナカタカナ" 半角→全角 NKF.nkf('-w -X', 'カタカナカタカナ') => "カタカナカタカナ" 全角→半角 NKF.nkf('-w -Z4', 'ABC012') => "ABC012" 'ABC012'.tr("A-Z0-9","A-Z0-9") => "ABC012" 半角→全角 'ABC012'.tr("A-Z0-9","A-Z0-9") => "ABC012" NKFでは半角英数字から全角英数字には変換はできませんでした。 ひらがな→全角カタカナ 'ひらがな'.tr('あ-ん', 'ア-ン') => "ヒラガナ" ひらがな→半角カタカナ NKF.nkf('-w -Z
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Active Record Encryption-- hint.io 原文公開日: 2021/07/06 原著者: Jason Dinsmore サイト: hint.io 日本語タイトルは内容に即したものにしました。 Rails 7のActive Recordに、実にクールな新機能が導入されることになりました。モデル内で使える強力なencrpyts宣言によって呼び出される、アプリケーションレベルの暗号化機能です。この新機能は、アプリケーションコードとデータベースの間に暗号化の層を提供します。要するに、ActiveRecord::Encryptionを用いたデータがActive Recordオブジェクトに読み込まれると平文になり、データベースに置かれると暗号化されます。 本記事では、この新機能の使い方の概要を説明し、いくつかの優秀な
Ruby on RailsでRedcarpetを使ってみる ドキュメントをHTMLで 作成中のグループウェアに、UIkitのHTMLエディタを使用しています。 これまではWordなどのアプリケーションで作成していたドキュメントを添付したりダウンロードしたりする必要がありました。 頻度が少なければさほど気にならないのかもしれませんが、数十名分のレポートを確認する場合などは結構ストレスを感じます。 レポートなどの文書を、Markdown形式で作成して、ブラウザ上で直接閲覧できるようにすることで、グループウェアへの添付やダウンロードなどの煩雑な作業を少しでも減らしたいと考えています。また、テキストデータ化されますので、キーワードによる検索などの便利機能を追加することも容易にできそうです。 MarkdownエディタはUIkitのエディタを採用 UIkitのHTMLエディタはMarkdown形式で入
ゼロイチ-TOPRuby on Railsプログラミング全般Ruby on Railsでredcarpetを利用し、シンタックスハイライトに対応したブログ機能を実装する Ruby on Railsでredcarpetを利用し、シンタックスハイライトに対応したブログ機能を実装する 本サイトプログラミング学習サイトゼロイチも、Ruby on Railsで作成されており gem redcarpetでマークダウンで記入した内容をhtml化しています。 今回はRuby on RailsのGem redcarpetを利用し、Ruby on Railsでブログ機能を実装する方法を解説します また、redcarpetではコード部分の表記があまりイケてないので、Gem coderayを利用しシンタックスハイライト対応にします。 そもそもシンタックスハイライトとは シンタックスハイライトはマークダウンでコード
背景 サービスの修正や機能開発の際に、リリース報をうちたい。 社内のメンバーはマークダウンでの記述に慣れているため、今回はマークダウンで書いてもらうことを前提とする。 流れ gem 'redcarpet' をインストール markdown_helper.rbを作成し、オプションを追加 フォームでマークダウンで記述 Gem追加 $ bundle install redcarpet Helper追加 # gem 'redcarpet' 用 module MarkdownHelper def markdown(text) unless @markdown options = { filter_html: true, autolink: true, space_after_headers: true, no_intra_emphasis: true, fenced_code_blocks: tru
コロナウィルスにも負けずに相変わらずサウナに行っているプレイライフのエンジニアの合原です。 昨日ちょうど、弊社の特集記事の入稿画面に、redcarpetを用いて、マークダウンでの入力を拡張したので、それについてまとめます。 なぜマークダウン記法の追加をした? 弊社では、従来なかなかの骨のある作りのオリジナルのhtmlエディタが実装されており、 テストもなく、何がデグレするかわからない状態です。 手を加えるとなると、手間も時間もかかることから難しいなと。 何よりも、 「使用者」である編集担当も、使いやすいと思っていない マークダウンも使えるようにして欲しいと言う声が前々からあった といった点から、redcarpetを用いたマークダウン記法を部分的に追加をすることにしました。 本来であれば、エディタ機能自体リプレースしたいところですが、別案件もあったりと。。。現状厳しく(泣 また一方で、弊社の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く