shonen.hateblo.jp

やったこと,しらべたことを書く.

Ruby

文字列・シンボルからクラスインスタンスを取得する

こういうコードがあるとする。 class Hoge def initialize puts 'init Hoge' end end c = Hoge c.new c = Hoge しているんだけれども、Hogeというのをコードに直接書くのではなく、 Hogeという文字列やシンボルからHogeクラスのインスタンスを取りたい。 eva…

Procを受けるところにメソッドを与える

やりたいこと def f(x) x+2 end p [1,2,4,8].map{|e| f(e)} を効率よく書きたい。 Object#method を使う Object#method を使うことでmethodのオブジェクトが取れる。 def f(x) x+2 end p [1,2,4,8].map(&method(:f)) モジュールの場合 モジュールをmethodメ…

まつもとゆきひろさんの特別講演まとめ(2019/07 若手エンジニアの生存戦略 )

イベント概要 supporterzcolab.com 動機 実は去年?も視聴しようとしていたのですが、ゆるっと見逃してしまった。 今年は手の届く場所に住んでいたので、動画配信ではなく、直接参加することに。

Rubyでstdinもstdoutもstderrもtimeoutも出来る万能exec

勢いで記事を生やした。 環境 $ ruby -v ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux-gnu] 何を作るか 別のプログラムを引数付きで起動したり、標準入力を与えたり、標準出力や標準エラーを取得したりしたい。 なぜ作ったか 毎回書いているよ…

標準入力からスペース区切りで値を拾うEnumerableな何か

競技プログラミングで与えられる入力は半角スペース・改行の両方で区切られることが多い. そこで,半角スペース・改行で区切って値を拾ってくるEnumerableなクラスを書いた. class In include Enumerable def initialize(io) @io = io @buff = [] self end…

Elo ratingを実装してみた

Elo rating とは 二人制ゲームのレーティングの算出法の1つ. Wikipedia には,次の3点を基準に設計,と記述されている. ゲームの結果は一方の勝ち、一方の負けのみとし、引き分けは考慮しない(0.5勝0.5敗と扱うものとする)。 200点のレート差がある対局…

配列とEnumerable,どちらが高速?

問題 いくつかのrubyコードに対して実行時間を計測する. require 'benchmark' # p `ruby -v` foo = (1..5050505) [ 'foo.reduce(:+)', 'foo.to_a.reduce(:+)', 'foo.to_a.reverse.reduce(:+)', 'foo.each.reduce(:+)', 'foo.each.to_a.reduce(:+)', 'foo.re…

jsonのparserを書く

2018/08/05 致命的なミスを修正しました JSONとは javascriptをベースに設計された,軽量のデータ交換フォーマット. 詳しくは,https://www.json.org/json-ja.html 目的 構文解析を頑張る.C++で書いたら型がだるかったのでRubyで書く. jsonを読み込みたい…

Ruby on Rails アプリ製作の基本的な手順

Railsの勉強としていくつかのwebappを作ったときのノートを残していたので,ブログに載せます. ブログを書くのを後回しにしていたら年が明けてしまった. 記事の目的 Ruby on Railsの基本的な流れを掴む. 基本コマンドのチートシートとして.

gem なしの Ruby で Twitter API にアクセスする

こんな野蛮な事をやっているサイトは他にないだろうと思ってPHPのサイトを参考にしながら書いていたのですが,ググったらあった. gem が導入できない環境で Twitter API にアクセスするようなコードを書きました.

Ruby でスクレイピングするために Bash on Ubuntu on Windows に Nokogiri を導入した

タイトルで概要全部説明した. スクレイピング(ウェブページから情報を抽出すること)に興味があったので, Ruby の gem の1つである Nokogiri を導入してみた.