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

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

Ruby | Qiita API で自分の記事全てを編集してリンクを追加したスクリプトの例

# 概要

自分の記事全てを取得し、元のテキスト本文にテキストを追加して編集リクエストを続けていく。

ちなみに2000記事ほどを連続で編集しようとすると、途中で制限されたのか、Fobbiden扱いになった。

# コード

“`rb
require ‘net/https’
require ‘uri’
require ‘json’

uri = URI.parse(“https://qiita.com/”)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request_header = {‘Content-Type’ =>’application/json’, “Authorization” => “Bearer #{ENV[‘TOKEN’]}”}

round = 0

# 100はQiita APIのページめくりのMAX
(1..100).each do |i|
get_url = “https://qiita.com/api/v2/users/#{ENV[‘USER_ID’]}/items?pag

元記事を表示

【Ruby】APOD APIで毎日更新される宇宙写真を保存する

# はじめに
NASAのAPIでAPODというのがあって、これが毎日宇宙写真を更新していると知り、デスクトップの背景に使いたいと思ったのがきっかけでした。

https://apod.nasa.gov/apod/lib/about_apod.html

https://apod.nasa.gov/apod/archivepix.html

### 完成形
1. 画像を指定したディレクトリに保存する
2. 指定した日付の宇宙写真のタイトルと説明文を表示する

2の出力はこんな感じです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2549439/530a5d46-001a-8e6a-3354-f8581e310cfe.png)

### 前提・gemなど
`Windows10`
Ruby `3.1.1`
gem `nasa_apod`, `open-uri`, `date`

# 手順
## 1. NASAのAPIキーを生成する
APIキーを生成します。名前とメールアドレスを登録すれば取得

元記事を表示

windows10でvagrant(ubuntu20.04)を使いrails6のローカル開発環境を構築する

## はじめに(経緯など)

macのローカル開発環境で動かしていたものを、windows上でも動かしたかったのでやってみた。
いろいろな記事を参考にまとめたものになるので、単に構築したいだけなら他の記事のほうがさくっとできるかもしれない。
初学者の自分が書いていいものか迷ったが、このへんの情報がかなり少なく感じたこともあって書いてみることにした。
自分の備忘録的要素が強いです。
ちなみに、作業時間の目安は1~2時間程度です。

## 目次

– 必要なアプリのインストール
– vagrantのセットアップ
– vagrantfile書き換える
– 環境構築
– コンパイラおよび必要なツールをインストール
– rubyのインストール
– railsのインストール
– sqliteのインストール
– node.jsのインストール
– mysqlサーバーとクライアントのインストール
– 補足
– rails sで構築できているか確認
– macからgithubで持ってくる場合
– rails newで新しく作る場合

元記事を表示

ローカルからDocker内に入るコマンド

Dockerでの開発環境が終わり、Railsの基本であるモデルやコントローラー、ビューを作成するコマンドを入力しようとしたが、ターミナルで

homesというコントローラ作成のコマンドを入力すると
“`言語:ターミナル
rails g controller homes
“`

このようなエラーが出た。
Rails is not currently installed on this system. To get the latest version, simply type:
sudo gem install rails
You can then rerun your “rails” command.

ローカルでこのコマンドしてもダメだと気づき、ドッカー内に入らないといけないと認識した。

そこで調べたところ、下記サイトに行きついた。
https://qiita.com/Keitaroooo/items/a30bf4eb9310d7b3f7cd

このサイトにある通りに進めた。

ドッカー内に入る方法は2つ

一つ目は
# dockerコマンド

“`言語:ターミナル
dock

元記事を表示

Ruby on Railsでアプリを作る準備をする

毎回どうだっけと忘れてしまうので、Ruby on Railsのアプリを立ち上げるところまでをまとめました。備忘録です。

## railsをインストールする
Bundlerのインストール
“`
gem install bundler
“`
Railsのインストール
“`
gem install rails
“`

## rails new コマンドでアプリケーション作成の準備

webpackerをインストールする
“`
rails webpacker:install
“`
rails new コマンド
cdコマンドでPC上のアプリを作成したいディレクトリに移動し
“`
rails new アプリケーション名
“`
成功した場合、ターミナルに以下のように表示されます。
![スクリーンショット 2022-05-15 17.37.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2602010/7673abed-5b23-632f-65d3-086668ca6551.png)

※rail

元記事を表示

【Ruby翻訳】実務でリーダブルコードはどう役に立つのか ~Part1~

# はじめに

どうも、最近未経験からエンジニア転職をしたもきおです。
現役エンジニアの方にオススメされる本で一番紹介されると言っても過言ではない本が「リーダブルコード」。私自身も未経験時代から読んでみたはいいものの後半にいくにつれ「あれ?思ったよりムズくね?初心者向けじゃないやん」と思い本を閉じてしまいました。

今回入社後改めてCTOにおすすめしていただき、読み切ったのでここでアウトプットしていきたいと思います。
## そもそもなぜ読むのが難しいと感じるのか

「リーダブルコード読むのが難しいとか何いってんの??」という方はこの章を読む必要がないかなと思いますが少なからずこの本が難しいと感じる人は一定数いるのかなと思っております。

この本を自分が難しいと感じた理由としては2点。
1.サンプルコードがJavaScriptやC+

元記事を表示

Ruby で楽しいルーレット

# この記事は?

ターミナル上で気軽にルーレットを楽しめるスクリプトを Ruby で実装します。

![2022-05-15 11-26-16.2022-05-15 11_26_57.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6697/600266c7-7a24-d8b9-08ab-e98758c0518c.gif)

# 実装

“`rb:roulette
#! /usr/bin/env ruby
def clear_line
print(“\e[A\e[K”)
end

def blink(item)
red, yellow = 31, 33
[red, yellow, red, yellow].each_with_index do |color, i|
if i > 0
sleep(0.2)
clear_line
end
puts(“\e[#{color}m#{item}\e[0m”)
end
end

# 実行中のスクリプト

元記事を表示

Rubyで通信を伴うSPAを構築してみました

# 前回までのあらすじ
[前回の記事](https://qiita.com/keyasuda-2/items/ac6e4ff4f64ab10c5ae5)では、[RubyのWebAssemblyポート](https://github.com/ruby/ruby.wasm)を使いSPA(single-page application)を構築するためのパッケージを開発し、[TodoMVC](https://todomvc.com/)を[移植しました](https://github.com/keyasuda/bormashino-todomvc)。

# はじめに
TodoMVCは通信を伴わずブラウザ上のみで完結するアプリケーションだったため、構築用パッケージ”[Bormaŝino](https://github.com/keyasuda/bormashino)”は特に通信系の機能は持っておらず、[jsモジュール](https://github.com/ruby/ruby.wasm/tree/main/ext/js#ruby-extension-to-manipulate-javascript

元記事を表示

authenticate_user!メソッドの使い方

## どんなメソッドか?
ログイン状態によって表示するページを切り替えるメソッドです。
ログインしていないユーザーを、ログイン画面に遷移したい場合に使います。
before actionで呼び出すことにより、コントローラーのアクションを実行する前に、ユーザーがログインしていなければログイン画面に遷移することができます。

“`ruby
before action authenticate user!
“`

## onlyの後にアクションを指定した場合の例
“`ruby
before action authenticate user!, only: [:new, :edit]
“`
上記の場合、ログインしていないユーザーがnewアクションとeditアクションを実行した場合のみ、ログイン画面に遷移することができます。
only以外にもexpectの後にアクションを指定することで、ログインしていないユーザーが指定したアクション以外を実行した場合に、ログイン画面へ遷移させることもできます。

元記事を表示

Linuxコマンド一覧

# Linuxについて
LinuxとはOSの一種であり、『OS』とはオペレーティングシステムの略である。
OSはソフトウェア(アプリなど)とハードウェア(記録・保管装置)を繋ぐ役割があり、OSが機能しているからこそ閲覧や保存が正常に行われる。

MacやWindowsのOSと違い、無料のオープンソースとして扱えることができ、Linuxをベースとして誰でも開発・改良が行えるのが特徴としてある。
ユーザー権限が厳しく管理されているので、安全性の高いサーバとして活用できる。

# Linuxコマンド一覧
| コマンド|内容|
|:———–:|:————:|
| pwd| カレントディレクトリのパスを表示するコマンド |
|ls|ディレクトリやファイルの一覧を表示するコマンド|
|cd|カレントディレクトリから別のディレクトリに移動するコマンド|

### Rubyで使うコマンド一覧
| コマンド|内容|
|:———–:|:————:|
|rails “`_6.0.0_“` new アプリケーション名|Railsで新規アプリ

元記事を表示

Docker を使ってRuby on Railsの開発環境を構築(M1チップのMac)

M1 Macbookを使ってポートフォリオを作ろうと思い、Virtual Boxで開発環境を作成しようとするとVirtual Boxが使えないことが発覚したので、Dockerを使って開発環境を構築しようとした。

しかし、色んなサイトの作成方法を真似しても上手くいかず、Dockerの公式ドキュメントを参考にしたところ、Yay! You’re on Rails!の画面を出すことができた。

手こずってしまった原因がDockerへの理解不足だったため基本的な概念を備忘録として記載しようと思う。
表現が不適切なところも多々あると思うので、ご指摘くだされば幸いです。

まずはイメージ図を頭に入れる

![スクリーンショット 2022-05-14 22.31.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654361/101cda71-0ae6-cd6a-73d0-219009c17c04.png)
引用
https://coinbaby8.com/docker-beginner.html

Docker

元記事を表示

RubyのSymbol(シンボル)とは?文字列とは何が違うのか

Rubyでは全ての値はオブジェクトのため、一見ただの数値に見えてもそれは`Integer`クラスのオブジェクトです。
そこで`methods`メソッドを使って、そのオブジェクトが所属する`Integer`クラスのメソッドを見てみたいと思います。

“`irb:irb
irb(main):006:0> 123.class
=> Integer
irb(main):007:0> 123.methods
=> [:-@, :**, :<=>, :upto, :<<, :<=, :>=, :==, :chr, :===, :>>, :[], :%, :&, :inspect, :*, :+, :ord, :-, :/, :size, :succ, :<, :>, :to_int, :coerce, :to_s, :to_i, :to_f, :divmod, :to_r, :fdiv, :modulo, :remainder, :abs, :magnitude, :integer?, :floor, :ceil, :round, :truncate, :^, :odd?, :even?, :a

元記事を表示

ランダムにグループ分けするRuby演習

## 問題
A、B、C、D、E、Fという6人のグループがありました。 このグループは定期的にみんなで通話をしています。 しかし6人全員で通話はやりずらいので、3人ずつか2人と4人に別れることにしました。 このグループを3人と3人、または2人と4人にランダムに分けるプログラムを書いてください。 このプログラムは実行するごとに結果が変わります。 また表示結果はアルファベット順にしてください。
“`
$ ruby ramdom.rb
[“B”, “C”]
[“A”, “D”, “E”, “F”]
“`

## 作成手順
① ramdom.rbファイル作成
(以下は①の中身)
② 6人グループの配列作成
③ ②を利用するメソッド作成
(以下④,⑤,⑥はメソッド内)
④ ②をシャッフルし、3-3でアルファベット順に分割
⑤ ②をシャッフルし、2-4でアルファベット順に分割
⑥ ④,⑤をランダムに条件分岐
⑦ ③メソッド実行

元記事を表示

入社2週間の新人が研修で社内アプリを作った話

## 導きのはじまり
部門長「研修の一環として、社内で実際に運用するアプリを作ってもらおうと思う」

僕「え・・・? 研修なのに実際に使うものを作るんすか? まだ入社して2週間なんですが・・・」

部門長「実際に運用するものを作るから研修になるんだよ? 多少バグってもいいから動くものを作ろう!」

僕「oh…」

部門長「じゃあ、どんなアプリにするか一緒に考えていこうか」

## 自己紹介

みなさん初めまして。
エンジニア1年目の小林と申します。

この記事を見てくださっている方々の中には、エンジニアに転職しようと悩んでいる方、エンジニアの新人研修って何をするんだろうと思っている方はいませんでしょうか?

ここでは、僕が今の会社にエンジニア転職して、最初の研修で行ったことをご紹介します。
新人研修の一モデルとして参考になれば幸いです。

## ****開発環境****
Ruby on Rails
## ****この記事の対象読者****

・エンジニアに転職しようと考えている方
・エンジニア転職のために勉強中の方

## 入社前 ~勉強編~
### 著者のスペック
・年齢26歳

元記事を表示

railsチュートリアルをなるべく嚙み砕く 1章

今まで何回かチュートリアルに挑みましたが全て挫折しました。
挫折した原因は

###### なんとなくの理解で進めてしまった。

これが原因でモチベーションの低下が始まり、挫折というルートを何回も辿っています
今回こそは全部やりきるために、自分なりに噛み砕いて理解し、
###### 人に説明できるようになったら進む
ことを意識してやりたいと思います

他の方のための記事にもなったらいいな、、
##### 解釈が間違っているところがあれば教えていただきたいです!!

# 第一章

環境構築ですね
私は ubuntu on Windowsを使ってrailsの環境構築をしました

https://qiita.com/ksh-fthr/items/64a4e86c8bad08322c94

こちらの記事が私が環境構築したやり方と同じです

1.3まで飛ばします

### 1.3
ここで
cd やmkdirが出てきます。
主要なUnixのコマンドたちですね
cd は change directory の頭文字をとったもので ディレクトリを移る
mkdir は make directory の略で

元記事を表示

Ruby | Qiita API で記事を更新する ( PATCHリクエスト )

“`rb

require ‘net/https’
require ‘uri’
require ‘json’

uri = URI.parse(“https://qiita.com/”)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

QIITA_API_TOKEN = ‘xxxxxxxxxxxxxxxxxx’

# https://qiita.com/YumaInaura/items/yyyyyyyyyyyyyyyyyyy のような記事URLから id が分かる
qiita_item_id = ‘yyyyyyyyyyyyyyyyyyy’

patch_url = “https://qiita.com/api/v2/items/#{qiita_item_id}”
patch_request_header = {
‘Content-Type’ =>’application/json’,
“Authorization” => “Bearer #{QIITA_API_TOKEN}”
}
patch_r

元記事を表示

accepts_nested_attributes_for を使ったフォームで意図しないユニークバリデーションの発生を回避する方法

## 解決したい問題
Railsでは `accepts_nested_attributes_for` を使って、`has_many`関連する子レコードを1つのフォームで更新することができます。
イメージとしてはこんな感じです。

![sample.002.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7465/fbd1d0e0-3c36-dcaf-715c-a787fbce39b4.jpeg)

上の画面では以下のようなBookモデルと、それに関連するAuthorモデルを更新するフォームです。
(本と著者はmany-to-many関連だろう、というツッコミが来そうですが、説明のために単純化してるので気にしないでください)

“`ruby
class Book < ApplicationRecord has_many :authors, dependent: :destroy accepts_nested_attributes_for :authors, reject_if: :all_bl

元記事を表示

開発勉強(controller)

今回も頑張っていきましょう。

今日は、前回なんとかサーバーの立ち上げまでできたので、実際に開発に向けて勉強していきます。

⭐️ MVC
  ・Railsは「MVC」というアーキテクチャーを使ったフレームワーク
  ・MVCというのは、「Model」「View」「Controller」の略
  ・この3つの中で最も重要なのは「Controller」
  
⭐️ コントローラーを作成する
  ターミナル上で前回作成したRailsAppへ移動し、以下コマンドを実行する
“`ruby:qiita.rb
rails g controller 名前
“`
  ※名前は半角英字とすること
“`ruby:qiita.rb
create app/controllers/hello_controller.rb
invoke erb
create app/views/hello
invoke test_unit
create test/controllers/hello_controller_test.rb

元記事を表示

Ruby | Qiita API で1人のユーザーの全記事一覧を取得する

100記事x100ページまで取得できるので、上限は1万記事。

# Ruby

“`rb
require ‘net/https’
require ‘uri’

(1..100).each do |i|
uri = URI.parse(“https://qiita.com/api/v2/users/#{ENV[‘USER_ID’]}/items?page=#{i}&per_page=100”)
res = Net::HTTP.get_response(uri)

puts res.response.body
end
“`

# コマンド実行例

“`
USER_ID=yumainaura ruby qiita-post.rb | jq
“`

# Qiita API のTOKENを使って実行上限数対策をする場合の例

“`rb
require ‘net/https’
require ‘uri’

(1..100).each do |i|
uri = URI.parse(“https://qiita.com/api/v2/users/#{ENV[‘USER_ID’

元記事を表示

【超簡単】Ruby on Rails に BootStrapを導入する方法

# はじめに
筆者は [大学生限定 プログラミングコミュニティ 『GeekSalon』](https://geek-salon.com/?utm_source=Direct&utm_medium=attract&utm_campaign=2Q&utm_content=Fukuoka_E_2Q)で活動している者です!

# Bootstrapとは
世界で一番人気のあるフロントエンドライブラリです。
モバイルファーストなレスポンシブウェブを素早くデザイン・カスタマイズすることが可能です。
豊富なコンポーネント、強力なJavaScriptプラグインを備えています。
詳しくは、[Bootstrap公式サイト](https://getbootstrap.jp/) を!!
## Ruby on Rails への導入方法
①まずは[Bootstrap公式サイト](https://getbootstrap.jp/)へアクセス!
②サイト内のはじめるボタンをクリック!
![スクリーンショット 2022-05-13 23.36.54.png](https://qiita-image-store.s3

元記事を表示

OTHERカテゴリの最新記事