- 1. Python,Ruby,PHP,Java,JavaScript,PerlのPDF作成の比較
- 2. Ruby問題 配列の並び替え
- 3. asdfでruby2.7.6が見つからない件
- 4. 【Laravel / Rails】bulk insertについてまとめ
- 5. Docker環境でrails 6以降の構築しました。あ、macはM1チップです。
- 6. 凝縮度・結合度という尺度から関数のリファクタリングを行う
- 7. MySQLではinsertで生成されるIDが帰ってこない問題へのアプローチ
- 8. Rubyで文字のUnicode(10進数表記)を取得する
- 9. authenticate_user!メソッド
- 10. (未解決) Mac + Ruby + Selenium + Chrome でドラッグ&ドロップが出来ない。カーソル位置でドロップされてしまう。
- 11. Mac + Ruby + selenium を初めて使う
- 12. 未経験からITエンジニアになる〜ポートフォリオ作成〜
- 13. 【Ruby】配列要素を集計したい!
- 14. 【Ruby】sortとsort_byってどう違う?
- 15. Python,Ruby,PHP,Java,JavaScript,Perlのデータベースの比較
- 16. Railsの基礎を使って、メッセージ投稿アプリを作ってみた 【第4章】(7.Bootstrapでスタイルをつける)
- 17. FizzBuzz問題を解いた備忘録
- 18. "rails g"コマンドを叩いたらターミナルが固まってしまった時の対処法
- 19. Railsバージョンの問題解決
- 20. Xcode(CommandLineTools)14系を使っているとRubyがインストールできない問題
Python,Ruby,PHP,Java,JavaScript,PerlのPDF作成の比較
Python,Ruby,PHP,Java,JavaScript,PerlのPDF作成の比較
# Python
https://qiita.com/godan09/items/13866970972bf3a1c243
# Ruby
https://qiita.com/inoue9951/items/4498e5d130702d884352
# PHP
https://qiita.com/one_punch_man/items/bf140d4300195577dd3d
# Java
https://qiita.com/iceblue/items/a059c99ef1c17226a02a
# JavaScript
https://qiita.com/shuhei_sakiyama/items/ef68d49b7199d50a853b
# Perl
https://perlzemi.c
Ruby問題 配列の並び替え
(1) 配列の並び替え
—
“`
【Q】 数字の配列を、偶数はそのままの位置で、奇数のみを昇順に並び替えなさい。例)
[7, 1] => [1, 7]
[5, 8, 6, 3, 4] => [3, 8, 6, 5, 4]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] => [1, 8, 3, 6, 5, 4, 7, 2, 9, 0]
“`私の回答
“`ruby
def sort_array(array)
oddsArr = array.select {|n| n.odd? }.sort
array.map {|n| n.even? ? n : oddsArr.shift }
end
“`1) 配列の中から奇数のみを取り出したいので、selectメソッドを使いました。
sortメソッドで昇降順に並び替えて、新しい配列に入れます。2) 元の配列を三項演算子を使って、並び替えます。
`n.even?` 偶数であるかどうかを判断
YES => そのまま配列に入れる
NO => 奇数なので、`oddsArr`からshiftメソッド
asdfでruby2.7.6が見つからない件
# はじめに
コロナにかかってしまった筆者です。高熱は3日続き、微熱が1週間下がらず、半年前から計画していた旅行には行けず、悲しい思いをしました。
気をつけてはいたのですが、皆様もどうぞお身体にはお気をつけくださいませ:pray:さて、今回は新規で参画するプロジェクトのGitリポジトリをクローンして、bundle installした際に、Gemfileに記載のRubyのバージョンが違うと怒られました。
↓こんな感じですね。
“`console
> bundle install
Your Ruby version is 2.6.6, but your Gemfile specified 2.7.6
“`asdfでバージョン管理しているので、早速インストールしようとすると、ないと言われてしまいました。
“`console
> asdf install ruby 2.7.6
Version not found
“`そして、確かにないですねー。。
“`console
> asdf list all ruby | grep 2.7
1.8.6-p287
2.0.0-p2
【Laravel / Rails】bulk insertについてまとめ
一度に複数のデータを1回のクエリでインサートしたいとき(bulk insert)、insert
## PHP/Laravel
クエリビルダの“`insert“`メソッド
“`php
DB::table(‘users’)->insert([
[‘email’ => ‘picard@example.com’, ‘votes’ => 0],
[‘email’ => ‘janeway@example.com’, ‘votes’ => 0],
]);
“`
https://readouble.com/laravel/9.x/ja/queries.html先輩エンジニアに聞いたところ、「bulk insertは使うとしたら100万件くらいのデータ量の場合だが極力使わないほうがいい」とのこと。
今回のプロジェクトではデータ量がそこまで大量ではなかったため、bulk insertは結局使わないことにした。
下記記事も参考になった。https://zenn.dev/naoki_oshiumi/articles/648a00bcd4d209
ただ、調べるとLar
Docker環境でrails 6以降の構築しました。あ、macはM1チップです。
私はサラリーマンである。
ITエンジニアである。明日も7時前に起きて出社の準備をしないといけない。今深夜1時。この記事を書き終わる頃には2時とかだろう、早く寝ろ俺。
しかし一個だけ言わせてほしい。
dockerお前の仕事は環境の差異をなくすことちゃうんか!?お前が一番差異に困惑しとるやないかぇぇぇぇぇぇウェえええええええ!!!
# 失礼しました
タイトルの通りrailsをDockerに走らせるだけの簡単なお仕事でミスりまくってものすごい時間を費やしたので書いてます。
# 試したこと
https://zenn.dev/tmasuyama1114/articles/rails-docker-5x-how-to
自分が作ったdeviceでログイン + 文章投稿する という簡単なアプリケーションを
上記リンクを参考にDockercomposeファイルを足してコンテナ化しようとしました。# そもそも使てるアプリケーションがrails 6~
まず手始めにエラーが出たのは
“`ターミナル
bundler: command not found: rail……..
`
凝縮度・結合度という尺度から関数のリファクタリングを行う
# 背景
https://gihyo.jp/magazine/wdpress/archive/2022/vol127
☝️読んで感化されました。
https://fortee.jp/object-oriented-conference-2020/proposal/a826b6c6-167c-4c5c-bfc7-52bb8bc22ec1
感化された内容は☝️でもまとめられています。
この記事は上記の内容を読み解いていくだけです。# はじめに
より良いプロダクトにするために色々な設計論や尺度が存在しています。
知っておいて良いと思うのですが、ひきづられない方がよくて、
現状のプロダクトにとって **何が最善なのかはチームで決めていく** ことが望ましいと思います。
(本の受け売り)この記事では
– 凝縮度
– 結合度の観点から関数のリファクタリングについて考えてみたいと思います。
# なぜリファクタリングするのか
https://refactoring.com/
> Since each refactoring is small, it’s less li
MySQLではinsertで生成されるIDが帰ってこない問題へのアプローチ
注)mysql 5.6のことだけ調べました。他のバージョンのことはよくわからないです。
# この記事でできるようになること
mysqlでinsertしたレコードの自動生成されたIDの取得# 解決したかった問題
Railsでbulk insertする場合– 生SQLでinsert文流す
– activerecord-importを使うを使うのかなと思うのですが、mysqlは生成したレコードのIDがわからない、、、
生成したIDで紐付け処理を行う場合は、再度fetchしてIDを取得する必要がある。
が、取得する場合にkey値がなかったらどうすればいいのか# 例えばこんなデータ
“`sql
mysql> desc parents;
+————+———————+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————+—
Rubyで文字のUnicode(10進数表記)を取得する
## TL;DR
`String.ord` or `String.unpack(“U*”)`を使う
“`ruby
‘あ’.ord # 12354
‘あ’.unpack(“U*”) # [12354]
“`
https://docs.ruby-lang.org/ja/latest/method/String/i/ord.htmlhttps://docs.ruby-lang.org/ja/latest/method/String/i/unpack.html
## ordとunpackの違い
返り値の型が違うので実装上は注意が必要です。
`ord`は最初の文字のUnicodeをIntで返しますが、`unpack`は1文字ずつのUnicodeをArrayで返します。
“`ruby
# 対象が1文字
‘あ’.ord # 12345
‘あ’.unpack(“U*”) # [12354]# 対象が複数文字
‘あいうえお’.ord # 12354
‘あいうえお’.unpack(“U*”) # [1
authenticate_user!メソッド
# authenticate_user!メソッドとは
ログイン状態によって表示するページを切り替えるdeviseのメソッドで
ユーザーがログインしていなければ、そのユーザーをログイン画面に遷移させる事が出来ます
以下のようにcontroller内にbefore_actionを記述する事で、アクションを実行する前にログインしていなければログイン画面に遷移させられます。“`:ruby
before_action :authenticate_user!
“`##### indexアクションではログインをしていなくても閲覧できるようにしたい場合は以下のように記述する
“`:ruby indexはログインせずに閲覧できる
before_action :authenticate_user!, except: :index
“`##### このように複数のアクションにも適用する事も出来ます
“`:ruby indexとshowをログインせずに閲覧できる
before_action :authenticate_user!, except: [:index, :show]
`
(未解決) Mac + Ruby + Selenium + Chrome でドラッグ&ドロップが出来ない。カーソル位置でドロップされてしまう。
# 感想
drag_and_drop ではなく他のメソッドを使ってみても無理で、Seleniumのカーソル移動的な挙動(?)が壊れているかもしれない気がした。
Firefoxではまったくドラッグもドロップも出来なかった。
# Ruby
“`rb
require ‘selenium-webdriver’driver = Selenium::WebDriver.for :chrome
driver.navigate.to “file:///Users/yumainaura/projects/YumaInaura/ruby/drag-and-drop.html”source = driver.find_element(:id, ‘p1’)
target = driver.find_element(:id, ‘dd1’)driver.action.drag_and_drop(source, target).perform
sleep 3
“`# HTML
“`html