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

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

RubyとHTMLで帳票まわりにガチで取り組んだ結果

##HTML5
#### [そろそろ真面目に、HTMLで帳票を描く話をしようか](https://qiita.com/cognitom/items/d39d5f19054c8c8fd592)
このエントリに触発され、チャレンジしたHTML帳票。
概ね良好な結果がでました。

###苦戦するポイント
####フォント問題。
[【游ゴシック】macとwinの差異!](https://ai-create.net/blog/2019/08/28/%E3%80%90%E6%B8%B8%E3%82%B4%E3%82%B7%E3%83%83%E3%82%AF%E3%80%91mac%E3%81%A8win%E3%81%AE%E5%B7%AE%E7%95%B0%EF%BC%81/)

こちらのエントリにもあるように、Macの場合は、フォント指定をきっちりしないと、フォント自体を適用できません。

####高さ調整が難しい
各フォントによって、文字間隔が固定されたりするため、高さ指定したいケースは、環境がことなると、簡単にずれます。

####HTML5での印刷で対応できないケース
上記エントリでも指

元記事を表示

Ajax通信でActionController::InvalidAuthenticityTokenしたときの対応

# 原因とか理由とかすっ飛ばして結論

送信するdataに`authenticity_token: $(‘meta[name=”csrf-token”]’).attr(‘content’)}`を追加。

“`js
let ajax = function (method, data) {
data = $.extend(data, {authenticity_token: $(‘meta[name=”csrf-token”]’).attr(‘content’)});
$.ajax({
type: method,
url: “hope/the/colona/is/orver”,
timeout: 3000,
data: data,
dataType: ‘json’
}).done(function (response, textStatus, jqXHR) {
console.log(response);
}).fail(function

元記事を表示

attr_accessorについて

#attr_accessorとは?
attr_accessorについて理解が不十分であったので紐解きます。
attr_accessorはデータを代入するメソッド(setter)とデータを取り出せるメソッド(getter)を同時に定義できるメソッドである。これは省略形であり、いきなり覚えようとするとかえって混乱するので一個一個分解していく。

###attr_accessor・setter/getterを使わずに定義する場合

“`

class okashi
def name = (name)  #どんな処理を行っているのか
@name = name    →   ・いわゆるsetterの部分
end             お菓子クラスに名前という情報をセット
                しますという処理。@を使用しているた
                め、メソッドの中だけでなく外でも使用できる。

def name → #どんな処理を行っているのか
@user           ・いわゆるgetterの部分
end 

元記事を表示

Ruby入門メモ(プログラミング経験者用)1

#変数定義
1.型無しで定義できる
2.セミコロンがいらない

“`
//C言語やC#言語の場合
//int year = 2020;

//Ruby
year = 2020

“`

#入出力
1.シングルクォーテーションやダブルクォーテーションで囲む。
2.クォーテーションで囲むと文字列として扱われる
3.文字列中で変数をつかうときは「#{ }」で変数をかこむ。

“`
num1 = 10
num2 = 20

puts num1 + num2
puts “num1” + “num2”
puts “#{num1}” + “#{num2}”

buf1 = “春夏”
buf2 = “秋冬”

puts buf1 + buf2
“`

[実行結果]

“`
30
num1num2
1020
春夏秋冬
“`

###出力
改行なし print
改行あり puts

“`
print “あいう”
puts “あいう”

puts “あいう”
print “あいう”
“`
[実行結果]

“`
あいうあいう
あいう
あいう
“`

###入力
文字列:get.

元記事を表示

Twitterのおすすめトレンドに日本の地域でどれくらいの差があるか調べてみる

### 概要

Twitterのおすすめトレンドは地域ごとに取得することができ、日本だけで22箇所に細分化されている。この日本の22箇所のおすすめトレンドにどれくらいの差があるか調べてみる。

### 先に結論

**キーワードの一覧**

地域ごとに多少の差はあるものの、キーワードの一覧はほとんど同じ結果になった。一方で、`エイプリルフール`や`コロナ`のように、全ての地域で入っていてもおかしくないようなキーワードが入っていない地域があり、この点は不思議に思える結果となった。

**ツイートボリューム**

同じ地域の中では、数字の大小に一貫性があるように思える。一方で、`日本`と`東京`のように単純な大小関係がある地域であっても、ツイートボリュームはその通りにはなっていない場合がる。

トレンド情報の都市名とツイートボリュームを、`サーティワン`に限って絞り込みし、グラフにしてみた結果は下記の通り。

スクリーンショット 2020-04-02 7.16.43.pngTwitterのおすすめトレンドをAPI(Ruby)で取得する

TwitterのおすすめトレンドをTwitter APIで取得するには、主に下記2つのエンドポイントを利用する。コード例はTwitter gemを使っている。

### GET trends/available

おすすめトレンド情報を持つ地域の一覧を取得する。Rate-limitは75回/15分。placesの数は現時点で467個ある。

“`ruby
places = client.trends_available
places.first.attrs
“`

上記のRubyコードの戻り値は下記の通り。

“`ruby
{:name=>”Worldwide”,
:placeType=>{:code=>19, :name=>”Supername”},
:url=>”http://where.yahooapis.com/v1/place/1″,
:parentid=>0,
:country=>””,
:woeid=>1,
:countryCode=>nil,
:id=>1}
“`

※取得できる地域の一覧は末尾に記載しています。

### GET trends/

元記事を表示

【メモ】Rubyにおける真偽値

## Rubyにおける真偽値の判断

### 大前提として
– falseもしくはnilならば【偽】を返す
– それ以外は全て【真】を返す
– && 【全ての条件が真であれば真】を返す
– || 【いずれかの条件で真であれば真】を返す

Rubyは、式全体が真もしくは偽であることが決定するまで、左辺から右辺に式を評価する。
式全体の 真or偽が確定した段階で式を評価し、最後に評価した式値を返す。
  

“`
1 && 2 && 3 => 3 全ての条件で真を返したため最後に評価した3を返す
1 && 2 && false => false

nil || 1 => 1
false || nil => nil
false || 2 || nil || 4 => 2  2を評価した段階で式全体の真偽値が真であるとわかったため、以降の処理を中断

“`

## 論理演算の優先順位

“`
優先順位
高  ! > && > || > not > and,or  低
“`

andやorやnotは記号の論理演算

元記事を表示

[Rails]refileの使い方を初心者がまとめてみた。[refile]

#はじめに
私のオリジナルサービスの画像投稿機能にrefileを使用したので、簡単にまとめておきたいと思います。
つまづいたところとかも記載しておくので、参考になれば幸いです。

#refileの導入
##gem
いくつかQiitaやブログなどで参考記事はありますが、gemをinstallできないもののいくつか見受けられました。
githubに記載されている [github/refile](https://github.com/refile/refile#1-backend)

“`ruby:Gemfile
gem “refile”, require: “refile/rails”
gem “refile-mini_magick”
“`
↑この記述方法ではbundle install できませんでした。(環境によっては変わるのか?)

なので、私はこの記事([refile使い方](https://qiita.com/salvage0707/items/2614c97a1f256027ef71))を参考にして、

“`ruby:Gemfile
gem “refile”, requ

元記事を表示

Linux(ubuntu)にruby on rails 6.0の環境構築をする(2020.4.1)

どうものぶおです
今回はubuntuでruby on rails6の開発環境を作っていきます

これまでmacで開発していたんですが、別に持っていたwindowsのPCをHDDからSSDに変換して超サクサクに動くようになったため、こちらでruby on rails を使えるようにしていきたいと思います

#Rubyをインストール
インストールに必要なaptを更新します

“`
sudo apt-get update
“`

“` ~/
sudo apt-get -y install git curl g++ make zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev sqlite3 libsqlite3-dev nodejs
“`

ホームディレクトリに移動します

“`
cd
“`

“`
git clone git://github.com/sstephenson/rbenv.git .rbenv
“`
パスを通します

“`
echo ‘export PATH=”$

元記事を表示

Swiper.jsが動作しなかった時の対処法[備忘録]

##はじめに
##バージョン確認の重要性
Swiper.jsはバージョンによってサポートしてくれるブラウザが違う。ver5.0以降から、IEは完全にサポート対象外になった。今回私はchromeで開発を行っているので最新版でいけると思いきや、挙動が意図したものにならなかったので、4.5.0系を使うことにした。

##便利なオプションたち

オプションが豊富で有名なSwiper.js

ここでは、私が参考にした記事を載せておくだけに留めておく。

####参考記事
実例12パターン】画像スライダーはSwiper使っておけば間違いない!実用的な使い方を紹介

【実例12パターン】画像スライダーはSwiper使っておけば間違いない!実用的な使い方を紹介


swiper.js使ってみたからそのオプションについて(v4.1.6)

swiper.js使ってみたからそのオプションについて(v4.1.6)

## 実際のコード

“`swiper.js

$(function(){
var mySwiper = new Swiper(‘.swiper-container’, {
slidesPe

元記事を表示

【Ruby】カードゲームZENOをコンピューターと対戦して遊べるアプリ

カードゲームZENOがターミナル上で、コンピューターと対戦できるアプリを作りました。

制作期間は5日間です。

ZENOをご存じない方の為に説明しますと、オリエンタルラジオの中田敦彦さんがプロデュースした新しいカードゲームです。UNOの売り上げをこえたことや、YOUTUBE上でメンタリストのDAIGOさんと白熱した心理戦を繰り広げられたことで話題になりました。

もともとはラブレターというカードゲームを題材として作られており、そこに中田敦彦さんが新たに手を加えて二ヶ月ほどで世界観や設定を作り上げました。AMAZONで770円ほどで購入することができます。

あまり興味がない方もいるかと思いますが、中田敦彦さんはDAIGOさん以外にも、ホリエモン、YOUTUBEのヒカルさん、クイズ王の伊沢拓司とも白熱した戦いをYOUTUBE上で公開してますのでそちらだけでもぜひ見てみてください。

自分が作ったアプリの動作ですが、最終ターンまでにいけたので恐らく不備はないかと思います。

ないと信じたい。

現在就活中ですので、今後WEB上でプレイできるようにしたり、コードもリファクタリングする予定

元記事を表示

ログイン機能つけてくよ。〜Railsチュートリアル8章〜

少しづつ難しくなってきました。今回はログイン機能についてまとめてみます。
足早に来てるけどこうして一個一個確実にアウトプットしてくよ。

この章ではログイン・ログアウト機能を実装していきます。
ログインの仕組みはブラウザがログインを保持し、ユーザーによってブラウザが閉じられたら状態を破棄すること。
ログインしたユーザーだけがアクセスできるページや扱える機能を制御する。こうした制限や制御の仕組みを認可モデルという。

#セッション
HTTPは状態(state)がない(less)。つまりステートレスなプロトコルである。
HTTPによるリクエストの一つ一つはそれより前の情報を全く利用できません。
リクエストが終わると何もかも忘れてしまう健忘症的なプロトコルである。
つまりHTTP自体にはブラウザの別のページへ移動したときにユーザーのIDを保持しておく手段がない。
ユーザーログインが必要なApplicationではセッションと呼ばれる半永続的な接続をコンピュータ間に別途設定を行う。

#cookies
Railsでセッションを実装する方法として最も一般的なのはcookiesを使う方法である。c

元記事を表示

ほぼ未経験の僕、アプリ開発するってよ。[3ヶ月目] [ポートフォリオ公開]

##はじめに

初めてのポートフォリオ、ついに完成しました!!!

[ほぼ未経験の僕、アプリ開発するってよ。[1ヶ月目の学習記録]](https://qiita.com/rails_man_mmm/items/5809c93150727c5c2191)以降、更新が止まってましたが、その後もrailsの学習を継続して、なんとかポートフォリオを完成させることができました!
今回は空白の2ヶ月目も合わせて、どういった手順でここまで到達したのか、どのようなポートフォリオを作成したのかという2点についてお話します。

・これからプログラミング学習を始める方
・転職、新卒入社目的でプログラミング学習されている方
には非常に参考になると思います。

また、[前回の記事](https://qiita.com/rails_man_mmm/items/5809c93150727c5c2191)をお読みになってない方は先に読まれることを推奨します。読まれた方がより鮮明にトレース出来るかと思うので。

では本編です!

##ここまでの学習軌跡
僕が1ヶ月目のときに書いた記事
[ほぼ未経験の僕、アプリ開発するっ

元記事を表示

Kinx ライブラリ – Zip

# Zip

## はじめに

**「見た目は JavaScript、頭脳(中身)は Ruby、(安定感は AC/DC)」** でお届けしているスクリプト言語 [Kinx](https://github.com/Kray-G/kinx)。言語はライブラリが命。ということでライブラリの使い方編。

今回は Zip です。

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

アプリ作る時に Zip 機能は欠かせないですね。あと、脆弱だ、脆弱だ、言われてますけど、業務アプリの中ではパスワード付き Zip が(建前上)求められることも事実。なので、パスワー

元記事を表示

フィボナッチ数列 Ruby Perl JavaScript

# はじめに
フィボナッチ数列の記事ってフィボナッチ数列100番目より遅いところですが、勉強中の*[もっとプログラマ脳を鍛える数学パズル アルゴリズムが脳にしみ込む70問](https://www.amazon.co.jp/dp/B078LMFXXC)* のアウトプットということでお許しください。

# Ruby
“`rubymemo.rb
@memo = {0 => 1, 1 => 1}
def f(n)
return @memo[n] if @memo[n]
@memo[n] = f(n – 1) + f(n – 2)
end

puts f(10) # => 89
“`
“`rubyarray.rb
N = 10

f = Array.new()
f[0] = f[1] = 1
2.upto(N) do |i|
f[i] = f[i – 1] + f[i – 2]
end

puts f[N] # => 89
“`
*javascript* の様にハッシュではなく配列でも実装可能と思われます。
# Perl
“`perlmemo.pl
my %memo =

元記事を表示

Rails ウィザード形式導入について 2

#はじめに
[Rails ウィザード形式導入について 1 はこちらをクリック願います。](https://qiita.com/raigakun/items/71cd599a0d66bf46f581)
チーム開発でフリマサイトを開発致しました。
その際、ユーザーの新規登録画面でウィザード形式を導入致しましたので、内容を整理します。
もうすでにご存知の方、省略の仕方等ご存知でしたら、ご教授願います。

#前提
– ユーザー情報(User)については 以下 **A** と記述します。
– 住所情報(Destination)については 以下 **B** と記述します。

#Aの新規登録のnewアクションとビュー
– app/controllers/users/registrations_controller.rbを見てみてください。
– えらいことになっているかと思います・・・
– なんだこれ・・・

“`app/controllers/users/registrations_controller.rb
# frozen_string_literal: true

class Users:

元記事を表示

strftimeとは?

# はじめに
新しい会社でインターンをはじめ、最初の方に回ってきた保守開発で、複数の日時を比べる機会がありました。
そこで、いろいろ調べてこのstrftimeを学んだので、アウトプットをかねて記事を書いていきます!(自分の初めてのqiita記事です)

#strftimeとは?
[rubyのstrftimeリファレンス](https://docs.ruby-lang.org/ja/latest/method/Time/i/strftime.html)は
*時刻を format 文字列に従って文字列に変換した結果を返す*
と言っています。

#そもそも日時ってどうやって取り出すの?
めっちゃいい記事を見つけたのでこちらを参照してください笑
[RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い](https://qiita.com/jnchito/items/cae89ee43c30f5d6fa2c)
Time.nowで現在の日時を取得できます。
`irb(main):001:0> Time.now
=> 2020-04-01 18:42

元記事を表示

【超初心者向け】RubyをインストールしたらRubyで遊んでみよう!!その6

※本記事はRubyがインストールされた前提の記事です。
Rubyをインストールしたあと、とにかくRubyをいろいろ触ってみて慣れていくための記事です。お役に立てば幸いです。

##環境
Ruby 2.5.1
MacOS Mojave Ver.10.14.6

[【超初心者向け】RubyをインストールしたらRubyで遊んでみよう!!その5](https://qiita.com/TOMARU4400/items/ae9346041898da9b2bda)の続きです。ここでも少し難しくなります。

“`irb:Tarminal
irb(main):019:0> def hi(name = “World”)
irb(main):020:1> puts “Hello #{name.capitalize}!”
irb(main):021:1> end
=> :hi
irb(main):022:0> hi “chris”
Hello Chris!
=> nil
irb(main):023:0> hi
Hello World!
=> nil
“`

## capitalizeメソッド

2行

元記事を表示

【超初心者向け】RubyをインストールしたらRubyで遊んでみよう!!その5

※本記事はRubyがインストールされた前提の記事です。
Rubyをインストールしたあと、とにかくRubyをいろいろ触ってみて慣れていくための記事です。お役に立てば幸いです。

##環境
Ruby 2.5.1
MacOS Mojave Ver.10.14.6

[【超初心者向け】RubyをインストールしたらRubyで遊んでみよう!!その4](https://qiita.com/TOMARU4400/items/455faf979a6e82d88d26)の続きです。ここで少し難しくなります。

## #{変数名}で式展開
名前を引数にhiを再定義すれば特定の人にHelloが言えます。
2行目の#{name}は文字列に何か挿入するときのRubyのやり方です(式展開)。#{変数名} と記述すると、文字列の中に変数や定数を書き込むことができます。式展開を使用するためには、文字列を必ずダブルクォート(”)で囲います。

“`irb:Tarminal
irb(main):015:0> def hi(name)
irb(main):016:1> puts “Hello #{name}!”
irb(

元記事を表示

【超初心者向け】RubyをインストールしたらRubyで遊んでみよう!!その4

※本記事はRubyがインストールされた前提の記事です。
Rubyをインストールしたあと、とにかくRubyをいろいろ触ってみて慣れていくための記事です。お役に立てば幸いです。

##環境
Ruby 2.5.1
MacOS Mojave Ver.10.14.6

[【超初心者向け】RubyをインストールしたらRubyで遊んでみよう!!その3](https://qiita.com/TOMARU4400/items/f23443dd9f915c974114)の続きです。
何度も”Hello World”と表示させたい時は「メソッド」を定義します。

“`irb:Tarminal
irb(main):010:0> def hi
irb(main):011:1> puts “Hello World!”
irb(main):012:1> end
=> :hi
“`

def hi という部分でメソッドを定義しています。次の行はおなじみのputs “Hello World!”ですね。そして次の行は end でRubyにメソッド定義の終わりを意味します。最後の行はRubyがメソッド定義の終わりを理

元記事を表示

OTHERカテゴリの最新記事