Ruby関連のことを調べてみた2022年09月03日

Ruby関連のことを調べてみた2022年09月03日
目次

Python,Ruby,PHP,Java,JavaScript,Perlの正規表現の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlの正規表現の比較

# Python

https://qiita.com/FukuharaYohei/items/459f27f0d7bbba551af7

# Ruby

https://qiita.com/shizuma/items/4279104026964f1efca6

# PHP

https://qiita.com/miriwo/items/da463cfcae441400381a

# Java

https://qiita.com/suema0331/items/5dde9f91671100a83905

# JavaScript

https://qiita.com/iLLviA/items/b6bf680cd2408edd050f

# Perl

https://perlzemi.com/blog/2

元記事を表示

returnはつけるの無粋すぎる

こちらはプログラマーなりたてのへっぽこパンピーが、自分の自分による自分のための忘備録として書いてるので、間違いもがあるかもですがあしからず!

# Rubyは基本的に関数内でreturenを記述する必要がない
そもそも、関数内でreturnが必要ないってのは、僕も知ってたんですよ。

“`Ruby
#これはたとえ
def addition(x)
x + 1
end
“`
でもかたかたコードを書いた結果、なぜか関数からの返値が**nil**になってたんですよ。
もうその時は、**nanu!?** ってなりましたね。

“`Ruby
#これはたとえ
def addition(z)
a = x + 1
return a
end
“`
だからreturnを追加してしっかり値が返るようにしたんですよね。
でもそれがどんなに**非道な行いだと**は思いよりませんでした….

結果からいえば、returnいらないよって言われた際に
**「いやでも、値返ってこんかったし」** と心のマリワナ海溝より深いところで思ったので、証明してみたく再度試してみたら、returnを記述しなくても

元記事を表示

devise_token_authのメール認証済みでないとログインできない機能をRSpecでテストする方法

はじめに

devise_token_authのログイン機能が開発し終わったので現在RSpecでテストを書いているのですが、”メール認証済みでないとログインできない”というテストを書くことができたので、備忘録として残そうと思います。

sessions_spec.rbで何をテストするか

devise_token_authで設定をすればアカウント作成時にメールで本認証を行わないとログインができない機能を実装することができます。
この”sessions_spec.rb”は、ログイン機能を担当しているので”メールが送信できているか?”などのテストではなくシンプルに、
~~~
・認証が済んでいればそのアカウントはログインできる
・認証ができていなければそのアカウントはログインできない
~~~
という2点が問題なく動作していることをテストで確認できればOKという考えになりました。
アカウントを作成する箇所のテストについては、registrations_spec.rbで記述します。
(その他パスワードやメールアドレスが間違っている場合はログインできない等のテストは書いていますが、認証とは

元記事を表示

インデントを合わせないのはインシデント

こちらはプログラマーなりたてのへっぽこパンピーが、自分の自分による自分のための忘備録として書いてるので、間違いもがあるかもですがあしからず!

## コードを記述する時はインデントを合わせるべし
プログラマーからしたら言わずもがなことかもしれないのですが、あだち充の主人公の違いもわからない粗雑な人間は、ついつい微妙にずれてる場合が多い。
“`Ruby
if kazuya_hadnt_died
puts ‘atsuya would not be playing baseball’
end
“`
段落ごとにスペース2つ分あけたら、こうなるやろ
“`Ruby
if kazuya_hadnt_died
puts ‘atsuya would not be playing baseball’
end
“`

この微妙な違いに気づかなかった人はドンマイとしか言いようがないが(僕もドンマイ側の人間ではあります)、それだけでは済まされないのです。

>インデントの微妙な違いに気づかない男は、女性の微妙な変化にも気づけない不幸な人間だ

と、アラン・チューリングも言ってたらしいけど、たぶん言

元記事を表示

プログラミングスクールを卒業して思うこと

# はじめまして! 

私はDMM WEBCAMP COMMIT(以下DWC)を8月に卒業しました[すずしゅん](https://twitter.com/6heouP1HUKGRAJe)と申します。
前職は地方のホームセンターで販売員をしていました。
これからスクールに通おうと考えている方や在校生の参考になればと思い記事にしました?‍♂️

# 目次
* なぜプログラミングスクールに通おうと思ったか
* 1ヶ月目
* 2ヶ月目
* 3ヶ月目
* 4ヶ月目
* 学習中に取り組んだこと
* 学習中に意識していたこと
* スクールの感想
* プログラミングはスポーツと同じだと思う
* 最後に

# なぜプログラミングスクールに通おうと思ったか
独学でプログラミングを習得できなかった、つまり挫折したことが大きなきっかけです。
学習をしていくなかでエラー解決ができずに1日過ぎてしまうことがあり、
このまま惰性で続けていても、エンジニアになれないと思っていました。

プログラミングスクールは以前から知っていて、興味本位で説明会に出席したのですが、
そこで言われた言葉がとても印象に残っています。

元記事を表示

関数に名前を付ける時の奥義

# パンピープログラマーのメソッド名の命名の仕方とか文言の表記の仕方についての覚書

こちらはプログラマーなりたてのへっぽこパンピーが、自分の自分による自分のための忘備録として書いてるので、間違いもがあるかもですがあしからず!

## メソッドに名前をつける時の原則
1.誰が読んでも一目で何をしているかわかる名前
たとえばユーザー名をモデルから取得して、他の情報と合体させて表示させる時は..以下がよろし

“`Ruby
def display_user_name_and_emal
user user.name + user.email
end

“`
下の命名だと表示できるように関数内で作ってるかもしれんいなが、正確には表しとらんじすたラジオ
“`ruby
def create__user_name_and_emal
user user.name + user.email
end
“`

## viewに表示する文言の表示原則
基本的に新規で作成する場合は、好きなように(といっても皆がわかるように)つければいいですが、これがもしリファクタリングの場合….

最初

元記事を表示

【初投稿・初個人開発】引越時のタスクを管理するアプリ「引越サポート」を作りました。

# はじめに
ご覧いただきありがとうございます。@yk___3110と申します。

突然ですが、皆さん「引越」の経験はありますか。
私は過去2回の引越をしたのですが、その際に下記のように思いました。

・いつまでに、何をやったらいいか分からない
・何をやるべきか調べることが面倒
・物件選びや荷造り以外にも、やることが多い

引越時に、いつまでに何をやるべきかを、一目で確認できるアプリがあれば便利だと思い、このアプリを作成しました。

オリジナルアプリケーション「引越サポート」
https://enigmatic-springs-57135.herokuapp.com/

# 使用環境
* Ruby 3.0.1
* Rails 6.0.3
* PostgreSQL 14.4

# アプリの主な機能
### 引越予定日の設定機能
アカウント登録後、引越予定日を設定する画面に遷移します。引越予定日を入力してください。
![スクリーンショット 2022-09-02 17.47.17.png](https://qiita-image-store.s3.ap-northeast-1.amazo

元記事を表示

[Rails]冷や汗?本番DBを誤った値で書き換えた話(“_”でのwhere検索)

## 概要
データを更新する処理を行なった際に、
検索条件に”_”が入ることで予期せぬデータを書き換えてしまいました。

## 問題となったコード
Brandテーブルのnameカラムが”_”のものだけ、”ユニクロ”に変更したいというコードです。
“`
Brand.where(“name LIKE?”, “_”).update_all(name: “ユニクロ”)
“`

## どこが間違っているか

`Brand.where(“name LIKE?”, “_”)`で検索すると、
“_”のものだけではなく、
数字1文字のものや、漢字1文字のものなどにもヒットしてしまいます!

## 理由
– [Railsガイド](https://railsguides.jp/active_record_querying.html#:~:text=%E5%BC%95%E6%95%B0%E3%81%AFSQL%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E9%98%B2%E3%81%90%

元記事を表示

Ruby と比較しながら Bash で AtCoder に登録したら解くべき精選過去問 10 問を解いてみた

# はじめに
シェルスクリプトに関わる可能性が出てきたのでやってみました。
ちなみに、`Atcoder`の`Bash`の現行のバージョンは**5.0.11**で、次のコマンドで実行されます。
“`console
bash ./Main.sh
“`
他にも、`dash(0.5.8)`や`zsh(5.4.2)`で解くことができます。
`Atcoder`凄いぞ。

以下の、諸先輩の記事を参照させていただきました。

https://qiita.com/cympfh/items/b860ecb5f5415b15f3c9

https://qiita.com/yuizumi/items/d55f9dfe56fa2bf12d94#_reference-cfc03c2c7e91abfd7956
# 精選過去問 10 問
https://atcoder.jp/contests/abs/tasks/practice_1
“`rb:ruby
a = gets.to_i
b, c = gets.split.map(&:to_i)
s = gets.chomp
puts “#{a+b+c} #{s}”

元記事を表示

オリジナルアプリ 内山農園

# はじめに

こんにちは。@Taro_Kanameです。卒業制作で初めて製作したオリジナルアプリです。このアプリは、実家の兼業農家で起こりうる、B級品の食品ロス問題を少しでも解決できたらと思い製作しました。

# アプリ開発のきっかけ
私の実家は兼業農家をしています。農協で販売できるものA級品は余ることはありませんが、B級品となったものは毎回コンテナ約1箱〜多い時は5箱分を処分しています。ご近所も農家が多く、畑にまだ食べられる野菜や果物がよく大量に捨てられています。
またB級品の中でも状態がいいものは、捨てるのも勿体無いため両親が知り合いに1件1件電話をして、安価もしくは無料で渡しています。これに伴いもう一つ問題になってくるのが、野菜に欠けた費用に対して収益が少なくなるため、毎年赤字へと繋がっています。
![イメージ写真.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667900/f6ccc2a3-db99-8c6a-3ac6-57330073d812.png)

# 使用環境
・ruby 3

元記事を表示

RailsコードをGoで書き直して、FFIを使ったらメモリリークした話

先日、[速度改善のためRailsコードをGoで書き直して、FFIを使ってみた](https://qiita.com/t_mapico/items/9eadf5bee5561c3fb589) という記事を書いたのですが、
このコードがメモリリークを起こしてしまいました。。

golang初心者のため、C.Cstringがgoのメモリ解放の管理から外れているいうことを把握していませんでした。。

“`
return C.CString(string(resultJSON))
“`
となっているとこを deferで解放するようにしました。

“`
ret := C.CString(string(resultJSON))
defer C.free(unsafe.Pointer(ret))

return ret
“`

メモリリークしないか1時間くらい動かしてチェック

“`

end_time = (Time.now + 60 * 60).to_i

while (Time.now.to_i < end_time) # ObjectSpaceはデフォルトが

元記事を表示

FactoryBot で save 時に context を渡す

# 前置き: validation_context とは

避けたい `validation` がある時など、`validation` の条件に `validation_context` を利用し、

“`app/model/user.rb
class User < ApplicationRecord before_validation :set_bar, unless: -> { validation_context == :hoge }
# …
end
“`

`save` 時に、`context` を指定してあげれば、`validation` を避けられます。

“`app/controller/user/user_controller.rb
class User::UsersController < User::ApplicationController def create @user = User.new(user_params) @user.save(context: :hoge) # ...

元記事を表示

【個人開発】家庭の問題に特化した情報共有アプリ「katekate」を作りました

# はじめに

こんにちは、@seshiruff4214と申します。
日々色々なニュースがある中で家庭環境や家庭の問題から大きな事件に発展してしまうようなことが連日のように報道され、核家族世帯も増加している中で悩みなどを人に相談できていないのではないか?と考えました。
自分の家庭でも子育てを行う中で、体調が悪かったり、落ち着きがなかったり、幼稚園で困っていると先生に言われたり…日々色々な子育ての悩みがあり、他の人たちはどうしているのだろう?と考えることも多く、悩みを解決できた人、今悩んでいる人がつながって互いに問題解決をすることができないだろうかと考えこのアプリを作成しました。

katekate〜家庭の過程〜:http://www.katekate.blog
GitHub:https://github.com/shota4214/Graduation_exam_katekate.git
katekateは親や子供が抱える問題や知識を他者と共有しユーザー同士で繋がることができるアプリです。 あなたの悩みは誰かの悩みでもあり、あなたの経験が誰かの希望になります。
![スクリーンショット

元記事を表示

rubyの「gem graphql-client」を使用しているときにfragmentの定義でハマった

## 内容

github: https://github.com/github/graphql-client

以下のように定義したら、

“`ruby
HumanFragment = SWAPI::Client.parse <<-'GRAPHQL' fragment on Human { name homePlanet } GRAPHQL ``` こんな感じで使えるgithubには書いてあるのに使えない。 ```ruby HeroNameQuery = SWAPI::Client.parse <<-'GRAPHQL' { luke: human(id: "1000") { ...HumanFragment } leia: human(id: "1003") { ...HumanFragment } } GRAPHQL ``` そんな時の対処法。 ```shell ... uninitialized constant HumanFragment (GraphQL::Client::Va

元記事を表示

ミニツク演習3から学んだこと

## 演習内容
ミニツクの「Ruby演習コース」演習3
URL: http://www.minituku.net/courses/500228005/contents/820836204.html

## 解答と実行例
上記サイトより引用。モジュールの解答と問題文で提示されたclassなどは同じファイルにまとめる想定です。
“`
##### 本問題では以下モジュールの中身を考える。 #####
module Mail
attr_reader :sender, :recipient, :text, :date ### 要点1 ###

def send
puts “#{@date = Time.now}: Sending a #{self.class} to #{self.recipient}.” ### 要点2、4 ###
end

def write(text)
@text = text
end

def to_s ### 要点3 ###
“#{self.class} of #{@date}:\n\nDear #{@

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlのファイル入出力の比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,Perlのファイル入出力の比較

# Python

https://qiita.com/onishi_820/items/f3068d5533a1f4f5ae39

# Ruby

https://qiita.com/Morio/items/8f0dc0801cfcb98d8269

# PHP

https://qiita.com/Morio/items/1deca77b370851ed914f

# Java

https://qiita.com/DeraTosev/items/77cd689da4426b892793

# JavaScript

https://qiita.com/shirokuman/items/509b159bf4b8dd1c41ef

# Perl

https://perlzemi.com/blog/20

元記事を表示

Ruby入門

# Ruby超基礎文法
自分用

## Hello World
“`ruby
puts “Hello World”
puts “Hello” + “World”
“`
– puts
出力命令

– 文字列
文字列にはシングルクォーテーションかダブルクォーテーションをつける
数値には不要
`+` で文字列の連結もできる

## 変数
“`ruby
number = 1
number += 1 # number = 2 になる
user_name = “イチロー”
“`
– 変数
スネークケース
数字スタート・ローマ字不可

– 変数更新
後に代入すれば上書きできる
`+=` などは利用可能
`++` `–`  は利用不可らしい

“`ruby
hello = “こんにちわ”
name = “イチロー”
puts hello + name # こんにちわイチロー
name += “さん” # イチローさん
puts “こんにちわ#{name}” # こんにちわイチローさん
“`
– 文字列の結合
`+` を用いることで文字列を連結可能

– 変数展開
文字列内に

元記事を表示

確認ダイアログに変数をぶち込む方法 rails + javascript

## やりたいこと

プロ野球の試合を予想するアプリを作っています。
以下の画像のように確認ダイアログに変数を表示したい。(下記画像のチーム名とスコアは変数である)
![https://i.gyazo.com/9fd0b8470b61681e0780fd3d441d61d8.png](https://i.gyazo.com/9fd0b8470b61681e0780fd3d441d61d8.png)
## やり方
Railsで確認ダイアログで変数を表示することはほぼ不可能らしい。よってJavaScriptに頼る。
しかしフォームを送信し保存する処理はRailsで書いた。
なのでフォーム送信はRailsで実装。確認ダイアログの表示はJavaScriptで実装していく。
## 手順

1. railsで確認ダイアログの表示設定を消す
2. JavaScriptで確認ダイアログを表示する
3. 送信ボタンにイベントを設定する
4. 確認ダイアログに変数を格納する
5. confirmメソッドの性質を理解する
6. 処理を分岐させる

## 1, railsで確認ダイアログの表示設定を消す
確認

元記事を表示

/Users/*****/.rbenv/shims/rails: line 21: /usr/local/Cellar/rbenv/1.1.2/libexec/rbenv: No such file or directoryの解決方法

## 何をしたらこのエラーが出たか
以下のコマンドを押したときにエラーが出た。
“`
brew install imagemagick
“`

## 解決までに試したこと
まず、cd start-appで移動してから、始まります。

“`
[******@******: (画像投稿機能の実装)start-app]$rails s
/Users/******/.rbenv/shims/rails: line 21: /usr/local/Cellar/rbenv/1.1.2/libexec/rbenv: No such file or directory
“`
“`
[******@******: (画像投稿機能の実装)start-app]$rbenv rehash
rbenv: cannot rehash: /Users/yuma_mukai/.rbenv/shims/.rbenv-shim exists
“`
rehashができない。
ここで、rbenvに問題があることがわかる。

“`
[******@******: (画像投稿機能の実装)start-app]$rbe

元記事を表示

direnv: error can’t find bash: exec: “bash”: executable file not found in $PATHエラーの解決方法

## どういう状況だったか
あらゆるコマンド(ls,ruby -v,rails s等)を押しても、command not foundになってしまっていた。

## 原因
vim ~/.bash_profileで、PATHの環境変数をいじって、source ~/.bash_profileで反映させた時、誤字が含まれてしまった。実際に、echo $PATHで確認してみると、以下のように表示された。
https://gyazo.com/fa12919337960c038255c183cb6c765b

## 解決方法
bash_profileの中身がおかしくなっていた時に、上記のエラーが出た。そして、vim ~/.bash_profileコマンドでは弾かれたので、ホームディレクトリで/usr/bin/vi .bash_profileコマンドを押すことによって、bash_profileの中身は確認できる。

以下は同じ意味
“`
/usr/bin/vim .bash_profile
vim ~/.bash_profile
“`

bash_profileに誤字かスペースが入っていたため、

元記事を表示

OTHERカテゴリの最新記事