Ruby

Ruby 2.6 の変更点 - Matrix, RSS, その他, おわり

Ruby2.6アドベントカレンダーの25日目の記事です。 qiita.com 最終日になってしまいました。順調にいけばきっと本日 Ruby 2.6 がリリースされるはずです 最近の変更や、あまり興味のないものやよくわかってないものが残ったのでざっくりと紹介。 Matrix Mat…

Ruby 2.6 の変更点 - Coverage

Ruby2.6アドベントカレンダーの24日目の記事です。 qiita.com Coverage Coverage.start に :oneshot_lines キーワード引数追加 Coverage.result に :stop, :clear キーワード引数追加 Coverage.line_stub 追加 Coverage https://bugs.ruby-lang.org/issues/1…

Ruby 2.6 の変更点 - Net, ERB

Ruby2.6アドベントカレンダーの23日目の記事です。 qiita.com Net Net::HTTP に write_timeout 追加 Net::HTTPClientException が追加され、Net::HTTPServerException は非推奨 ERB ERB.new に :trim_mode と :eoutvar キーワード引数追加 erb コマンドの -S…

Ruby 2.6 の変更点 - URI, Set, Bundler

Ruby2.6アドベントカレンダーの22日目の記事です。 qiita.com URI URI::File 追加 Set Set#filter! 追加 Bundler Bunderが標準ライブラリに追加 URI URI::File 追加 https://bugs.ruby-lang.org/issues/14035 2.5 までは file: で始まる文字列をパースすると…

Ruby 2.6 の変更点 - Binding, flip-flop

Ruby2.6アドベントカレンダーの21日目の記事です。 qiita.com Binding Binding#source_location 追加 flip-flop 非推奨 Binding Binding#source_location 追加 https://bugs.ruby-lang.org/issues/14230 binding のファイル名と行番号を返します。 1: def ho…

Ruby 2.6 の変更点 - Numeric, BigDecimal

Ruby2.6アドベントカレンダーの20日目の記事です。 qiita.com Numeric Numeric#step が Enumerator::ArithmeticSequence オブジェクトを返す BigDecimal BigDecimal.allocate 削除 BigDecimal オブジェクトが frozen BigDecmial.new が非推奨 BigDecimal() …

Ruby 2.6 の変更点 - ENV, Struct, Random

Ruby2.6アドベントカレンダーの19日目の記事です。 qiita.com ENV ENV.to_h にブロックを渡すとキーと値を変換できる Struct Struct#to_h にブロックを渡すとキーと値を変換できる Struct#filter 追加 Random Random.bytes 追加 ENV ENV.to_h にブロックを渡…

Ruby 2.6 の変更点 - Time

Ruby2.6アドベントカレンダーの18日目の記事です。 qiita.com Time タイムゾーンサポート 東京五輪時間 Time タイムゾーンサポート https://bugs.ruby-lang.org/issues/14850 Time.new とか Time#getlocal は UTCからの時差を文字列("+09:00"等)か数値(秒数)…

Ruby 2.6 の変更点 - RubyVM::AbstractSyntaxTree

Ruby2.6アドベントカレンダーの17日目の記事です。 qiita.com RubyVM::AbstractSyntaxTree RubyVM::AbstractSyntaxTree Ruby スクリプトを解析して抽象構文木を作成するクラスが追加されました。 RubyVM::AbstractSyntaxTree.parse は引数の文字列をパースし…

Ruby 2.6 の変更点 - String

Ruby2.6アドベントカレンダーの16日目の記事です。 qiita.com String Unicode 11 対応 String#crypt が非推奨 String#split がブロックをイテレータとして使用する String Unicode 11 対応 https://bugs.ruby-lang.org/issues/14802 String#crypt が非推奨 h…

Ruby 2.6 の変更点 - Object と NilClass

Ruby2.6アドベントカレンダーの15日目の記事です。 qiita.com Object Object#=~ が非推奨 NilClass NilClass#=~ 追加 Object Object#=~ が非推奨 https://bugs.ruby-lang.org/issues/15231 Object#=~ があり、それが常に nil を返すためにプログラムのミスを…

Ruby 2.6 の変更点 - Range

Ruby2.6アドベントカレンダーの14日目の記事です。 qiita.com Range Range#step が Enumerator::ArithmeticSequence オブジェクトを返す Added Range#% 追加 Range#=== が #include? だけではなく #cover? も使う Range#cover? が Range オブジェクトも受け…

Ruby 2.6 の変更点 - Module

Ruby2.6アドベントカレンダーの13日目の記事です。 qiita.com Module Module#method_defined?, Module#private_method_defined?, Module#protected_method_defined? で継承されたものを含むかどうかを指定可能 Module Module#method_defined?, Module#privat…

Ruby 2.6 の変更点 - Method と Proc

Ruby2.6アドベントカレンダーの12日目の記事です。 qiita.com Method Method#<<, Method#>> 追加 Proc Proc#<<, Proc#>> 追加 Method Method#<<, Method#>> 追加 https://bugs.ruby-lang.org/issues/6284 このメソッドオブジェクトと他のメソッドやProc等(#c…

Ruby 2.6 の変更点 - KeyError, NameError, NoMethodError

Ruby2.6アドベントカレンダーの11日目の記事です。 qiita.com KeyError KeyError.new に :receiver, :key オプション追加 NameError NameError.new に :receiver オプション追加 NoMethodError NoMethodError.new に :receiver オプション追加 KeyError KeyE…

Ruby 2.6 の変更点 - IO

Ruby2.6アドベントカレンダーの10日目の記事です。 qiita.com IO ファイルオープン時のモードに x 追加 IO ファイルオープン時のモードに x 追加 https://bugs.ruby-lang.org/issues/11258 ファイルを作成用にオープンするには w を指定しますが、これはファ…

Ruby 2.6 の変更点 - Exception

Ruby2.6アドベントカレンダーの9日目の記事です。 qiita.com Exception Exception#full_message に :highlight, :order オプション追加 Exception Exception#full_message に :highlight, :order オプション追加 https://bugs.ruby-lang.org/issues/14324 2.…

Ruby 2.6 の変更点 - TracePoint

Ruby2.6アドベントカレンダーの8日目の記事です。 qiita.com TracePoint TracePoint#parameters 追加 TracePoint#enable に :target, :target_line キーワード引数追加 TracePoint TracePoint#parameters 追加 https://bugs.ruby-lang.org/issues/14694 メソ…

Ruby 2.6 の変更点 - Kernel

Ruby2.6アドベントカレンダーの7日目の記事です。 qiita.com Kernel Kernel#then 追加 Kernel#Complex, Kernel#Float, Kernel#Integer, Kernel#Rational に :exception オプション追加 Kernel#system に :exception オプション追加 Kernel#system と Kernel#…

Ruby 2.6 の変更点 - Enumerator と Enumerable

Ruby2.6アドベントカレンダーの6日目の記事です。 qiita.com Enumerator Enumerator#+, Enumerator#chain 追加 Enumerator::ArithmeticSequence 追加 Enumerator::Lazy#filter 追加 Enumerable Enumerable#chain 追加 Enumerable#to_h にブロックを渡すとキ…

Ruby 2.6 の変更点 - Hash

Ruby2.6アドベントカレンダーの5日目の記事です。 qiita.com Hash Hash#merge, merge!, update が複数の引数を受けつける Hash#to_h にブロックを渡すとキーと値を変換できる Hash#filter, Hash#filter! の追加 Hash Hash#merge, merge!, update が複数の引…

Ruby 2.6 の変更点 - Dir, File, FileUtils

Ruby2.6アドベントカレンダーの4日目の記事です。 qiita.com Dir Dir#each_child, Dir#children 追加 Dir.glob で \0 が非推奨 File File.read, .binread, .write, .binwrite, .foreach, .readlines が | で始まっていても外部コマンドを実行しない FileUtil…

Ruby 2.6 の変更点 - Array

Ruby2.6アドベントカレンダーの3日目の記事です。 qiita.com Array Array#union 追加 Array#difference 追加 Array#filter, Array#filter! 追加 Array#to_h にブロックを渡すとキーと値を変換できる Array Array#union 追加 https://bugs.ruby-lang.org/issu…

Ruby 2.6 の変更点 - 言語仕様その2

Ruby2.6アドベントカレンダーの2日目の記事です。 qiita.com 言語仕様 キーワード引数のハッシュのキーがシンボルでない場合はエラー 変数名と同じブロックパラメーターでの警告を削除 原因となった例外も出力 言語仕様 キーワード引数のハッシュのキーがシ…

Ruby 2.6 の変更点 - 言語仕様その1

Ruby2.6アドベントカレンダーの1日目の記事です。 qiita.com Ruby は毎年クリスマスにバージョンが上がります。 今年も順調にいけば 12/25 に Ruby 2.6 がリリースされる予定です。 2.6 がリリースされるまで毎日少しずつ変更点を見ていきます。 ソースは NE…

逆ポーランド記法

ふと、逆ポーランド記法ってのがあったなーと思い出したんだけど、アルゴリズムを全然忘れてたのでネットで検索して、Rubyで実装してみた。 参考にしたページ→ 数式を逆ポーランド法に変換するための事柄 class ReversePolish # 演算子の優先度 OP = { '+' =…

「かんたんRuby」

すがわらまさのり さんが上梓された「かんたんRuby」を頂戴いたしました。 なんとサイン本です。何故かぼかしていますが、本当にサイン本です。 この本はRubyの入門書ですが、帯に「いちばんやさしいプログラミングの入門書」とある通り、プログラミングの入…

RubyのCSVでnilを返さなくする方法

RubyのCSVライブラリはnilを返すことがあるダメな子だという話を前に書いたんですが、RubyKaigi 2018 で須藤さんに聞いたら「最新のはnilじゃなくて空文字列を返すようにできるはず」と言われたので見てみました。 5/31 にリリースされたばかりの Ruby 2.6.0…

PostfixDaemon - Ruby で Postfix のデーモンを書くライブラリ

この前、まつもとりーさんに自分でも忘れていたpostfix-mrubyというのを発掘されて、 Postfix-mruby最高!— 松本 亮介 / まつもとりー (@matsumotory) 2018年2月22日 これによって、前に作ろうと思ってそのまま忘れてたものを思い出したので、作ってみました…

Ruby 2.4 の変更内容 その3 - 標準添付ライブラリ

Ruby 2.4の変更内容の標準添付ライブラリ編です。 全般 組み込みライブラリ 標準添付ライブラリ - このページ cgi 「,」をクッキーのセパレータとして許さない csv liberal_parsing オプションが追加 date DateTime#to_time がタイムゾーンを保持する ipaddr…