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

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

Rake + Wheneverでブログのステータスを自動的に変更するアプリを作成

# 目的
シンプルなブログアプリに記事のステータスをcronタスクにて自動的に変更する機能を実装する。
# 新規の技術・機能の概要
**Rake**
Rubyで記述されたビルドツール
**Whenever**
railsにてcronタスクを簡単に設定するgem
**執筆時の対象Version**
Rails:5.2.6
Whenever:1.0.0
# 実装方法
## セットアップ ##
“`terminal:terminal
# アプリの新規作成
rails new blog_sample
cd blog_sample
“`
“`terminal:terminal
# scaffoldにてBlogモデルを生成
rails g scaffold Blog title:string content:text
“`
“`diff ruby:db/migrate/*******_create_blogs.rb
class CreateBlogs < ActiveRecord::Migration[5.2] def change create_table :blogs d

元記事を表示

Yahoo 日本語形態素解析 API ver2 を叩く

# 前提
– Ruby 2.7.4
– Faraday 1.7.0
– [Yahoo API ver2](https://developer.yahoo.co.jp/webapi/jlp/ma/v2/parse.html)
– [ver1](https://developer.yahoo.co.jp/webapi/jlp/ma/v1/parse.html) との違い
– リクエストが、GET から POST
– 1リクエストの最大サイズが、100KB から 4KB
– レスポンスが、XML から JSON
– また、以前は、解析内容について、設定が行えた
– 例えば、出現頻度情報を返すようにしたり、名詞に関する情報のみ返すようにしたり

# サンプル
– [リクエスト制限](https://developer.yahoo.co.jp/webapi/jlp/faq.html#requestlimit)を考慮してリトライ設定を行う
– 1つのアプリケーシ

元記事を表示

【未経験】ポートフォリオ開発記録 #01

# はじめに
はじめまして!
自分はweb系の自社開発企業への転職を目指しています。
これから転職活動を進めていくにあたってポートフォリオの開発をしていきます。
その際に、機能実装の流れや詰まったことなどを備忘録的な感じで記録していこうと思っています。

今回は、現在考えているサービスの簡単な概要と、使用技術についてまとめられたらと思います!

# サービス概要
早速ですがサービスの概要です。

現在アイデアとして考えているサービスは、音楽再生機能付きのポモドーロタイマーです。
開発しようと思った背景としては、自分はプログラミングの勉強にポモドーロタイマーを活用しているんですが、自分の好きな音楽とポモドーロタイマーを合わせようとすると、どうしても複数の操作が必要なってしまって地味に面倒でした。
この問題は僕の身の回りにも多いようでした。
これからwebエンジニアとしてやっていくなら勉強はずっとしていくと思いますので、ポートフォリオだけで終わらず長く使えるようなサービスにできればと思い考案しました。

イメージとしてはこんな感じです。

![キャプチャ.PNG](https://qii

元記事を表示

WEB開発をやり始めてみる(Ruby:クラス)

# やったこと
クラスについての学び

### クラスメソッド
クラスから直接呼ぶことができる
selfをつける
### クラス変数
クラス自体に値を保持することができる変数
### 参考コード
“`ruby:
class User
REASION = ‘USA’
@@count = 0

def initialize(name)
@name = name
@@count += 1
end

def hello
puts “I am #{@name}. #{@@count} instance(s).”
end

def self.info
puts “#{@@count} instance(s).Reasion: #{REASION}”
end

end

emma = User.new(‘Emma’)
emma.hello
olivia = User.new(‘Olivia’)
olivia.hello
mary = User.new(‘Mary’)
mary.hello
### 出力結果参考
⇨ I

元記事を表示

UbuntuにRuby Gem(mysql2など)をインストールする時のエラーに対処

以下のエラーはRubyをビルド後にgemでmysql2を入れようとすると表示されます。
(aptは使ってません)

検索するとopenssl等を入れたりして何とかなりましたとか、mysql-dev関係をなどをapt installしましょう
というものが多いのですが、私の場合は全く違う所に原因があったので備忘録のために載せておきます。
というか、何年振りかに環境整えると同じ事で悩んでる気がします。
皆さんこれにハマらないのでしょうか?

“`
ubuntu@ip:~$ gem install mysql2
Fetching mysql2-0.5.4.gem
Building native extensions. This could take a while…
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.

current directory: /home/ubuntu/.rbenv/versions/3.1.2/lib/ruby/gems/3.

元記事を表示

【個人開発】野球観戦をもっと楽しめるサービス、「野球バカ実況」をリリースします!

## まえがき
私は未経験のエンジニアで約一年間Railsを中心に勉強していました。野球観戦を楽しめるサービスを開発してみました。野球が好きな人は読んでくれれば嬉しいです。後半には難しかった技術についても述べています。技術が好きだという人も是非読んでいただければ嬉しいです!

# サービスURL
#### サービス名:「野球バカ実況」
###### 以下サービスURL
https://yakyubaka-jikkyo.com/

###### 以下Git Hub

https://github.com/GreatMuta514/baseball_app
## サービス概要
野球の試合を見ながらリアルタイムでチャットができます。
野球の試合の勝敗予想ができます。
野球ファンに試合観戦をより楽しんでもらえるサービスです!

**今日から日本シリーズが始まります!野球ファンの方は是非、試合を見ながら使ってみてください!**
## 使い方
### 試合前
試合前には、どんな試合になるかみんなで予想しましょう!
– 試合予想を投稿。
– みんなの予想をチェック。
– コメントで議論。
[![I

元記事を表示

Python,Ruby,PHP,Java,JavaScript,Perlの比較演算子の比較

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

Python,Ruby,PHP,Java,JavaScript,Perlの比較演算子の比較

# Python

https://qiita.com/G-Rape/items/cd3f2f284ba990164564

# Ruby

https://qiita.com/yusuke_blog1026/items/ab33bdfa495597d04f0b

# PHP

https://qiita.com/yukachin0414/items/cfb02cbbdd31a52902e8

# Java

https://qiita.com/takahirocook/items/748990882f2de7a630a1

# JavaScript

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

# Perl

https://perlzemi.c

元記事を表示

ぼっち演算子(&.)

# ぼっち演算子とは
&.(Safe Navigation Operator)は、通称ぼっち演算子と呼ばれており
ぼっち演算子は、オブジェクトに対してとあるメソッドを呼び出した時、そのオブジェクトがnilでない場合は、実行結果を返します。一方で、nilの場合は、nilを返してくれます。
“`ruby:ぼっち演算子を使って、テキストの情報を取得する
# 変数@itemに情報が定義されている場合
[1] pry(main)> @item&.text
=> “アイテム”

# 変数@itemがnilの場合
[2] pry(main)> @item&.text
=> nil
“`

通常のオブジェクトメソッドという書き方では、オブジェクトがnilの場合はundefined methodのエラーになってしまいます。
ですがぼっち演算子を使う事によりif文を使わず簡潔化する事が出来ます
“`ruby:例
# if文を使用した場合
@item.tags.first.tag_name if @item.tags.first.present?
# ぼっち演算子を使用した場合
@item.tags&

元記事を表示

Ruboty に GitHub の issue/pull request を検索する command を追加する

## はじめに

Qiita 社では Slack bot に Ruboty を :qiitan: Qiitan として利用しています。

https://qiita.com/tyamagu/items/9aa1bfd98d7ae69e614f

:qiitan: Qiitan (Ruboty) に GitHub の issue/pull request を検索させるというニーズが出てきたため、 “ruboty-qiita-github” に `search issues` command をさっと追加しました

今後 :qiitan: Qiitan (Ruboty) に新しい command を追加する時が来たら参考にしてください :information_desk_person:

## GitHub の issue/pull request を検索する command を追加する

### GitHub API を確認する

まず、 GitHub の issue/pull request を検索する Interface を確認します

GitHub REST API については、

元記事を表示

ActiveStorageを用いた画像投稿機能の実装

# はじめに
Rubyにおいて画像投稿機能を実装するために必要な流れを忘れないためにまとめます。

## 1. 画像投稿機能を実装するためには
rubyにおいて画像投稿を実装するために必要な流れは以下の通り。

ActiveStorageを用いて
– アップロードした画像専用のテーブルを作成する
– 投稿した画像を表示する
– 投稿した画像の大きさを調整する

## 2. ImageMagickをインストールする
% brew install imagemagick
ImageMagickとは
コマンドラインから画像に処理を加えることができるツール。
処理としては、画像の作成やサイズ変更、保存形式の変更などがある。
ImageMagickはGemではなく、ソフトウェア。
そのため、Homebrewからインストールする。
GemではないImageMagickをRubyやRailsで扱うには、MiniMagickというGemが必要となる。

## 3. MiniMagickとImageProcessingをイン

元記事を表示

カテゴリー選択機能の実装(ActiveHash)

# はじめに
カテゴリー選択機能の実装の流れを残す

## カテゴリー選択を実装するためには
例えば、都道府県名一覧やカテゴリーなど「基本的に変更されないデータ」があったする。
「基本的に変更されないデータ」は、データベースに保存する必要性がない。
一方、ビューファイルなどにそれらのデータを直接書いてしまうと、可読性に欠ける。
そのようなケースでは、ActiveHashが有用。

## ActiveHashとは
都道府県名などの変更されないデータをモデルファイル内に直接記述することで、
データベースへ保存せずにデータを取り扱うことができるGem。
すなわち、Active_Hashを用いることで、モデルファイルに直接記述した変更されないデータに対して、ActiveRecordのようなメソッドを用いることができる。(例えば、allやcreateメソッドのことを指している。)

## ActiveHash導入の流れ
### 1. Gemの導入

# Gemfile内
#中略
gem ‘active_hash’

# タ

元記事を表示

検索候補キーワードを取得する

# 前提
– Ruby 2.7.4
– 検索対象は、Google と Wikipedia
– その他にも Amazon とか Youtube とかあるので、気になった人は?
– [サジェストAPIを使って、各サービスのサジェストワードを取得する](https://sakusaku-techs.com/blog/suggest/)
– [Suggest API](https://so-zou.jp/web-app/tech/web-api/suggest-api.htm)
– [キーワードサジェストを秒速で公開したお話](https://qiita.com/shiro_rep/items/79f5cba8764b060305ef#%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%E3%81%AE%E4%BD%9C%E6%88%90)

# Google
– [Google Suggest API の仕様](https://so-zou.jp/web-app/tech/web-api/google/sugg

元記事を表示

【Ruby】%記法一覧

## 文字列

### `%`, `%Q`

`%`および`%Q`は式展開できる文字列を表現します。
ダブルクォーテーションで文字列を囲んだ`”文字列”`と同等になります。

“`ruby
%(a b c)
# => “a b c”

a, b, c = 1, 2, 3
%(#{a} #{b} #{c})
# => “1 2 3”
%Q(#{a} #{b} #{c})
# => “1 2 3”
“`

### `%q`

`%q`は`%`や`%Q`と同様に文字列を表現しますが、式展開ができない点で異なります。
シンブルクォーテーションで文字列を囲んだ`’文字列’`と同等になります。

“`ruby
%q(a b c)
# => ‘a b c’

a, b, c = 1, 2, 3
%q(#{a} #{b} #{c})
# => “\#{a} \#{b} \#{c}”
“`

## 配列

### `%W`

`%W`はスペースで区切った文字列を含む配列を表します。

“`ruby
a, b, c = 1, 2, 3
%W(#{a} #{b} #{c})

元記事を表示

[rails 初心者]同率順位を踏まえたランキング機能

初めに

ポートフォリオテーマとして業者のレビューサイトを作成しています。
以下の画像のようなレビューサイトを作っていこうと思います。

![top画面2-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2822721/a259bdd1-d312-4eb9-219e-ecbbd0526cec.png)

※自分用でまとめてますので、分かり辛かったらすいません。
また理解不足・誤りがあったらコメント頂けますと幸いです。m(__)m<ヨロシクオネガイシマス

前提条件

①今回の記事ではランキング機能のみ(※同率順位を踏まえた順位)についてまとめます
②レビュー機能や並び替え機能については、以下URLの記事に記載されている内容を参考にしてください

[[rails初心者]複数権限でのログインを使ったレビューサイトの作成(基本)](https://qiita.com/about10/items/0e376c84022f2ac238d0)
[[

元記事を表示

[Tips] capistranoの設定ファイルにRubocopを適用する

Rubocopではデフォルトで`rb`や`rake`などrubyに関する拡張子に対してフォーマットを行うようになっています。
基本的には[初期設定](https://github.com/rubocop/rubocop/blob/master/config/default.yml)で事足りるのですが、たまに別拡張子で書かれたRubyスクリプトにもRubocopを適用したくなることがあります。
今回自分の場合はcapistranoを使ったスクリプトが`cap`という拡張子で記述されており、そちらにRubocopを適用したかったのです。
その場合、どうするんだろうと少し調べたら下記の記述を`.rubocop.yml`書き足すだけで簡単に`cap`が拡張子のファイルに対してRubocopを動作させることができました。

“`diff_yaml:.rubocop.yml
AllCops:
Include:
– ‘**/*.rb’
– ‘**/*.builder’
– ‘**/*.god’
– ‘**/*.rake’
– ‘**/*.ru’

元記事を表示

Python,Ruby,PHP,Java,JavaScript,PerlのMySQLの比較

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

Python,Ruby,PHP,Java,JavaScript,PerlのMySQLの比較

# Python

https://qiita.com/ab-boy_ringo/items/f05bb6329f51e1632965

# Ruby

https://qiita.com/hukuro310/items/ec91beaecd11157e0640

# PHP

https://qiita.com/ab-boy_ringo/items/8274c66b6692966fdc55

# Java

https://qiita.com/namari/items/50d9aac0faf6b7e7b314

# JavaScript

https://qiita.com/PianoScoreJP/items/7ed172cd0e7846641e13

# Perl

https://perlzemi.co

元記事を表示

[rails 初心者]メソッド化についてまとめてみた

初めに

縁があり、通っているプログラミングスクールのメンター(質問対応者)さんから次のことを勧められました
`メソッド化に力を入れた方がいい`と。。。
ということで今回はそのメソッド化についての基本知識?考え方?を自分なりにまとめてみました!!

注意事項

※自分用でまとめてますので、分かり辛かったらすいません。
また理解不足・誤りがあったらコメントにてご指摘頂けますと幸いです。m(__)m<ヨロシクオネガイシマス

前提条件

①今回は`rails`を題材にして話を進めていきます。

②次の二つの知識についてある程度理解済みであること   ※私の場合は60%ぐらいでした・・・多分(;^ω^)
・「メソッド」について理解していること
・「オブジェクト指向」について理解していること
※もしここで不安な方がいましたら、以下のプルダウンのところを開いてリンク先を一読してみてください。

③`posts_conntroller`にて`@post = Post.find(

元記事を表示

モデルやコントローラーの命名規則

## はじめに
モデルのクラス名で誤った名前を気付かないうちにつけてしまい、エラー解消に時間がかかったので、同じミスはしないように記録に残す。

## モデル、コントローラーの命名規則
https://qiita.com/gakkie/items/3afcd505c786364aa5fa

これがシンプルにまとめられていた印象。

元記事を表示

【Rails】development以外の環境のコンソールに入ったときのConnection refusedエラー

## 環境
Rails 6.0.1
Ruby 2.6.3
PostgreSQL 11.16

## development以外の環境のコンソールに入りたいとき
“`
rails console -e production
“`

## コンソールに下記のエラーで入れなかったとき

“`
could not connect to server: Connection refused
“`
“`database.yml“`内のhost名を“`docker-compose.yml“`で定義されているDB用コンテナ名と一致させる。

“`docker-compose.yml
environment:
DB_HOST: postgres
DB_NAME: hoge_development
DB_NAME_TEST: hoge_test
DB_USERNAME: postgres
DB_PASSWORD: password
REDIS_HOST: redis
“`

“`config/database.yml
production:
<<: *de

元記事を表示

Ruby – カラーコードをRGBに変換する

“`
gem install color
“`

“`rb
require “color”

Color::CSS[:red].to_rgb.to_a.map { |rate| (rate * 255).round }
# => [255, 0, 0]

Color::CSS[:orange].to_rgb.to_a.map { |rate| (rate * 255).round }
# => [255, 165, 0]
“`

# チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

# Twitter

元記事を表示

OTHERカテゴリの最新記事