the lite-ist stack: rails, sqlite, litestack, litestream, and fly one of my favorite technologies is sqlite. it lets us build apps with fewer dependencies and less devops, which i love. you can run it in memory to create db-backed ruby scripts in a standalone file. i’m a fan of sqlite’s origin story (i started my career working for the navy and dod). i get an irrational kick out of being able to s
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: For clarity merging hashes use with_defaults - Andy Croll 原文公開日: 2023/11/20 原著者: Andy Croll Railsは、可読性を高めるためにActive Supportで既存のコアRubyクラスに多くのメソッドを追加することで知られています。Hashクラスのwith_defaultsメソッドもその1つです。with_defaultsメソッドは、別途追加済みのreverse_mergeメソッドのエイリアスなので、この名前が動作を知る手がかりとなるはずです。 reverse_mergeメソッドのソースコードを見るとわかるように、実装は実に簡素です。 🔗 以下のように書くよりも デフォルト値をHash#mergeで追加する。 user_provided =
users.where(users[:name].eq('amy')) # SELECT * FROM users WHERE users.name = 'amy' basic join In ActiveRecord (without Arel), if :photos is the name of the association, use joins users.joins(:photos) In Arel, if photos is defined as the Arel table, photos = Photo.arel_table users.join(photos) users.join(photos, Arel::Nodes::OuterJoin).on(users[:id].eq(photos[:user_id])) join with conditions users.
Rico's cheatsheets Hey! I'm @rstacruz and this is a modest collection of cheatsheets I've written. bash Bash scripting enzyme Enzyme es6 ES2015+ go Go react React.js sass Sass vim Vim xpath Xpath Recently updated tmux tmux docker-compose docker-compose cron Cron yum YUM screen Screen clip Command Line Interface Pages tig Tig tar tar atom Atom grep GNU grep stimulus-reflex StimulusReflex factory_bo
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Gemfile of dreams: the libraries we use to build Rails apps—Martian Chronicles, Evil Martians’ team blog 原文更新日: 2024/05/28 原著者: Vladimir Dementyev(首席バックエンドエンジニア)、Travis Turner(技術記事編集者) サイト: Evil Martians -- ニューヨークやロシアを中心に拠点を構えるRuby on Rails開発会社です。良質のブログ記事を多数公開し、多くのgemのスポンサーでもあります。 日本語ブログ: 合同会社イービルマーシャンズ - Qiita 日本語タイトルは内容に即したものにしました。また、gemごとにGitHubリポジトリへのリンクカードも追加してあ
まえがき 本記事は、私がRailsConf 2019で話した「Terraforming legacy Rails applications」↑の、いわばB面に相当します。この記事を読んで、皆さんがアプリケーション開発をDockerに乗り換えるとまでは考えていません(皆さんが以下の動画で若干言及しているのをご覧になっていたとしても)。本記事の狙いは、私が現在のRailsプロジェクトで用いている設定を皆さんと共有することです。それらのRailsプロジェクトは、Evil Martiansのproduction development環境で生まれたものです。どうぞご自由にお使いください。 原文免責事項: 英語版記事は最新の推奨事項に合わせて更新を繰り返しています。詳しくは記事末尾のChangelogをご覧ください(参考: 原文Changelog)。 私がdevelopment環境でDockerを使
今回の初期構成は 3 つのマイクロサービスで構成されるウェブアプリケーションでした。そのうち 2 つは例年通り各言語での実装が用意されていましたが、3 つ目は単にコンパイル済バイナリが置いてあるだけという感じでした。そのため、前者 2 つのアプリケーションはコード内容を含め改善しつつ、3 つめのアプリケーションについては本体を改善不可能と諦めそもそもアプリケーションを極力呼ばないようにするのが重要だったかなと思います。 今回の主題となるアプリケーションは isuda と呼ばれるシンプルなオンライン辞書投稿サービスでした。単語の解説記事部分のテキストには他の単語へのキーワードリンクが挿入されているという仕様があったので、新しい単語が投稿されるたびに、その単語を含む既存の単語の解説記事部分を再生成する必要があるというものでした。 我々のチームでは Ruby 実装を改善していきましたが、Ruby
require "use_arguments" # Array クラスのメソッドに対して使用する using UseArguments::Array p [1, 2, 3].map { _1 + _1 } # => [2, 4, 6] # Hash クラスのメソッドに対して使用する using UseArguments::Hash data = {homu: 13, mami: 14, mado: 13} p data.select { _2 < 14 } # => {:homu=>13, :mado=>13} require "use_arguments" using UseArguments p proc { _args }.use_args.call 1, 2, 3 # => [1, 2, 3] plus = proc { _1 + _2 }.use_args p plus.call
ウソみたいな本当の話。Ruby でファミコンエミュレータを書いてみました。 気になる速度ですが、自分の環境では 20 fps ちょっと出ます。ファミコンは 60 fps なので、実速の 1/3 です。Ruby3x3 (Ruby 3 は Ruby 2 の 3 倍速い)という matz の宣言が実現すれば、実速が達成されることになりますね! 試してみたい人はこんなふうに実行してください。 $ gem install ffi $ git clone http://github.com/mame/optcarrot.git $ cd optcarrot $ bin/optcarrot examples/Lan_Master.nesSDL2 か SFML が適切にインストールされている必要があります。Debian/Ubuntu なら apt-get install libsdl2-dev で。 Ru
動機 「Ruby で『モルダー、あなた疲れてるのよ』を出力したりしなかったりしたいなぁ」と思い悩んでいたところ、 Ruby でモルダー、あなた疲れてるのよを出力する方法 という素晴らしい記事に出会いました。ただ、もっと汎用的に「モルダー、あなた疲れてるのよ」を出力したりしなかったりしたいので、専用のクラスを作ってみました。 成果物 Enumerable で Mulderable な感じにしてみました。 class Mulder include Enumerable SCULLYS_WORDS = %w(モルダー あなた 疲れてる のよ).map(&:freeze).freeze SCULLYS_NATURAL_REMARK = SCULLYS_WORDS.dup.insert(1, '、').join.freeze def each(&block) @words ||= SCULLYS_W
まえがき Ruby を仕事で使う上で、「モルダー、あなた疲れてるのよ」を出力したり、出力しなかったりしたいことはままあります。 そこで今回は「モルダー、あなた疲れてるのよ」を出力したり、出力しなかったりします。 本文 コード def mulder %w[モルダー あなた 疲れてる のよ].shuffle.each_slice(2).map { |ws| ws.map { |w| w.chars.each_slice((w.size/2.0).ceil).map(&:join) }.flatten.tap{ |_| break [_[2], _[1], _[0], _[3]] if rand(2) == 0 } }.flatten.insert(2, '、').join end loop.with_index(1) do |_, i| print "#{i}: " puts mulder.t
Ruby で暗黙のブロックパラメータを使うための gem をつくりました。 元ネタ : Rubyのブロックつらい問題を解決する暗黙のブロックパラメータ - Qiita github : osyo-manga/gem-use_arguments インストール $ gem install use_arguments 定義される暗黙のブロックパラメータ パラメータ 意味 _1, _2..._N 各引数の要素 _ _1 と同じ _args 全引数の配列 _yield ブロック引数 _self 呼び出された Proc オブジェクト自身 _receiver ブロックを渡したメソッドのレシーバ 使い方 使い方は簡単で、ブロックの引数を定義する代わりに _1 や _2 といったプレースホルダを変わりに使用します。 require "use_arguments" # Array クラスのメソッドに対して使用
Here is an example rubium app I call mruby-edit. It's a code editor written entirely in Ruby - including all DOM event handlers and manipulations. It's implemented on top of Ace, but uses Ruby to configure Ace keybindings, and access the file system. In the image, mruby-edit is viewing its own source code. Mruby-edit was written entirely in Ruby as a proof of concept, but you can freely switch bet
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く