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

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

最近のrbenvの問題点

最近のrbenvの問題点

$ rbenv -v
rbenv 1.1.2-34-g0843745
8月2日〜10日までに更新がなければ、全てこのバージョンと思われる

古いMacでいろいろと試行錯誤中におきたこと。
1.openssl や curl のconfigure次第でruby 2.5.8のダウンロードに失敗する。
2.ダウンロード失敗にエラー表示が不足している。この為、1の時に原因がopensslかcurlかcert.pemがユーザーには全く不明。

ダウンロード出来れば何でもいいという話になる。しかし

3.iterm2上からコマンドで、curl -KO または-LOで
https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.8.tar.gz
のダウンロードには成功する。訳が分からないよ。

以下はMacOSX El Capitan 10.11でおきたこと。
4.openssl 1.1.1gがインストール済みでパスが通っていても.rbenv下にインストールする。
5.rbenv install 2.5.8でダウンロード成功する。

元記事を表示

【Ruby】条件分岐内で標準出力を使う方法

アルゴリズム問題を解くときのようにgetsを使って標準入力を入れようとしたところ以下のようなエラーになった

“`
$ ruby enc_main.rb new
Traceback (most recent call last):
2: from enc_main.rb:12:in `


1: from enc_main.rb:12:in `gets’
enc_main.rb:12:in `gets’: No such file or directory @ rb_sysopen – new (Errno::ENOENT)
“`

対処方法

以下のコードに$stdinを使ったgetsメソッドを使うと解消した。

“`
if ARGV[0] == “new”
puts “What’s Name?”
name = $stdin.gets

“`

参考にしたドキュメント

[$stdin (Ruby 2.7.0 リファレンスマニュアル)](https://docs.ruby-lang.org/ja/latest/method

元記事を表示

Railsでワクワク個人開発  第一回:仕様書とDB設計をしてみる

# 個人開発をやっていくぞ
 以前の記事でRubyをつかってひととおりのロジックを組むことはできるようになった。そういうわけで、こんどはRailsでなにかをつくってみることにした。何かしらのウェブサービスをつくろう。

# ざっくりとした仕様書を書く

 なにはともあれ、仕様書チックなものが必要だった。自分のやりたいことを明確にしておきたい。わたしが作りたいのは **「わいわい観察日記」** である。観葉植物の成長記録をみんなでシェアできるようにしたい。そのうち、IoTプロダクトとデータを連携していろいろやりとりできるようにしたい。

https://github.com/kyokucho1989/waiwai-kantatsu-nikki

“`
# ワイワイ観察日記

## これはなにか
 植物を観察する日記をシェアするウェブサービス
 (室内の植物限定)

## ベネフィットはなにか
 栽培記録をシェアすることで、栽培するモチベーションを保つことができる

## ユーザーの想定
– さいきん植物を家で育て始めた人
– 観葉植物がすきなひと

## マネタイズ
– 広告配置(植物

元記事を表示

[Ruby]Macでpumaがインストールできない[Railsとか]

pumaが原因でRailsがインストールできないんだなこれが。
sqliteがなくてインストールできないのはbrewからsqliteを入れれば解決するんだけど

macOS Catalina 10.15.6
ruby 2.6.5
gem 3.0.3
puma 4.3.5

似たような質問にxCodeがインストールされていないのでは?なんて回答もあったけど
手元ではそれで解決せず。

エラーメッセージ(クリックで展開)

“`
gem install puma -v ‘4.3.5’ –source ‘https://rubygems.org/’
Building native extensions. This could take a while…
ERROR: Error installing puma:
ERROR: Failed to build gem native extension.

current directory: /Users/rin.nakashima/.anyenv/envs

元記事を表示

【Rails】ArgumentError: Malformed version number string 0.32+gitでwebpacker:installが実行できない場合の対処方法

## はじめに
`webpacker:install`を実行すると表題のエラーメッセージが表示されてしまい、Railsが実行できない状況が起きました。
今回はこの現象の回避方法についてまとめます。

## この記事の対象者
– 表題のエラーメッセージが表示され、`webpacker:install`を実行できない人

## 実際にどのようなエラーになるのか
### エラーに遭遇した環境
Docker公式の`Ruby:2.7.1`を利用したコンテナで遭遇しました。
他の環境では試していないため、同じ方法で対処できると断定はできませんが、参考になればと思います。
使用したDockerfileとRailsのバージョンは以下の通りです。

“`dockerfile:Dockerfile
FROM ruby:2.7.1
LABEL maintainer=”TomoProg”
RUN apt-get update -qq && apt-get install -y \
build-essential \
libpq-dev \
nodejs \
default-m

元記事を表示

parallelの並列数の決め方

[parallel](https://github.com/grosser/parallel) の並列数の決め方を調べたのでメモしておきます。下記の1から順に評価されて並列数が決定されます。

## 1.システムのプロセッサコア数

`Etc.nprocessors` の返すプロセッサコア数です。1CPU のシステムでは parallel を使っても後述の指定のいずれも行わなかった場合は並列数1になってしまいます。逆にサーバ機で多コアの Xoen などを使っている場合には並列数が多くなりすぎて CPU やメモリを圧迫してしまうこともあり得ます。

## 2. 環境変数 `PARALLEL_PROCESSOR_COUNT`

環境変数 `PARALLEL_PROCESSOR_COUNT` が設定されていると、その値が採用されます。parallel を呼び出す都度に指定する必要がないので、常に同じ並列数でよい場合には便利でしょうか。

## 3. in_processes/in_threads で指定する並列数

map メソッドの in_processes/in_threads オプショ

元記事を表示

[Rails]deviseを使ったウィザード形式での新規登録機能の実装

# はじめに
フリマのコピーサイトを作る際に、構造をやや難しくしてしまったために苦労したので記録として残そうと思いました。もっと綺麗にかけるなどご指摘あればお願いします。
# 実装方法

### 開発環境
– Ruby 2.5.1
– Rails 5.0.7.2
– devise

###前提
– deviseは導入済み
– deviseのデフォルト状態でのログイン機能は実装済み
– 1ページ目 → 2ページ目 → トップページ(ログイン)と遷移する
– テーブルは、`users` `profiles` `sending_destinations`の3つ
– 1ページ目は1つのフォームで`Userモデル`と`Profileモデル`の二つを扱っている
※2つのモデルに同時に値を送る方法はこちらの記事を参考にしています。
[【Rails】deviseのフォームで2つのモデルに同時に値を送る方法(例: UserモデルとProfileモデル)](https://qiita.com/wonder_meet/items/9238d9bedea542ab975b)

### DB設計

元記事を表示

〇〇/〇〇.rb:1: Invalid char `\x08′ in expression が出てきたけど、速攻で解決した。

#本題
Rubyを再学習してる時に、謎のエラーが出てきた。
見たこともないエラーなので良く調べたが、一瞬で解決・・・

#解決方法
**該当の行をもう一度打ち直そう!!**

#内容

エラー分を翻訳してみると・・・
test/gate_test.rb:1: Invalid char \x08′ in expression
→式に無効な文字 \ x08 ‘があります



といったところで勘付きました。また誤字しているんだなと。

そんでもって、該当行を書き直したところ・・・エラーは出なくなりました。

他の方のサイトを拝見させていただいたところ、**不可視文字**が原因のようです。
このエラーについては、速攻で打ち直すのが吉ですね。

#参考にさせていただいたサイト


かな〜り詳しく書いていただいているので気になる方はご覧ください??‍♂️

元記事を表示

Kinx Tips – 実行形式ファイルを作る

# Kinx Tips – 実行形式ファイルを作る

## はじめに

**「見た目は JavaScript、頭脳(中身)は Ruby、(安定感は AC/DC)」** でお届けしているスクリプト言語 [Kinx](https://github.com/Kray-G/kinx)。今回は Tips です。

* 参考
* 最初の動機 … [スクリプト言語 KINX(ご紹介)](https://qiita.com/Kray-G/items/ca08b6fb40d15dd0ec76)
* 個別記事へのリンクは全てここに集約してあります。
* リポジトリ … [https://github.com/Kray-G/kinx](https://github.com/Kray-G/kinx)
* Pull Request 等お待ちしております。

皆さん、実行ファイルを作る時どうしてますか? …そう、普通は C や C++ で書いてコンパイルしますね。もっと簡単に作れるといいですね。

Kinx は独立した exe を作ることはサポートし

元記事を表示

MinGWにプルリクエストを送ってlibgrのバージョンをアップデートした話

## はじめに

こんにちは。MinGWのパッケージをアップデートしたので記事にします。

### どうしてMinGWのパッケージのアップデートしなきゃならないの?

パッケージマネージャーって、みんな利用していると思うんですけど、そのメンテナンスに関わったことがある人は意外と少ないと思います。私もMinGWのパッケージをアップデートするのははじめてです。

1年程前から趣味と実益を兼ねてRuby向けのグラフ描出ソフト[GR.rb](https://github.com/red-data-tools/GR.rb)を作っています。
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144608/6a9c3e62-2cdc-f450-dc2f-82f2c7566997.png)](https://qiita.com/kojix2/items/456259f40d5563005cd1)

* [Rubyでグラフを描画するツール GR.rb の紹介](https://qiita.com/kojix

元記事を表示

Rails reference型 作成 追加

#はじめに
今回はrailsでのマイグレーション時にreference型を扱うことがことがあったのでまとめる。

#外部キーとは
reference型を扱うにあたって外部キーについて知っておかなくてはならない。

>外部キーとは、リレーショナルデータベース(RDB)で、テーブルのある列に、別のテーブルの特定の列に含まれる項目しか入力できないようにする制約。また、その際に指定する列
http://e-words.jp/w/%E5%A4%96%E9%83%A8%E3%82%AD%E3%83%BC.html#:~:text=%E5%A4%96%E9%83%A8%E3%82%AD%E3%83%BC%E3%81%A8%E3%81%AF%E3%80%81%E3%83%AA%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB,%E3%82%92%E7%94%A8%E3%81%84%E3%81%A6%E8%A8%AD%E5%AE%9A%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82

今回はarticlesテーブルにre

元記事を表示

Ruby テキスト変換

Ruby を使って PHP のプログラムを変換します。
PHPの文字コードは、EUC_JP と CP51932 が混在しています。
Python は、CP51932 を取り扱えないので、Ruby で記述しました。

str_src を str_target に置き換えます。
str_src がない時は、何もしません。

“`rb:file_filter.rb
#! /usr/bin/ruby
# -*- coding: utf-8 -*-
#
# file_filter.rb
#
# Aug/09/2020
#
#
# ——————————————————————–
# [2]:
def read_proc(file_in)
lines = []
File.open(file_in) do |io|
lines = io.readlines()
end
#
return lines
end
#
# ————————————-

元記事を表示

コンテナ上のデバッグ環境構築 – DockerでRailsチュートリアルのローカル開発環境構築 –

# はじめに

Dockerでローカル開発環境構築を行い、Railsチュートリアルを再走しております

– Railsチュートリアル最新版(2020.8.6現在)に対応のRails 6
– Dockerを使用し、開発環境の再現が可能
– なるべくローカル環境にインストールしない

今回はRailsチュートリアルの7章に相当する部分で、
Dockerコンテナ上で開発を行っている場合にデバッグを行う内容を紹介します

第一回
[DockerでRailsチュートリアルのローカル開発環境構築(Rails 6 + PostgreSQL + Webpack) – Qiita](https://qiita.com/daddy_hacker/items/99225bf3d8665ecfdec2)

第二回
[DockerでRailsチュートリアルのローカル開発環境構築 – RSpec導入 & CircleCIでHerokuデプロイ- – Qiita](https://qiita.com/daddy_hacker/items/7036f05c0f236be8806a)

第3回
[DockerでRa

元記事を表示

リファクタリングしてみた①

## バージョン
・ruby 2.5.7
・Rails 5.2.4.3

## ポートフォリオのコードをリファクタリング
まず、現状はというと下記の通り。ひどい、、。ほぼ同じ事を書いているアクション名が8つ存在している。まず、そのdate1からdate8のアクションをリファクタリングしてみる。
スクリーンショット 2020-08-09 14 27 08
スクリーンショット 2020-08-09 14 27 26
スクリーンショッ</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Ruby</div>
<div class='tag-cloud-link'>Rails</div>
<div class='tag-cloud-link'>リファクタリング</div>
<div class='tag-cloud-link'>ポートフォリオ</div>
<div class='tag-cloud-link'>RubyOnRais</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/m75cCMbYv5LEsO8/items/b82627d5be7d5f1f8a0a'>元記事を表示</a></div>
<h3 id=【クエリ爆減】update_allで一定条件下の複数データをまとめて更新する【Ruby on Rails】

入荷から一定期間経過した商品には割引(30日以上→500円・60日以上→1000円・90日以上→1500円)を適用する為、以下の様なロジックを書きました。

“`Ruby
items = Item.where(“created_at < ?", Time.zone.now - 30.days) items.each do |item| created_at = item.created_at today = Time.zone.today three_month = 90.days two_month = 60.days one_month = 30.days if today >= created_at + three_month
discount = -1500
elsif today >= created_at + two_month && today < created_at + three_month discount = -1000 elsif today >= created_at + one_month && toda

元記事を表示

Railsでのカラムの追加

#カラムの追加

新しいカラムの追加(基本)
$rails g migration (行う処理+テーブル名)(追加したいカラムとデータ型など)
“`$rails g migration AddColumnToUsers  name:string age:integer
“`

新しいカラムにインデックスを追加
“`$rails g migration AddColumnToUsers name:string:index
“`

カラムの削除
“`$rails g migration RemoveNameFromUsers name:string
“`

テーブルの作成と同時にカラムの作成
“`$rails g migration CreateUsers name:string age:integer
“`

元記事を表示

Mac ruby 2.0.0におけるDEFAULT_CERT_FILEのディレクトリ情報

過去記事でopenssl、curl、rubyをソースビルド、インストールしたMacとは別のMacがある。
MacOSX 10.11はhomebrewが動作するが削除し概ねクリーンにした。

ruby 2.0.0に戻る。すると
$ ruby -ropenssl -e “p OpenSSL::X509::DEFAULT_CERT_FILE”
“/System/Library/OpenSSL/cert.pem”

OpenSSL $ ls -la
total 8
drwxr-xr-x 6 root wheel 204B 2 5 2016 .
drwxr-xr-x 82 root wheel 2.7K 8 28 2018 ..
drwxr-xr-x 2 root wheel 68B 2 5 2016 certs
drwxr-xr-x 8 root wheel 272B 2 5 2016 misc
-rw-r–r– 1 root wheel 9.2K 2 5 2016 openssl.cnf
drwxr-xr-x

元記事を表示

openssl、curl、ruby、homebrew、rbenvインストールについての印象や覚え

●備忘録 メモ書き 証拠のログは殆ど無し

2020年08月上旬にautoconfからopenssl、curl、rubyまでソースインストール出来た。
openssl curl(wget)Ruby等々のSSL通信に悩まされてきたが殆ど解消したかもしれない。

kindai.rbを使い始めた時期(2015〜2017?)は記憶にない。
qiitaでの質問は2017年が最初。(他に5chで質問したかも?)2020年07月までに行ったopenssl curl(wget)Ruby等の環境構築でログが全て残ってないが、覚えていることを書いておく。

●事象

homebrewのImageMagick インストールをみていると大量のコマンドとライブラリがインストールされる。依存関係もあるらしく自分ではソースビルドが出来ないと考えていた。
ー>実際は簡単だった。手間と時間がかかるだけ。

homebrewはリンク切れや不具合を起こす。数年に一回程度。homebrewの再インストールの経験が「たしか3,4回数/一台のMac」ある。

openssl又はcurlインストールにおいて、homebrewビルド

元記事を表示

ページネーション機能の実装

## バージョン
・ruby 2.5.7
・Rails 5.2.4.3

## ページネーション機能を使って1ページにつき10件だけ表示させたい
イメージはこんな感じ
pagination_result

## まずgemをインストール
ページネーション機能の実装には、gemの「kaminari」を使います。
まず、gemfileでkaminariを記述する。
Gemfileに追記できたら、ターミナルでbundle installを実行して、kaminariをインストールします。

## さらに以下のコマンドを実行
kaminariの設定ファイルを作成の為、下記を実行します。このファイル内にある数字を動かせれば1ページにつき、何件表示出来るか設定出来ます。
スクリーンショット 202</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Ruby</div>
<div class='tag-cloud-link'>Rails</div>
<div class='tag-cloud-link'>ページネーション</div>
<div class='tag-cloud-link'>RubyOnRais</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/m75cCMbYv5LEsO8/items/b5836f61139d26cd3825'>元記事を表示</a></div>
<h3 id=参考になるRailsのプロダクトコード(OSS)5選

# はじめに
「この設計でいいのかな〜」「クラス名や変数名はこれでいいのかな〜」と思ったときに参考にできそうな、Railsで書かれたOSSを5つピックアップしました。

# 参考になるRailsのプロダクトコード(OSS)5選
## GitLab
![gitlab-blog-cover.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459522/d718327f-fcc5-b4f2-be41-a1a352ef312f.png)

– GitHub: https://github.com/gitlabhq/gitlabhq
– Webサイト: https://about.gitlab.com/
– GitHubみたいな、Gitリポジトリのホスティングサービス
– 今回紹介する5つの中で、おそらく一番大規模なアプリ

## RubyGems.org
![スクリーンショット 2020-08-08 22.23.19.png](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

OTHERカテゴリの最新記事