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

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

ruby 文字を表示させる(超基礎)

– irb
– ri オブジェクト名
– オブジェクトの中身見れるよ

“`
print “hello world” #表示
puts “hellow world” #行末に改行が含まれる
p “hello world” #デバッグ用としてオブジェストの種類が分かりやすいように表示
“`
これを実行すると
hello worldhello world
“hello world”

と表示される

###変数
– いきなり書き始めてもいい
– 英小文字または_から書き始める

“`
msg = “hello world”
puts msg
“`
実行結果:hello world

###定数

– 定数 ⇒ 書き換えたくない文字のこと
– 英大文字から書き始める

“`
TENKI = “晴れ”
puts TENKI
“`
実行結果:晴れ

元記事を表示

Rails じゃなくて Ruby で直接 erb テンプレートを利用して HTML を文字列で得る一番簡単な例 ( #ruby )

# ファイル

some.erb

“`
<%= message %>
<%= name %>

“`

# ruby

– File を ERB.new に渡して 変数を binding する
– 引数も渡さずに変数が反映されているのが不思議だが、bindingってそういうことらしい

“`rb
require ‘erb’

message = ‘hello!’
name = ‘Alice’

erb = File.read(‘some.erb’)
# => “<%= message %>\n<%= name %>\n”

ERB.new(erb).result(binding)
# => “hello!\nAlice\n”
“`

# Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2641

元記事を表示

誕生日当て問題

###Ruby誕生日当て問題
##仕様
①私の誕生日を当ててね!
数字を入力してね!(1~31まで)
2(terminal入力)

②ハズレだよ〜、ヒントをあげるね!
私の誕生日は15日以下だよ!
3(terminal入力)

③またまたハズレだよ〜ヒントをあげるね!
私の誕生日は奇数だよ!
5(terminal入力)

④惜しいけどハズレだよ〜ヒントをあげるね!
私の誕生日は6日~10日以下だよ!
※5日刻みで設定
7(terminal入力)

⑤あと一歩!ヒントをあげるね!
私の誕生日は[9, 10, 11]のどれかだよ!
※答え+-2の範囲からランダムに3日表示する
9(terminal入力)

⑥やったね!最後まで考えてくれてありがとう!
or
⑥’全部外れたねwwwどんまい!正解は9日でした〜また遊んでね!

※1~31以外の数字を入力すると、「その値は無効だよ!」と表示され終了します。
※途中で正解したら、「なんでわかったの!?天才!正解だよ☆」と褒めてくれます。

##押さえておきたいポイント
1.randメソッド
 乱数、つまりランダムな数値を生成してくれるメソッド。

元記事を表示

vagrant upでGuestAdditions seems to be installed (6.0.14) correctly, but not running. The following SSH command responded with a non-zero exit status.

# Vagrant upしたら、共有フォルダがマウントされなくなった
先日まで、普通に使えていた仮想環境(vagrant)が突然エラーを吐いて、共有フォルダをマウントしてくれなった…

おそらくMacOSをCatalinaにしたことが原因だと思われる?

“`:console
$ vagrant up


GuestAdditions seems to be installed (6.0.4) correctly, but not running.


(省略)


The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

setup

Stdout from the command:

Stderr from the command:

bash: line 3: setup: command not found
“`
というエラーでハマり、他にも同じハマり方し

元記事を表示

AWSへデプロイしてみよう(〜SSH接続〜Rubyインストール その3)

## 9.SSH接続 その1
まずは公開鍵をコピーします。
一度 exit でEC2から抜けてローカルで以下を実施します。

“`
cat ~/.ssh/id_rsa.pub
“`
表示された公開鍵をコピー

続いてEC2上のsshディレクトリ配下にauthorized_keysファイルを作成、そのファイルの中に公開鍵を保存します。

“`
$ sudo su app
$ cd ~
#sshディレクトリを作成(既に存在している場合は省略)
$ mkdir .ssh
#自分のみに実行権を与える
$ chmod 700 .ssh
#sshディレクトリへ移動
$ cd .ssh
#authorized_keysファイルを作成
$ touch authorized_keys
#そのファイルに自分のみに編集権限を与える
$ chmod 600 authorized_keys
#authorized_keysファイルを開く
$ vi authorized_keys
“`

このファイルの中に先ほどコピーした公開鍵を追記し、ファイル編集後はexitでAWS環境を離脱します。

## 10.S

元記事を表示

ruby webapi に関する参考サイトまとめ

[axios] axios の導入と簡単な使い方
https://qiita.com/ksh-fthr/items/2daaaf3a15c4c11956e9

JSONについてRubyを使用しながら簡単に解説してみる
https://qiita.com/yertea/items/be6f535fc31d7325ed97

RubyでJSONを扱うときに便利な関数まとめ

RubyでJSONを扱うときに便利な関数まとめ

元記事を表示

GR-CITRUSの動作確認&圧力センサーFSR406でアナログ値を取得するまでの奮闘記

GR-CITRUSを試しに軽く動かしてみようと思ったのですが、
恥ずかしながらアナログ値取得に辿り着くまでに時間がかかったので、
備忘録として導入手順を記載しておきます。

# 環境・材料
– MacOS Mojave 10.14.6
– Visual Studio Code 1.39.1 → 1.30.2(後述します)
– [GR-CITRUS-FULL](http://akizukidenshi.com/catalog/g/gK-10281/) × 1
– [圧力センサーFSR406](http://akizukidenshi.com/catalog/g/gP-04158/) × 1
– 抵抗10kΩ × 1
– ブレッドボード × 1
– ジャンパーワイヤ × 必要な分(私は3本使いました)

# 躓きポイント①:VSCodeにRubicをインストールする
VSCodeからRubyで開発を行うために、拡張機能であるRubicをインストールします。
左の一番下のアイコンをクリックし、「Rubic」を検索してインストールします。
Rub</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>Ruby</div>
<div class='tag-cloud-link'>mruby</div>
<div class='tag-cloud-link'>VisualStudioCode</div>
<div class='tag-cloud-link'>GR-CITRUS</div>
<div class='tag-cloud-link'>FSR406</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/s_fujii/items/f36021ae9e61a171eb00'>元記事を表示</a></div>
<h3 id=Rails6 のちょい足しな新機能を試す101(ActionController::Paramters#transform_keys編)

# はじめに

Rails 6 に追加された新機能を試す第101段。 今回は、 `ActionController::Paramters#transform_keys` 編です。
Rails 6 では、 `transform_keys` がブロックなしで呼ばれた場合、 Enumerater オブジェクトを返すようになりました。

Ruby 2.6.5, Rails 6.0.0, Rails 5.2.3 で確認しました。

“`shell
$ rails –version
Rails 6.0.0
“`

今回は、実用的な例を思いつきませんでした。
Userの CRUD を作って確認します。 今回は、Rails 5.2.3 の動作から確認していきます。

# Rails プロジェクトを作る

“`
$ rails new rails_sandbox
cd rails_sandbox
“`

# User の CRUD を作る

“`shell
$ bin/rails g scaffold User name
“`

# データベースのマイグレーションを実行する

“`she

元記事を表示

AWSへデプロイしてみよう(〜EC2インスタンス作成〜SSH接続 その2)

つづきです。

前回の投稿はこちら。。

## 3.固定IP割り振り
インスタンスを作成した直後はIPアドレスは動的に変化します。つまり、住所がコロコロと変わってしまいます。この状態では、ユーザがアクセスする先がコロコロ変わってしまうため、IPアドレスを固定させます。

画面左上の[サービス]から[EC2]をクリックします。

左のスクロールバーからElastic IPを選択します。

[新しいアドレスの割り当て]ボタンをクリックします。

[割り当て]ボタンをクリックして終了です。

#### ※注意

固定IPアドレスはEC2インスタンスと関連付けなければ、課金対象になり料金が発生します。すぐにEC2インスタンスと関連付けましょう。

インスタンスを停止させる場合は[アドレスの解放]も実施しないと課金されます。
 
アクションボタンをクリックし[アドレスの関連付け]をクリックします。

「インスタンス」の項目に今作ったインスタンスを選択して[関連付け]をクリックします。

## 4.ダウンロードしたキーペアへの読み取り権限

元記事を表示

ペアプロ お買い物プログラム2 回答

“`ruby:order.rb
#注文
def order(num, menus, total_price)
puts “いくつ注文しますか?”
quantity = gets.to_i
menu = menus[num]
price = menu * quantity
total_price += price
puts “他にご注文はございますか?”
return total_price
end

#レジ
def register(total_price)
puts “お会計は#{total_price}になります”
puts “ありがとうございました!”
exit
end

#メニュー
burger = 500
potato = 300
drink = 150
menus = [burger, potato, drink]
total_price = 0
puts “いらっしゃいませ、ご注文をどうぞ”

while true do
puts “[0]:ハンバーガー”
puts “[1]:ポテト”
puts “[2]:ドリンク”

元記事を表示

ペアプロ お買い物プログラム2

#Rubyアルゴリズム問題
#お買い物プログラムを作ろう2

今回作るプログラムはお買い物プログラムです。

#仕様
####仕様は以下のようにしたいと思います。
・商品の個数を選択し、お買い物カゴに入れることができる
・レジに進むと合計金額が表示される

####用意する品物

| 品物 |価格 |
|:——-|—–:|
|バーガー|500円 |
|ポテト |200円 |
|ドリンク |150円|
(これもある程度自由で大丈夫です)
#回答
https://qiita.com/shintaro_yataki/items/be3db88cc20764f11adc

元記事を表示

ペアプロ お買い物問題

#Rubyアルゴリズム問題
#お買い物プログラムを作ろう

今回作るプログラムはお買い物プログラムです。

#仕様
####仕様は以下のようにしたいと思います。
・商品を繰り返し選択しお買い物カゴに入れることができる
・合計金額が2500円以上で送料無料になる
・合計重量が2000g以上は送料500円になる
・合計重量が2000g未満は送料200円になる

(具体的な数値は自由に変えてもらっても問題ありません)

####用意する品物

| 品物 |価格 |重量 |
|:——-|—–:|:—:|
|さくらんぼ|500円 |200g |
|りんご |200円 |500g |
|メロン |1000円|1000g|
(これもある程度自由で大丈夫です)
#回答
https://qiita.com/shintaro_yataki/items/500f7f98388462d46f46

元記事を表示

ペアプロ 送料問題 回答編

“`ruby:soryo.rb
#商品選択
def purchase(lists, total)
puts “何を買いますか”
num = 0
lists.each do |list|
puts “#{num}:#{list[:fruit]}”
num += 1
end

select = gets.to_i
list = lists[select]
total[0] += list[:price]
total[1] += list[:weight]
puts “#{list[:fruit]}を購入しました”
return total
end

#レジに進む
def register(total)
total_weight = total[1]
if total[0] >= 2500
postage = 0
elsif total_weight >= 2000
postage = 500
else
postage = 200
end

total_price = total[0]

元記事を表示

rbenv で make test を追加する方法

Ruby 1.8.7-p385 を GCC8.2.1(CentOS8標準)でコンパイルするとmake testが通らなかった。

## make testが失敗する

![スクリーンショット_2019-10-30_07-43-28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/6d8bb05a-d441-7517-5821-3b8d949ff03b.png)

![スクリーンショット_2019-10-30_07-41-57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/e074f6ea-067b-57f0-7fca-2d621922ebbc.png)

## 動作確認

### make test 成功

CentOS 7 の compat-gcc-44 でビルドしたもの

“`ruby
b = 10**80
“`

“`ruby:正常
p b
100000000000000000000

元記事を表示

SESがWebエンジニアになるための計画

# 経歴
・国際関係学部出身
・新卒でSlerベンチャー企業に入社。現在2年目。
・出向先はメガベンチャーで自社サービスの運用保守を担当。

#どうなりたいか
ゴリゴリの文系です・・・
去年独学で勉強しようと試みましたが、挫折。
しかし心残りなのでもう一度奮起して今年中までにポートフォリオ作成し
WEB業界に転職しようと考えております。
PCは業務上触っていますがプログラミングは全くもっての未経験です。

# 現在
只今Rails、Rubyを学習中
Progate←NOW!!、Ruby on Rails、Udemy

今週の勉強内容
Progate Lesson1,2,3,4
インスタンスメソッド
クラスとインスタンス
Total:8.5h

元記事を表示

モデルの作成ができない

つまずいたこと

■モデルの作成ができない

“`console
$ rails g model Contact –skip

The name ‘Contact’ is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again.
“`

⇢フォルダ名とアプリケーション名を一緒にすることができない
https://qiita.com/tu-kun/items/4fede82431e546abd941

⇢解決

元記事を表示

配列を偶数番目と奇数番目で分けてみた

###初投稿

普段自分で勉強していて、自分の書いたソースや、
他人の参考にしたソースの内容をすぐに忘れてしまう、
次似たようなものが来ても、思い出せない、と
全く自分の知識となっていないように感じたため、
アウトプットの場として、ここを利用していこうと思います。


###AtCoderをやっていて
では、早速昨日AtCoderで以下の問題をやっていた時のこと。
[AtCoder Beginner Contest 141 B-Tap Dance]
(https://atcoder.jp/contests/abc141/tasks/abc141_b)

ある文字列の偶数番目と奇数番目に現れる文字が、
特定の文字であるか否かを判定し、
それに応じて出力する文字列を変えるというような問題。

私は、文字列を偶数番目用と奇数番目用の配列に分けて、
その中に、指定された特定の文字があるかの判定をしようと、考えました。

“`ruby:oddeven.rb
#当初のイメージ
s = gets.chomp.split(”)
#以下でsを奇数番目にと偶数番目に分ける。
odd = []

元記事を表示

【駆け出しWEBエンジニアのためのメモ】WEBアプリ作成の作業フロー_基礎(Rails)

#背景
最近、10年のブランクをへてプログラムを猛勉強中で、特に未経験のWEBプログラミング(Rails)に挑戦しております!

TECH::EXPERTにて基礎は学びましたが、どこか「あと少し」な感じで全体像が掴めずにいました。
全体像を把握するためにも、WEBアプリ作成の大まかな作業フローをメモさせていただきました。

※フォーム、ログインなど、他の機能は別途記事を作成いたします。
 

#WEBアプリ作成の作業フロー(概要)
①アプリの雛形作成($ rails _5.2.3_ new ディレクトリ名 -d mysql)
         ($ bundle install)
②データベース作成($ rails db:create)
③サーバー立ち上げ($ rails s)
④ブラウザでアプリケーションの状態確認( http://localhost:3000 )
⑤ルーティング作成(config/routes.rb を編集)
⑥コントローラーを作成($ rails g controller コントローラー名 で作成)
           (app/controllers/コントロ

元記事を表示

RailsにcircleCIを構築し、githubと連携してrubocopとrspecテストを走らせる

## はじめに
スクール卒業後黙々とアプリを作っているのですが、開発環境にDockerを導入したということでそのままCircleCIも導入しちゃいました。

ちなみに circleCIを導入するには少なからずDockerの知識が必要となってきます。
もしDockerってなんだよ?って人は先にDockerを開発環境に構築してみたほうがスムーズかと思います。

RailsにDockerを導入する方法は下記に書いてるので、よかったらみてね!:relaxed:

[作成したRailsアプリケーションでDocker環境構築](https://qiita.com/AK4747471/items/39ddacfde6a235103277)

## circleCIとは?
継続的インテグレーション(デリバリー)サービスです。コミットからデプロイまでのパイプラインを作成し、継続的な統合/配信を使用してソフトウェア開発プロセスを自動化できます。

ちょっと難しい用語ですね。
簡単にいうと、githubのpushに合わせて、テストコードを走らせたりしてくれます。
このさらに自動デプロイまでやってくれる環境の

元記事を表示

RSpec 1つのexpectで複数のchangeを検証する

表題通り1つのexpectに対して複数のchangeを検証したい

“`ruby
it ‘複数のchangeを見るぞ’ do
expect { subject }.to change { x }.by(1).
and change { y }.by(2)
end
“`

長くなるし見づらいのであまり使いたくない…

“`ruby
it ‘複数のchangeの結果だけ見るパターン’ do
# x, y が 1, 2になることだけ確認するbyは使え無さそう
expect { subject }.to change { [x, y] }.to [1 ,2]
end
“`

#### 参考

[ruby on rails – RSpec: Expect to change multiple – Stack Overflow](https://stackoverflow.com/questions/29388777/rspec-expect-to-change-multiple)

RSpec3.1からの機能らしい
http://r

元記事を表示

OTHERカテゴリの最新記事