学習バンザイITエンジニアの精神安穏日記

ITエンジニアというより、IT系雑務者

Ruby

【Ruby】一次元配列を二次元配列に変換する(多次元配列も)

要望 今手元にある一次元配列を、要素a個のN次元配列(多次元配列)に変換したい。 初期化の方法ではなく、すでに存在する配列をどうこうする。 理解の方針 今回は、まず2次元と3次元を取り扱い、多次元配列の理解を深める。 その後、帰納的にN+1次元を実現す…

initializeの中にmodule includeしたmethod使うときの間違い

だめ class Hoge def create end end class Fuga include Hoge def initialize create end end Fuga.new undefined method createになる OK class Hoge def initialize create end def create end end class Fuga include Hoge end end Fuga.new

【Ruby】erbの中にerb書く場合のエスケープ方法

templateのgenerateのときに迷ったのでメモ 結論 <%% %> と書く 実践 <% variable = 'aaa' > <%%= variable %> <%=variable> rails generate hoge 結果 <%= variable %> aaa

【Rails】【Ruby】[{key: "A", value: 1},... ]な配列を{ A: 1, B: 2 }にする方法

ハッシュの配列でkeyが一意なときに、Hash化したいとき、あると思います。 RailsのActiveRecordで使いました。 例 # Post belongs_to User Post.all.select("user_id, count(user_id) as count") .group(:user_id) .map { |h| [h[:user_id], h[:count] } .to…

Rubyで電話番号をやたら難しく表現する

# repl.it/languages/ruby %W?090 #{0000<<1} #{482*2**6}? プログラマに電話番号を知らせたいときに便利? ※架空の番号になるようになっています

【Ruby】【JavaScript】偶数で+1奇数で-1になる関数

マイナス1 , プラス1になる数学の関数のなんかってあるんかね と、メモにあって、思いついたので出した。 # xは正の整数とする f(x)= -1^x function plusMinus(x) { Math.pow(-1, x) } def plus_minus (-1)**x end こういう関数なんていう名称なのか知ってる…

Rubyでgemを使わずにプログレスバー

なんとなくgemを使いたくなかったので自前で作った。 require 'io/console/size' class ProgressBar def initialize(finished_count) # ref: https://docs.ruby-lang.org/ja/latest/method/IO/i/sync=3d.html $stdout.sync = true @finished_count = finishe…

gemにfftwが含まれていたときのエラー解消【numoのインストール時など】

発生条件 gemのnumoをinstallするときに発生。 numo以外の場合でも発生する可能性があります。 macOSのバージョン $ sw_vers ProductName: Mac OS X ProductVersion: 10.15.5 BuildVersion: 19F101 rubyのバージョン $ ruby -v ruby 2.6.3p62 (2019-04-16 re…

JavaScriptでrubyのreturn ifっぽく

ruby return "hello" if true JS if(true) return "hello"

/lib/libssl.1.0.0.dylib (LoadError)の解消メモ

/lib/libssl.1.0.0.dylib (LoadError) ruby -v 2.5.3 openssl 1.1.2 でだめだった ruby 2.6.3にupgradeしたら直った

GraphQLのEnumのエラーの解消

状況 Railsで以下graphql-rubyを使っている https://graphql-ruby.org/ create mutationの payloadで Enumを参照しようとした時に発生 mutation { createAbc { input: { reason: a } }, { abc { reason } } enum AbcEnum { a b c } エラー内容 GraphQL::Enum…

rubyでミリ秒をHH:MM:ss, LLL形式にする方法

正確な時刻や動画関係あつかっていると出くわすかもな問題 例) 字幕のためのsrt形式にする場合など できた例 data = 33690 Time.at(data / 1000.0).utc.instance_eval { '%s,%03d' % [strftime('%H:%M:%S'), (usec / 1000.0).round] } => "00:33.690" できな…

異なるディレクトリからゴリ押しでRubyを実行するShellScript

状況 別のディレクトリにexec.rbが存在する。 現在のディレクトリから、exec.rbを実行する。 仕様 このとき、exec.rbは、別のディレクトリ内部で処理される。 現在のディレクトリに対しては、特に影響がないようにする。 コード function execruby (){ # 先…