Ruby

Ruby手習い(MatchDataクラス)

アウトプットのネタに困ったらこれ!?Ruby初心者向けのプログラミング問題を集めてみた(全10問) - give IT a try 上記記事の値札分割問題。 自分で書いたコード def split_price(price_text) match = price_text&.match(/[\d\s0-9.,-]+|価格未定/) num …

Ruby手習い(再帰または算数)

アウトプットのネタに困ったらこれ!?Ruby初心者向けのプログラミング問題を集めてみた(全10問) - give IT a try 上記記事のボーナスドリンク問題。 自分で書いたコード class BonusDrink def self.calc(count) count + self.bonus_of(count) end private…

Ruby手習い(正規表現)

アウトプットのネタに困ったらこれ!?Ruby初心者向けのプログラミング問題を集めてみた(全10問) - give IT a try 上記記事のカラオケマシーン問題。 自分で書いたコード class KaraokeMachine KEYS = %w(C C# D D# E F F# G G# A A# B) def initialize(me…

はじめての正規表現

一般的な正規表現 .: 任意の1文字 \には2つの場合がある エスケープする場合:\.とすると、.がメタ文字ではなくてただの文字だよ、と表現する。 あとにつづく文字と組み合わせて1つの文字種を表現する場合 \d: 数字、\w: 文字、\s: スペース。それぞれ大文字…

Ruby手習い(Dateクラス)

アウトプットのネタに困ったらこれ!?Ruby初心者向けのプログラミング問題を集めてみた(全10問) - give IT a try 上記記事のカレンダー作成問題。 出力結果 p-064% ruby calendar.rb May 2019 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 …

Rubyによるデザインパターンまとめ : builder

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

Rubyによるデザインパターンまとめ : factory

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

Rubyによるデザインパターンまとめ : singleton

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

Rubyによるデザインパターンまとめ : Proxy

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

Ruby, Railsもろもろ

Rails, String#classifyでテーブル名の表記からクラス名の表記に変換できる。 Rails, String#constantizeで文字列を同じ名前の定数に変換できる。 クラスやモジュールも定数の一種なのでconstantizeで取得できる。(Rubyの言語仕様知らなさ過ぎる…。) > HOG…

Rubyによるデザインパターンまとめ : Decorator

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

Rubyによるデザインパターンまとめ : adapter

利用する場面 やりとりをさせたい複数のオブジェクトの間でインターフェースが噛み合わないとき。 一方または両方のクラスのインターフェースを変更してもよいが、インターフェースを揃える役割をadapterに担わせて解決することができる。 その他 呼び出され…

Rubyによるデザインパターンまとめ : iterator

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

Rubyによるデザインパターンまとめ①

Rubyによるデザインパターン作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行本購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る

AtCoder Beginner Contest 125 by Ruby

atcoder.jp 「各要素を除いたときの最大公約数をそれぞれ求めて、その最大値を返せばよい」ということには気づけた。 gcdの計算では結合則が成立するので、両端から順に最大公約数を算出し、配列としてメモっておく方法を発想できたかった。 降順のイテレー…

もろもろメモ

railsのバリデーションでは、インスタンス.errors[:attribute]に、そのattributeに関するエラー("can't be blank"とか)を配列として格納する。 モデル#saveとかだとエラーをraiseしてしまうので、確認するだけならモデル#valid?をつかう。 Railsのモデルのバ…

LINE message APIさわってみた

おうむがえしボット作成 GitHub - line/line-bot-sdk-ruby: LINE Messaging API SDK for Ruby herokuではルートディレクトリにProcfileというファイルを用意し、そこでどういうプロセス(webサーバとか)を走らせたいのか記述する。 APIとSDKの役割がわかっ…

もろもろメモ(rbenv, bundlerなど)

ごちゃまぜのメモ。 rbenv 参考にしたもの 結局READMEが一番わかりやすい。 rbenv/README.md at master · rbenv/rbenv · GitHub READMEに至るまでに以下の日本語記事で徐々に理解を広げた。 rbenv | global と local と .ruby-version の微妙な関係 - Qiita …

おしごとコード解読メモ

Settings.hogeという書き方はrails_configというgemにより可能になっている。 rails_configで定数を管理する -- blog.10rane.com Retriableというgemがある。 Retriable.retriable :tries => リトライしたい回数, :on_retry => リトライ時に実行したい処理 d…

AOJ ALDS1_11_A

グラフの表現 | アルゴリズムとデータ構造 | Aizu Online Judge 結果 一発AC 学んだこと グラフの表現には隣接リストと隣接行列がある(NodeとかEdgeとかのオブジェクトをつくるのはこれらとは並立する方法の1つと考えていいのだろうか) putsは最後に改行が…

AtCoder Beginner Contest 088 C

atcoder.jp 結果 一発AC 学んだこと 二次元配列の初期化はmapをつかうこと。Array.new(3, Array.new(3, 0))とかだと各要素を同一のオブジェクトとみなしてしまい値が連動してしまう。) 最初に書いたコード c = [] 3.times{c << gets.split().map(&:to_i)} d…

AtCoder Beginner Contest 109 B

atcoder.jp 結果 一発AC 学んだこと %w(hoge)はカッコ内を展開しない。%W(hoge)はカッコ内を展開する。 string[x,x]とか文字列操作に慣れよう 三項演算子に慣れよう breakはループを1つ抜ける、returnは実行中の関数から抜ける なるほど!重複がないというこ…

AtCoder Beginner Contest 114 B

atcoder.jp 結果 一発AC 学んだこと integer#timesをrange#eachと混同しないこと。 公式リファレンスちょっと慣れた。 min(x, y)ではなく[x, y].min string#charsで文字列の1文字ずつを要素とする配列にできる。 enum#each_consで1つずつずらして123,234,345…

AtCoder Beginner Contest 109 C

学んだこと 最小公倍数を求めるのにユークリッドの互除法を1行で実装。後置のwhile便利だなあ。 inject便利だなあ。引数を指定しないと、最初のブロック引数にはarray[0]とarray[1]をとるのか。 てかinteger#gcdあんのかい!調べる力不足… 他人の解答を見ず…

AtCoder Beginner Contest 115 D

学んだこと 解説を見ずに再帰を発想できたかった。 メソッド定義の外側で宣言したローカル変数はメソッド定義内でつかえないみたい。大文字から始めて定数にするか、@をつけてインスタンス変数にすればメソッド定義内でつかえる。(どちらがいいのだろうか。…

AtCoder Beginner Contest 109 A

学んだこと バッククォートでシェルコマンドを実行できる ddは一般的にはファイルコピーにつかうが、入力元/出力先を省略すると標準入出力になる str[/regex/]で正規表現にマッチする部分文字列をとりだせる 三項演算子に慣れよう 最初に書いたコード a,b = …

AtCoder Beginner Contest 111 A

学んだこと 置換はtr 最初に書いたコード n = gets.chomp.split("") m = [] n.each do |c| if c == "1" m << "9" else m << "1" end end p m.join.to_i 修正したコード puts gets.tr('19','91')

AtCoder Regular Contest 103 C

いままでPythonで書いてたけど今後RubyつかうことになりそうなのでRubyで書いてみた。 学んだこと Rubyでの標準入出力のしかた 配列から奇数/偶数番目の要素だけ取り出したいなら、select.with_index 配列で値の出現回数をハッシュに記録するなら、inject ha…