Ruby関連のことを調べてみた

Ruby関連のことを調べてみた
目次

JqueryでRedmineの「wikiページ」をもっと便利に(フィルタリング機能と移動機能)

## JqueryでRedmineの「wikiページ」をもっと便利に(フィルタリング機能と移動機能)

[Redmine Advent Calendar 2023](https://adventar.org/calendars/8974)の13日目の記事として作成しました。

[Redmine Advent Calendar 2023](https://adventar.org/calendars/8974)の11日目の記事として[JqueryでRedmineの「活動ページ」をもっと便利に②(フィルタリング機能と移動機能)](https://qiita.com/yam_asaki/items/2428610fd89bc73ce0ab)を作成しましたが、「活動ページ」だけではなく、「wikiページ」にも「フィルタリング機能と移動機能」を追加できそうな気がしてきましたので、試してみた結果を記事にまとめました。

* * *
### 既存のRedmineで不便なこと、改善したい点

Redmineのwikiページは、マークダウン形式でリッチなテキストを作成できる便利な機能です。ただし、か

元記事を表示

~memo~ Rspecでメソッドの呼び出し回数をテスト時に実際にメソッドも呼び出したい場合

メソッド呼び出し回数をテストしたいけど、モックにしてしまうのではなくて、実際にメソッドも呼び出してその結果も確認したいー!
ということがあり、色々調べたらブロックで呼び出しが出来ました!

“`ruby
before do
org_method = xxx_instance.method(:xxx_method)
allow(xxx_instance).to receive(:xxx_method) { |*args| org_method.call(*args) }
end

it “” do
subject
expect(xxx_instance).to have_received(:xxx_method).once
# expect ~
end
“`

ありがとうブロック

元記事を表示

Rails の状況について振り返り2023年

静岡でフリーランスでWeb開発をしているkazuomatzです。

[静岡 Advent Calendar 2019](https://qiita.com/advent-calendar/2019/shizuoka)の2日目に[「Rails10年選手がGoの勉強会に参戦してきた」](https://qiita.com/kazuomatz/items/ce44c92d2e90a96e9380)というエントリーを投稿して、あれから4年が過ぎました。

Goやるといいいつつ、この4年間でGoの成果物は全くなく、あいかわらずRailsを使っていろいろなWebサービスを開発しています。

当時、Ruby/Railsの状況については、このように書いていました。

## 2019年当時のRuby / Railsの状況

– 2〜3年前に開発したWebサービスがサポート外のRailsで動いている
– とはいえ、Railsのバージョンアップする時間・費用がない
– 慣れ親しんだライブラリーが更新されず、最新のRails環境で使えない

2019年といえば、当時の安定バージョンはRails 5.2系で、R

元記事を表示

あなたの知らないちょっと役に立つmrubyの話 2

こんにちわ軽量Rubyフォーラムの石井です。
みんなの知らないmrubyの話1に続いて2です。
## mrubyデバッガ

mrubyには2014.11に公開された1.1.0よりCUI debuggerが付属しています。
mrubyをビルドしたあとに作成されるmruby/bin/mrdbがそれです。
mrubyを説明した際に「えっ!?mrubyってデバッガないの?」とよく言われていました。
作ったことは作ったのですが告知が不十分でほとんどの人が知らないという・・・・。
(開発には当時三菱電機マイコン機器ソフトウェアに在籍されていたYuuuさんにもご協力いただきました)

スクリプトもバイナリファイルもデバッグ可能です。
コマンドラインで実行するブレークポイントや式評価などの出来るシンプルなものです。

マニュアル
https://drive.google.com/file/d/1YCaY96du6xTQ9oy4-JCYFrr9QhD9McYI/view?usp=sharing

デバッガのすべての機能はAPIとして利用可能です。機能拡張やIDEからの呼び出しなど出来るといいなぁと思って

元記事を表示

Ruby芸160チャレンジ(#13)ファイルがなければ作成する

## この記事は何
[shellgei160を通じて言語習得 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/learning-via-shellgei160)に参加しています。

書籍「シェル芸ワンライナー160本ノック」の例題をRubyで解いてみて、Rubyの学習に役立てようとするものです。

例題はこちらのリポジトリで公開されているものに限ります。
https://github.com/shellgei/shellgei160

## 実行環境など
– Docker image: ruby:3.0.2
– 上記リポジトリをクローンした上で、リポジトリのルートディレクトリ直下に`answer-ruby`ディレクトリを作り、その中に解答となるファイルを作成していきます。

## 今回のテーマ
https://github.com/shellgei/shellgei160/blob/master/answer/13.md

“`bash
$ [ -e unfile ] || touch unfile
“`

元記事を表示

メール機能の実装 ( ruby on rails )

# まえがき
**[DMM WEBCAMP Advent Calendar 2023](https://qiita.com/advent-calendar/2023/infratop)** 13日目記事です。

DWCメンター・卒業生が記事を投稿しておりますので、是非他の記事もご確認ください!

# 初めに
ここでは,rubyのフレームワークである,ruby on railsを使用して,メールを送信する機能を実装します.

# 1. メイラーの作成
“`shell
$ rails g mailer GroupMailer
## 以下実行ログ
create app/mailers/group_mailer.rb # mailerのコントローラー
create app/mailers/application_mailer.rb # アプリケーションコントローラーと同じようなもの
invoke erb
create app/views/group_mailer # mailerのテンプレートのディレクトリ
create app

元記事を表示

【Rails】文字リテラルの活用法について考えてみた

## はじめに
Ruby技術者認定試験Goldの対策時に存在を知ったものの、~~一体何に使うんだろうこれ~~中々活用法を見出だせずにいた文字リテラルに関して、何か使い道が無いか考えてみたという~~ネタ記事~~雑記となります

## 今回見出だした用途
以下のような挙動を示すために、pメソッド等を埋め込んでの軽い動作確認時などにもしかしたら若干便利かもしれません
~~~
[1] pry(main)> ?A*100
=> “AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA”
~~~

“`ruby:pメソッドと組み合わせてみる
p ?🐌*10
“`

~~~text:ターミナル出力
“🐌🐌🐌🐌🐌🐌🐌🐌🐌🐌”
~~~

## 文字リテラルの大まかな挙動
?a → “a”、?あ→”あ”というように、?マークの直後に何か1文字を置くと、その文字を返すという挙動を示す。2文字以上置くと構文エラーとなります

~~~
Running via Sp

元記事を表示

【Rails】既存のRailsアプリをDocker化してみた【Docker + Ruby3.2.2 + Rails7.0.8 + importmap + Node.js 20.2.0 + Tailwind CSS + daisyUI + PostgreSQL】

# はじめに
お疲れさまです!
おおくまです!

今回は、既存の“Railsアプリ“を初めて“Docker化“してみました!
環境としては、
**Docker + Ruby3.2.2 + Rails7.0.8 + importmap + Node.js 20.2.0 + Tailwind CSS + daisyUI + PostgreSQL**
です!

データベースに関しては、ローカルでは“SQLite“、本番では“PostgreSQL“を使っていたので、どちらも“PostgreSQL“を使うように修正します!

また、サーバーを立ち上げる際は、“./bin/dev“のコマンドを使い、
**JSやCSSがビルドされ、なおかつJSやCSSを変更したときに自動的に再ビルドされる**ようにします!
備忘録として残したいと思います!

こちらが“Docker化“する前のリポジトリです!

https://github.com/kumaryoya/kuma_lab_before_docker

# 注意点
:::note warn
私はプログラミング学習中で、初学者

元記事を表示

mruby/cでカスタマイズできる 7seg LED ディスプレイを作りました

[しまねソフト研究開発センター](https://www.s-itoc.jp)(略称 ITOC)にいます、東です。
これは [mrubyファミリー Advent Calendar 2023](https://qiita.com/advent-calendar/2023/mruby-family) の12日目の記事です。

# はじめに

私は、ITOCで軽量Ruby言語の1種類である、mruby/c を開発しています。
mruby や mruby/c は、C言語との連携ができると応用範囲が広がり、機器の柔軟性・カスタマイズ性もとても良いものとなりますが、なかなかその使い分けの勘所が分かりづらいようです。
一方、ITOCでは [EdgeTech+2023](https://www.jasa.or.jp/expo/) への出展があり、展示用デモ機がなにか欲しいので、mruby/c によってカスタマイズ可能な 7セグメントLED表示デバイスを作ろうと思いました。
この記事はその製作記であるとともに、mruby, mruby/c の使いどころはここだ! という事を示したいと思って書きます。

元記事を表示

【Rails】Active Adminの管理画面にVueを導入する方法

:::note info
本記事では、管理画面のUI/UX向上を目的として、RailsのActive AdminにVueを導入する方法について紹介します。
:::

# 注意事項
Rails、およびVueプロジェクト立ち上げ方については本記事では触れません。また、今回はVueのビルドツールとしてViteを採用しています。Webpackでは動作しませんので、ご了承ください。

# 本題
管理画面にVueを適用するためには、最低限HTMLファイル上で以下2つの設定する必要があります。
– VueをマウントするためのHTML要素の用意
– バンドルされたJSファイルとCSSファイルのインポート

しかし、Active AdminはDSL(ドメイン固有言語)であり、通常直接HTMLファイルを編集することはありません。Rubyのコードを基にHTMLが自動生成されます。

ですが、抜け道として[カスタムページ](https://activeadmin.info/10-custom-pages.html)という機能が用意されており、任意のhtmlファイルを表示させることが出来るので、これを使用します

元記事を表示

検索フォームを用いての検索機能の実装

# はじめに
@rinrin_abc1818 です。
今回は自身のアプリケーションに検索機能を実装したのでそちらの保存用に投稿します。

:::note warn
筆者はプログラミング経験半年です。
至らない点があるかと思いますので、その際はご指摘いただけると幸いです。
:::

# 概要
現在Ruby on Railsを用いて投稿型のアプリケーション作成中です。
ユーザー管理機能、投稿機能と終えて、現在は検索機能に取り組んでいます。

今回検索機能として、一覧ページ下部の検索フォームと詳細検索ページの二つを実装したのですが、今回は検索フォームでの検索機能についてまとめました。

# 検索フォームでの検索機能の実装
1.検索フォームについて

検索フォーム自体はform_withを使用します。
“`ruby
<%= form_with(url: search_path, method: :get) do |form| %>
<%= form.text_field :query, placeholder: "キーワードを入力" %>
<%= form.su

元記事を表示

importmap -> vite_rails への移行

## 参考

https://vite-ruby.netlify.app/guide/

## インストール

“`rb
gem ‘vite_rails’
“`
をgemファイルに追加する。

“`rb
bundle install
“`
を実行して、インストール完了。

## セットアップ

“`rb
bundle exec vite install
“`
を実行すると、必要なファイルや変更を自動で行ってくれる

## importmap用コードの削除

これは手動で行う必要がある。

## CI

[公式ドキュメント](https://vite-ruby.netlify.app/guide/development.html#integration-tests-in-the-ci-%E2%9C%85)によると、テストを実行する前に

“`bash
bin/rails assets:precompile
“`

を実行することで、アセットを事前に利用可能な状態にできる。
なので、CIにこのステップを追加するだけで良い。

## デプロイ

“`shell
RA

元記事を表示

エンジニア未経験の学生が実務を通じて学んだ4つのこと

## この記事って何?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682317/4c91b722-6e7b-ceab-1f6f-9f8513dba3a9.png)

エンジニア未経験の学生が、バックエンドエンジニアが入社前に取り組む課題を通じて学んだことを、ひたすら書いていく記事になります。

対象読者としては自分と近い人、すなわち新卒未経験のエンジニアの方を考えています。まだ新卒の私が言うのもおこがましい気はしますが、少しでもこの記事が役に立ってくれたら嬉しいです。

## 自己紹介
私は2023年の10月に、SaaSアプリを開発しているスタートアップに新卒入社しました。現在は、バックエンドエンジニアとして主にRailsを使用した実務に取り組んでいます。

入社前は大学生向けのプログラミングスクールに在籍しており、Swiftを使用してiPhoneアプリを開発したり、JavaScriptを使用してWebサイトを構築した経験があります。ただ上記は主に個人開発でしたので、実務の経験はあり

元記事を表示

Sinatra製簡易WEBアプリのパフォーマンス調査 on Fargate(EC2と比較しながら…のはずだった)

:::note info
この記事はLITALICO Advent Calendar 2023のカレンダー3の12日目の記事です。
https://qiita.com/advent-calendar/2023/litalico
:::

# はじめに

## 自己紹介

株式会社LITALICOでWEBエンジニアをやっています。ti-aiutoと申します。

普段は個人向けのWEBサービスの開発を担当していて、特にモノリスなアプリケーションを持続可能な形に保つこと、フロントエンドの開発しやすい環境を整えることに関心があります。

今年度から新設された基盤グループというところに異動して、セキュリティ面・パフォーマンス面や開発効率向上などの観点から色々と動いていく仕事をしています。

## この記事の背景

今年の2月に、とあるアプリケーションのEC2 → ECS on Fargateの移行を行いました。

その話は別途記事としてご紹介する予定なのですが、その中でFargateに移行した途端にLatencyが倍に悪化するということがありました。

調べていくと、Fargateはスペック面で

元記事を表示

【Ruby Gold3.1詰まったシリーズ】tallyメソッド確認してみた

# はじめに
今回はtallyに関する内容です。Ruby3.1の新しい概念の一つにtallyメソッドがあるので簡単にまとめてみます。

# 確認してみた
環境はruby 3.1.4です。
[こちら](https://qiita.com/heysan/items/82bdfb7af4325f05e0e5)によると、tallyメソッドは要素ごとの個数を返すメソッドらしいです。
実際に配列に対してtallyメソッドを実行
~~~ruby
fruits = [“banana”, “pineapple”, “grape”, “apple”, “grape”, “pineapple”]
fruits.tally
~~~
すると、
~~~
irb(main):001> fruits = [“banana”, “pineapple”, “grape”, “apple”, “grape”, “pineapple”]
irb(main):002> fruits.tally
=> {“banana”=>1, “pineapple”=>2, “grape”=>2, “apple”=>1}
~~~
bana

元記事を表示

GitHubレポジトリを一括でUnwatchするためにChatGPTに頼んだ

## 何が起きたか

新しい企業に就職・転職したときGitHubアカウントは個人アカウントを使ってね!と言われることは多々あるでしょう。
さらに参加した会社の組織リポジトリのほとんどに書き込み権限が付与されていると、通知の設定を変更していないと恐ろしい数のメールが出社翌日からメールボックスに溜まっていくことでしょう。

以下の記事に書かれている「通知設定の変更」と「送信先メールアドレスの変更」を事前に設定していれば問題ないのですが、気づいたときには大体時すでに遅し、という場合もあるのではないでしょうか。

https://zenn.dev/siketyan/articles/you-are-not-using-github-correctly

私もそうでした。頑張って手作業で1つずつリポジトリのUnwatchを頑張ろうと思ったのですが、200以上のリポジトリがあったため早々に諦めました。

## 対策

1年前の私なら、きっとGoogle検索をしながら頑張ってRubyスクリプトを書いていたことでしょう。しかし、2023年はChatGPTという頭脳があります。もちろん課金済みです。早

元記事を表示

ratyを用いた星評価機能の実装( ruby on rails )

# まえがき
**[DMM WEBCAMP Advent Calendar 2023](https://qiita.com/advent-calendar/2023/infratop)** 12日目記事です。

DWCメンター・卒業生が記事を投稿しておりますので、是非他の記事もご確認ください!
# 初めに
ここでは,rubyのフレームワークであるruby on railsで,星評価機能をratyを用いて実装する手順について説明します。

# 1. githubからファイルをダウンロード & 解凍
[こちらのgithubリポジトリ](https://github.com/wbotelhos/raty)に移動し,緑色の`Code`ボタンをクリック。
`Download ZIP`があるため,そちらをクリックし,リポジトリのファイル群をダウンロードする.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967037/8932cc84-36db-fe61-6a74-101606a7f81a.png

元記事を表示

Ruby芸160チャレンジ(#12)引数や標準入力の読み込み

## この記事は何
[shellgei160を通じて言語習得 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/learning-via-shellgei160)に参加しています。

書籍「シェル芸ワンライナー160本ノック」の例題をRubyで解いてみて、Rubyの学習に役立てようとするものです。

例題はこちらのリポジトリで公開されているものに限ります。
https://github.com/shellgei/shellgei160

## 実行環境など
– Docker image: ruby:3.0.2
– 上記リポジトリをクローンした上で、リポジトリのルートディレクトリ直下に`answer-ruby`ディレクトリを作り、その中に解答となるファイルを作成していきます。

## 今回のテーマ
https://github.com/shellgei/shellgei160/blob/master/answer/12.md

“`bash
#!/bin/bash
if [ “$1” = “” ] ; then

元記事を表示

Ruby芸160チャレンジ(#11)複数行テキストを一塊として扱う

## この記事は何
[shellgei160を通じて言語習得 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/learning-via-shellgei160)に参加しています。

書籍「シェル芸ワンライナー160本ノック」の例題をRubyで解いてみて、Rubyの学習に役立てようとするものです。

例題はこちらのリポジトリで公開されているものに限ります。
https://github.com/shellgei/shellgei160

## 実行環境など
– Docker image: ruby:3.0.2
– 上記リポジトリをクローンした上で、リポジトリのルートディレクトリ直下に`answer-ruby`ディレクトリを作り、その中に解答となるファイルを作成していきます。

## 今回のテーマ
https://github.com/shellgei/shellgei160/blob/master/answer/11.md

“`bash
$ cat gijiroku.txt | xargs -n2 | sed

元記事を表示

【Ruby】最近使い方がわかってきたメソッド5選

# はじめに
最近使い方がわかってきたメソッドを5つまとめました。
5選と言いつつ、丁度5つしかありません。

# values_at

引数で指定されたキーに対応する値の配列を返します。

“`ruby
h = {1=>”a”, 2=>”b”, 3=>”c”}
p h.values_at(1,3,4)
#=> [“a”, “c”, nil]
“`

例えば、ユーザーのプロフィール情報がハッシュに格納されていて、特定の情報(例:名前、年齢、住所)だけを取得したい場合などに使います。

“`ruby
profile = {name: “Taro”, age: 20, address: “Tokyo”, job: “Engineer”}
p profile.values_at(:name, :age) #=> [“Taro”, 20]
“`

https://docs.ruby-lang.org/ja/latest/method/Hash/i/values_at.html

# max
maxは、配列の要素から最大値を返すメソッドです。
引数がない場合

元記事を表示

OTHERカテゴリの最新記事