- 1. 新規登録画面
- 1.1. Rake + Wheneverでブログのステータスを自動的に変更するアプリを作成
- 1.2. Yahoo 日本語形態素解析 API ver2 を叩く
- 1.3. 【未経験】ポートフォリオ開発記録 #01
- 1.4. WEB開発をやり始めてみる(Ruby:クラス)
- 1.5. UbuntuにRuby Gem(mysql2など)をインストールする時のエラーに対処
- 1.6. 【個人開発】野球観戦をもっと楽しめるサービス、「野球バカ実況」をリリースします!
- 1.7. Python,Ruby,PHP,Java,JavaScript,Perlの比較演算子の比較
- 1.8. ぼっち演算子(&.)
- 1.9. Ruboty に GitHub の issue/pull request を検索する command を追加する
- 1.10. ActiveStorageを用いた画像投稿機能の実装
- 1.11. カテゴリー選択機能の実装(ActiveHash)
- 1.12. 検索候補キーワードを取得する
- 1.13. 【Ruby】%記法一覧
Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較
Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較
# Python
https://qiita.com/G-Rape/items/cd3f2f284ba990164564
# Ruby
https://qiita.com/SUZUKI_Masaya/items/eeea6cd36cc265d2dbf0
# PHP
https://qiita.com/mzmz__02/items/8bfbcf2cd48d9e9f2806
# Java
https://qiita.com/morioheisei/items/63088c61e8234dc1f7f5
# JavaScript
https://qiita.com/uhyo/items/cc92a553059274d85403
# Perl
https://perlzemi.com/blog/2
001~300の連番を持ったフォルダを作成する
(2022/10/23 22:06追記) ShellScript版も追記しました。
# Ruby
“`rb
1.upto(300) do |i|
`mkdir #{sprintf(‘%03i’, i)}`
end
“`# ShellScript
“`sh
for i in $(seq -w 1 300); do
mkdir $i
done
“`—
# 参考にした記事
## Ruby
– [Ruby 3.1 リファレンスマニュアル sprintf フォーマット](https://docs.ruby-lang.org/ja/latest/doc/print_format.html)
## ShellScript
– [創作メモ帳 シェルスクリプトで指定した範囲の数値 (range) を取得する](https://sousaku-memo.net/php-system/1213)
– [UNIX/Linuxの部屋 seqコマンドの使い方](http://x68000.q-e-d.net/~68user/unix/pickup?seq)
rubizipでzipファイル中のzipファイルにアクセスしてみた
## はじめに
rubyで、zipファイル中のzipファイルにアクセスする必要があり、いろいろ悩んでアクセスできたので、記録しておきます。
zipファイル中のzipのデータをioとして処理できずに悩みましたが、StringIOを使って解決することができました。## やりたい事例
* `hoge_hoge.zip`の中に`hoge.zip`ファイルがアーカイブされている。
* `hoge.zip`の中に`hoge1.txt`と`hoge2.txt`がアーカイブされている。
* `hoge_hoge.zip`から`hoge1.txt`と`hoge2.txt`にアクセスしたい。“`
hoge_hoge.zip
+– hoge.zip
+– hoge1.txt
+– hoge2.txt
“`“`hoge1.txt
hoge1 contents
“`“`hoge2.txt
hoge2 contents
“`## コード
“`ruby:zip_in_zip.rb
require ‘zip’Zip::InputStrea
Rails7でtailwindCSSをインストールする方法
まだアプリケーションを作成していない場合は、下記コマンドでtailwindが使えるようになります。
“`
rails new myapp –css tailwind
“`既にアプリケーションがある場合、下記二つのコマンドを実行すればインストールされます。
(参考にしたサイト→ [tailwindcss-rails](https://github.com/rails/tailwindcss-rails/blob/main/README.md “”))“`
./bin/bundle add tailwindcss-rails
./bin/rails tailwindcss:install
“`
MVC(Model View Controller)とは?
## はじめに
Ruby on Rails 等で使用される MVCについて書きたいと思います。## MVCとは?
– Model View Controller の略称
– プログラムの処理を役割毎に分けて開発を行う考え方
– Webシステムの開発で主に使用される
– 以下のフレームワークで使用されている
– Ruby on Rails, Laravel, SpringBoot 等## MVCの構成
– Model
– ビジネスロジックを書く部分
– データベースとのデータのやり取りを行う部分
– View
– ユーザーが実際に見る画面
– Controller
– リクエストやレスポンスを制御
– ViewとModelの橋渡し## 図
![MVC.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636476/0d506bc0-9156-ad22-c09e-11278e413164.png)
## 参考
[Ruby]バイナリーサーチとは
ruby の問題を解いていたところ
躓きましたので備忘録として残します。# バイナリーサーチとは?
ソート済みのリストや配列に入ったデータ(同一の値はないものとする)に対する検索を行うときに用いられる手法です。
まず、中央の値を確認し、検索したい値との大小関係を用いて、検索したい値が中央の値の右にあるか、左にあるかを判断します。
それを繰り返し、片側には存在しないことを確かめながら検索していく方法です。・・・理屈ではわかります。ただ、それをコードでどのように記述すればよいのか?
# 回答
※配列の上限である32以上の値による検索は想定しないものとする
※検索はバイナリーサーチ(2分割検索)を使用して行う“`ruby
1回目のループ
def binary_search(array, right, target) #=> right=配列の数、target=26
left = 0
while left <= right center = (left + right) / 2 if array[center] == target #=> array[
fields_forを使用して新規登録時に別レコードも作成する
# はじめに
railsを利用してポートフォリオを制作しました。制作するにあたって、会員登録時に別モデル内にレコードを作成したいと思いました。
その機能を実装したいと思った理由は、ゲームの成績を管理するスコアシートを制作したかったからです。
会員登録と同時にプレイヤー名としても勝手に登録してくれることで、スコアシートを作成する際に参加しているプレイヤーとして自身の名前が選べるようにする為です。
実装するにあたりfields_forを使用しました。伝わりづらいかもしれませんが自分なりにまとめてみようと思います。# やり方
会員登録に関してはdeviseを使用しました。
こちらが新規登録を行うページです。
“`erb:registrations/new.html.erb新規登録画面
<%= form_with model: @user, url: user_registration_path do |f| %>
<%= f.label :name, "会員名" %>
<%= f.text_field :name, autofocus:
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 = 0def initialize(name)
@name = name
@@count += 1
enddef hello
puts “I am #{@name}. #{@@count} instance(s).”
enddef self.info
puts “#{@@count} instance(s).Reasion: #{REASION}”
endend
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の比較演算子の比較
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 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})