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

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

激あま!RenderでRubyアプリを無料で簡単にデプロイ

## デプロイ案内はサイトに記載されている

*参考サイトRuby with Render*

https://docs.render.com/deploy-rails

:::note warn
無料枠はアプリ1個までなので、複数持つことはできません。
:::

## 著者のつまずいた箇所

1. master.keyファイルが作成されていなかった。
*参考サイトmaster.key作成*
https://qiita.com/naokit-dev/items/5e09b2fb4b64a29712e4

サイト内を参考にして、使用した説明とそのコマンド

*②master.keyの中身がわからない場合
credentials.yml.encに機密情報を追記した覚えがない、運用するつもりもない、
または記述した内容が消えてしまっても再現可能な場合にこの方法を試してください*

*一旦credentials.yml.encを削除して、
master.keyもcredentials.yml.encもない状態をつくる*

そして次のコマンドを入力
“`
sudo EDITOR=”vi”

元記事を表示

コマンドライン上で Ruby の String#gsub を使ってファイルの内容の置換を行う

## やりたいこと

– コマンドライン上でファイルの内容を置換したい
– ワンライナーで行いたい
– 正規表現を使いたい

## 方法

“`shell-session
$ cat ~/Downloads/yoyo.rb
class Yoyo
MATERIALS = {
:a6061 => ‘アルミ合金 (A6061)’,
:a7075 => ‘アルミ合金 (A7075)’
}.freeze
end

$ ruby -i -e ‘gets(nil).gsub(%r{:(\w+) => (.+)$}) { “#{$1}: #{$2}” }.then { puts(_1) }’ ~/Downloads/yoyo.rb

$ cat ~/Downloads/yoyo.rb
class Yoyo
MATERIALS = {
a6061: ‘アルミ合金 (A6061)’,
a7075: ‘アルミ合金 (A7075)’
}.freeze
end
“`

## 解説

### ruby コマンドのオプションについて

[Ruby の起動

元記事を表示

ActiveRecord::Core の clone と dup の違い

## clone と dup の違い

– clone
– shallow コピー
– **id を保持する**
– **タイムスタンプやロックに関する属性を保持する**
– **属性はコピーしない**
– つまり、clone したオブジェクトの属性を変更すると、元のオブジェクトの属性も (同じオブジェクトなので) 変更されてしまう
– アソシエーションはコピーしない

– dup
– shallow コピー
– **id は保持しない (新規レコード)**
– **タイムスタンプやロックに関する属性は保持しない**
– **属性をコピーする**
– アソシエーションはコピーしない

“`rb
yoyo = Yoyo.find_by!(name: ‘モジョ’)
cloned_yoyo, duped_yoyo = yoyo.clone, yoyo.dup

# duped_yoyo は新規レコード扱い。
[yoyo.id, cloned_yoyo.id, duped_yoyo.id]
#=> [1, 1, nil]
[yoyo.new

元記事を表示

文字を区切り文字で分割して配列に入れる

文字を区切り文字で分割して配列に入れるソースコードは下記の実装です

“`Ruby
input_line = gets.chomp
array1 = input_line.split(‘ ‘)
A = array1[0].to_i
B = array1[1].to_i
puts A + B
“`

元記事を表示

【Ruby】配列への追加(push・unshift)・削除(pop・shift)が覚えずらい

# はじめに
こんにちは、progateでRubyを勉強したのち「ゼロからわかるRuby超入門」を勉強しています。
本書で配列への追加と削除コマンドを習ったのですが、覚えずら過ぎたので自分なりにまとめてみました。
同じ境遇の方の力になれば幸いです

環境:ruby 3.3.5

# それぞれの概要
まずは追加・削除コマンドのそれぞれの概要について説明したのち、整理していこうと思います
### `push`
まず、`push`は配列の末尾に要素を追加します。
“`ruby:push.rb
drinks = [“カフェラテ”, “コーヒー”]
drinks.push(“紅茶”)
p drinks # => [“カフェラテ”, “コーヒー”, “紅茶”]
“`

### `unshift`
`unshift`は、配列の先頭に要素を追加するメソッドです。
“`ruby:unshift.rb
drinks = [“カフェラテ”, “コーヒー”]
drinks.unshift(“紅茶”)
p drinks # => [“紅茶”, “カフェラテ”, “コーヒー”]
“`

### `po

元記事を表示

M2 MacbookのRuby環境構築について

## Ruby の環境構築について

PC を新調して Macbook M2 になったので改めてRubyの環境構築してみてみました。
私の環境構築が誰かに役立てればと思います。
ただ、プログラミングは初心者で環境構築に関しても知見が浅いため、間違っていれば指摘していただけると嬉しいです。

### 前提

VScode はインストール済みです。
PC の概要は以下です。
・Apple M2
・Mac OS sonoma 14.6.1(23G93)

## ▼ Command Line Tools をインストール
Command Line Tools は Web アプリケーション開発に必要なソフトウェアをダウンロードするために必要な機能みたいです。
以下のコマンドでインストールできます。

“`
% xcode-select –install
“`

## ▼ Homebrewを用意しよう!
Homebrew は、ソフトウェア管理ツールです。
M2 の場合以下のコマンドでインストールできました。
“`
% /bin/bash -c “$(curl -fsSL https://

元記事を表示

Ruby :html内で<%= %>で囲む理由

railsの勉強をしています。
わからないところがあっても一旦はスルーして、後から意味を考えるようにしています。

このたび、一度スルーしたけど無視できない位気になったので改めて調べたことがあります。

それがrubyの<%= %>で囲む意味。
rubyではこのようにタグをつけます、のようなことを習って
「なるほどね~」とそのときは思って何も気にせず使っていました。

しかし、なんで%が出てくるの?と疑問に思ってしまいました。
おそらくその理由は演算子の余りで使う「%」が頭の片隅にあったから。
なんで演算子の「%」が急に出てくるんだー!?と脳のどこかが混乱していたんだと思います。

プログラミングに慣れると、「最初に%がつくんだから演算子なわけないじゃん」と、
そんなことを気にすることもないのかもしれません。
しかし超初心者の私は記号が出てくるだけで頭が大混乱します。
早く慣れて気にならなくなりたい。

「ruby % タグ」等といくつか検索しても私の求める結果は出てきませんでした。
私の調べ方が悪かっただけかもしれません。
そこでChatGPT先生に「Rubyの<%= %>って何で

元記事を表示

Ruby環境不要のRailsアプリジェネレータ rails-new

Railsプロジェクトを新規に作ろうと思った時、OSアップデートとかの影響で環境構築につまづいちゃうみたいなこと経験ありませんかね (Railsに限った話ではないんだけど)

そんなときに役立つのが、わりかし最近リリースされた`rails-new`ジェネレータです。

https://x.com/robzolkos/status/1842615591812690328

## `rails-new`とは?

[`rails-new`](https://github.com/rails/rails-new)はrust製のRailsアプリの雛形ジェネレータです。

このツールの最大の特徴は、ローカルマシンにRubyやRailsの環境がなくても、簡単に新しいRailsプロジェクトの雛形を作成できることです。

[リリースページ](https://github.com/rails/rails-new/releases)からバイナリをダウンロードして、パスの通ったディレクトリに配置するだけで `rails-new` コマンドが使用可能になります。

## 基本的な使い方

`rails-new

元記事を表示

【Ruby】学習内容まとめ①

Stringについて学んだことを整理しました。

Stringに使用するメソッド一覧

**upcase**
…小文字の文字列を大文字にする
<使用例>

test = 'test'
test.upcase
    =>TEST

—————————-
**downcase**
…大文字の文字列を小文字にする
<使用例>

test = 'TEST'
test.downcase
    =>test

—————————-
**slice**
…文字の切り分けを行う
<使用例>

test = 'あいうえお'
 test.slice(1,2)
  => "いう"

—————————-
**size**
…文字の大きさを確認する
<使用例>

test = 'あいうえお'
 test.size
  => "5"

—————————-
**to_i**
…文

元記事を表示

シェルスクリプトをRubyで作る

## 環境

Ubuntu20.4
Ruby2.6

## はじめに

「Linux環境でシェルスクリプトを書くことになったのだが、bashの文法はあまり詳しくないし、普段書きなれたRubyを使ってサクッと作れないだろうか・・・。」

「Rubyなら色々なgemが用意されているし、複雑な処理でもシンプルに記述できるんだけどな
・・・。」

なんて思ったときは、Rubyを使ってシェルスクリプトを作ることができるのです。シェルスクリプトにしなくても、Rubyプログラムとして、ruby hoge.rbで実行してもいいのだが、シェルスクリプトにすると、.hoge.shで実行することができます。だけの話と言えば、だけの話ではありますが。

中身はRubyの文法のままで、あたかも、bashで動いているようなスクリプトを作ることができます。また、Rubyで作っても、systemやIO.popenを使うことで、Linuxのコマンドを埋め込むこともできます。

## 内容

Rubyで記述する場合は、シバンにはbashを指定するのではなくRubyを指定します。そして、スクリプトファイルの拡張子はshにし

元記事を表示

【Rails】Rspecでテストを行う際に使ったメソッドまとめてみた

こんにちは!
今回は、実際にRspecでテストをする上で使ったメソッドをまとめてみました。

### 1, “` describe “`
テストのグループ化に使用され、テスト対象となるクラスやメソッドの説明を行う。
“`php
describe ‘User’ do
# Userクラスに関するテスト
end
“`

### 2, “` context “`
条件によるグループ化を行う。
“`php
context ‘when user is an test’ do
# ユーザーがテストの場合
end
“`

### 3, “` it “`
具体的なテストケースを記述し,期待する結果をexpectを使って定義。
“`php
it ‘returns the correct name’ do
expect(user.name).to eq(‘Yamada’)
end

“`

### 4, “` expect “`
テストで期待する結果を定義するために使用。
メソッドやオブジェクトの動作が期待通りであるかどうかを確認
“`php
expect(user

元記事を表示

【Ruby】firstメソッド、lastメソッドの使い道

# はじめに
progateでRubyを勉強したのち「ゼロからわかるRuby超入門」を勉強しています。
本書ではfirstメソッドやlastメソッドについて軽く触れられていただけだったのでもう少し深堀してまとめてみたいと思い記事にしました。

環境:ruby 3.3.5

# firstメソッドとlastメソッドとは
これらを説明する前に、まずは簡単に配列(array)について説明したいと思います。
“`ruby:array1.rb
alcohols = [“ウイスキー”,”ラム”,”ジン”]
puts alcohols[0]
# ウイスキー
“`
配列は上記でいうと`alcohols`を指し、[]の中の1つ1つを要素といいます。
ウイスキーを出力したい場合は`alcohols[0]`のように[]の中に数字を指定します。
左から0,1,2と出力しますが最初は1ではなく0なので注意してください。

さて、ここまでで配列について説明したのでfirst・lastメソッドについてみましょう
“`ruby:array2.rb
alcohols = [“ウイスキー”,”ラム”,”ジン”]
p

元記事を表示

【インターン体験記】freee株式会社 2weeks summer internship

## はじめに

2024年の9月2日から9月13日の2週間にわたり、freeeの就業型サマーインターンに参加しましたので、その体験を振り返って記録に残したいと思います。

## 参加した理由

私がこのインターンに参加した理由は、以下の3点です。

1. 普段からfreeeのプロダクト(特に[freee人事労務](https://www.freee.co.jp/hr/))を使用していること
2. Railsを使った大規模なプロダクト開発に携わりたかったこと
3. freeeのデザインが好きなこと

私が現在長期インターンをしている会社では、freeeのプロダクトを使用しており、お世話になっていることから、プロダクトに携わって貢献したいという気持ちがありました。また、大規模開発におけるRailsの使用については賛否があるものの、その課題にどう向き合っているのかを学びたかったこと、さらに、freeeのデザインが私の好みにピッタリ合っていることも理由の一つでした。

freeeのデザインにはこちらに詳しく記載されています。

https://brand.freee.co.jp/desig

元記事を表示

【Ruby on Rails vs Supabase】: 比較しながら学ぶ Supabase CLI

## はじめに

Supabase CLIを学びたいけれど、どこから始めればいいか迷っていませんか?

本記事では、RailsとSupabase CLIを比較しながら、効率的な学習方法を紹介します。
既存のRails知識を活かして、Supabase CLIの基本をスムーズに習得できるよう構成しています。
Railsとの類似点や相違点を明確にしながら、Supabase CLIの特徴と使い方を解説していきます。

Rails開発者の視点から、Supabase CLIをマスターしましょう!

## 目次

1. [Supabaseとは?](#supabaseとは)
2. [Supabase CLIの概要](#supabase-cliの概要)
3. [環境構築の詳細比較](#環境構築の詳細比較)
– [Ruby on Railsの環境構築](#ruby-on-railsの環境構築)
– [Supabase CLIの環境構築](#supabase-cliの環境構築)
– [環境構築の比較表](#環境構築の比較表)
4. [プロジェクトのセットアップ手順](#プロジェクトのセッ

元記事を表示

Ruby未経験でもできる!Jekyllで転職活動用の自己紹介サイトを作成する

# はじめに
11月末で現職を退職するので転職活動を始めたんですが、忙しくて時間が取れないので少しでもオートマチックに活動ができるようにパブリックな自己紹介サイトを作りました。
あわよくばRubyの勉強になればと思い、Jekyllを使いました。
結果的にRubyの勉強には全くならなかったのですが、デザインセンスがなくても簡単にそれっぽく作れたので記事にします。

作った自己紹介サイト

https://pokeyama.github.io/portfolio-jekyll/

とても長い記事になってしまったのですが、この記事の順を追ってコマンドを実行していけばほぼ同等のものが作れます。

# 環境
Mac M2
Ruby
“`sh
$ ruby -v
ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [arm64-darwin23]
“`

# Jekyllとは
1. Rubyで開発された静的サイトジェネレーター
2. **Markdownで書ける**
3. GitHub Pagesに割と簡単にデプロイできる。

Jekyllは、ブログやポート

元記事を表示

Ruby 3.4 ではデフォルトのブロックパラメータとして it が使える

## この記事は?

Ruby 3.4 で導入される it について説明します。

## it とは?

来たる Ruby 3.4 ではデフォルトのブロックパラメータとして it が使えるようになります (まるで [Kotlin の it](https://kotlinlang.org/docs/lambdas.html#it-implicit-name-of-a-single-parameter) みたいですね) 。it は暗黙的にブロックに渡された 1 番目のパラメータを参照します。この場合、配列の各要素です。ブロックパラメータを明示的に指定する必要がなく、ブロックをよりシンプルに書けるようになります。

“`rb
# 通常のブロックパラメータ
[2, 4, 1, 3].sort_by { |n| n }
#=> [1, 2, 3, 4]

# it
[2, 4, 1, 3].sort_by { it }
#=> [1, 2, 3, 4]
“`

既存の[番号指定パラメータ](https://docs.ruby-lang.org/ja/latest/doc/spec=2fcal

元記事を表示

【Ruby】ifとcaseの使い分けについて

# はじめに
progateで`Ruby`を勉強したのち「ゼロからわかるRuby超入門」を勉強しています。
本書では`if`と`case`の使い分けについて「3つ以上の分岐の場合は`case`を使う」と記載がありました。
ですが`if`にも`elsif`があるので`case`を使用しなくても可読性落ちることがないのでは?と思い記事にしてみようと思いました。
# caseとは
`case`は特定の変数や値に対して、複数の候補の中から一致するものを見つけるために使います。
`case`を使うことで、同じ値に対して複数のパターンを簡潔に記述でき、コードが読みやすくなります。
基本構文は以下の通りです
“`ruby:case1.rb
case 変数
when 値1
# 値1と一致した場合に実行されるコード
when 値2
# 値2と一致した場合に実行されるコード
else
# どれにも一致しない場合に実行されるコード
end
“`
## ifとcaseの違いは
`if`は、複雑な条件式や比較演算、範囲指定が必要な場合に向いています。
一方`case`は、特定の値やパターンに基づ

元記事を表示

ruby eachとmapの違い

mapは既存の配列に情報を加工したいとき、eachは計算如何によっては新しい配列に情報を格納することがある場合とで使い分けられる

def validEmailList(emailList)
arr=[]
def isEmailValid(email)
count = email.count(“@”)
strIndex = email.index(“@”)
slice = email.slice(strIndex..-1)
if email.include?(” “) || count > 1 || strIndex == 0 || !slice.include?(“.”)
return false
else
return true
end
end

emailList.each{ |email|
if isEmailValid(emai

元記事を表示

【PHPからRuby学習】nilってnullと違うんですか?と思ったので備忘録

PHP4年生からRubyを学び始めた初心者です。

PHPと似ているところがあるよ〜ってインターネットで見たので学んでみるか(^o^)
という安易な気持ちで学び始めたが、なんかちょこちょこ違うぞ…となっている。

今回はnilについて学んだのでメモとしてアウトプット。

## 結論
nullと同じか?と思って調べてみた

**ほぼ同じっぽい。**
でも、nilはNilClassというクラスのオブジェクトらしい。
Rubyではすべての値をオブジェクトとしているからnilもオブジェクトになる。

オブジェクトが所属しているクラスのメソッドでnil判定ができる。

### 判定できるメソッドについて
### `nil?`
対象のオブジェクトが`nil`だったらtrueを返す。
それ以外であればfalseを返す。

### `empty?`
対象のオブジェクトが空文字と空配列の時にtrueを返す。
値が存在している場合はfalseを返す。

また、nilで使用するとエラーが発生する。(NoMethodError)

“`

nil.empty? => undefined met

元記事を表示

[備忘録]RailsでWebAPIをつくるときに抑えておくとよさそうなこと

転職をして、Railsを触り始めました。

慣れるまでに時間はかかりそうですが、慣れるとスピーディに機能追加できそうでいいなと思いました。

業務では今WebAPIを触ることがメインで、それに関することをざっくりとまとめました。

どの処理のときに何を使えばいいかをまとめています。

* リクエストを受け取れるようにする→ルーティング
* https://railsguides.jp/routing.html
* リクエストを受け付けるとき
* リクエストを受け付けたときの全体の処理の流れを定義する→Controller
* https://railsguides.jp/action_controller_overview.html
* リクエストパラメータで許可したものだけ受け付けるようにする→Strong Parameters
* https://railsguides.jp/action_controller_overview.html#strong-parameters
* リクエストを一度格納する→Active Model(フォームオブジェクト

元記事を表示

OTHERカテゴリの最新記事