55件ヒット
[1-55件を表示]
(0.019秒)
ライブラリ
- csv (22)
クラス
- CSV (22)
キーワード
-
NEWS for Ruby 2
. 5 . 0 (7) -
NEWS for Ruby 3
. 0 . 0 (4) - parse (22)
- tsort (11)
検索結果
先頭5件
-
pp (38162.0)
-
オブジェクトなどを見やすく出力するためのライブラリです。
...このライブラリを require すると Kernel.#pp が定義されます。
Kernel.#p のかわりに Kernel.#pp を使うことにより、
適切にインデントと改行された分かりやすい出力を得ることが出来ます。
pp ライブラリは、ユーザがあたらしく定......します。
PP は PrettyPrint のサブクラスですので、上で PrettyPrint のメソッドとされているものは
PP のメソッドでもあります。
以下は Hash の pretty printing のカスタマイズの例です。
//emlist[][ruby]{
require 'pp'
class Hash
def pretty_pr......, "<hash>") do
q.breakable
first = true
self.each{|k, v|
unless first
q.text(',')
q.breakable
end
q.pp k
q.text ' => '
q.group(1) do
q.breakable ''
if v.is_a?(String) and v.size > 10
q.pp(v[......などを見やすく出力するためのライブラリです。
pp ライブラリは、ユーザがあたらしく定義したクラスに対しても見やすい表示を
するように作られていますので、Kernel.#pp を使う上で余計な作業をする
必要はありません。......宜挿入します。
PP は PrettyPrint のサブクラスですので、上で PrettyPrint のメソッドとされているものは
PP のメソッドでもあります。
以下は Hash の pretty printing のカスタマイズの例です。
//emlist[][ruby]{
class Hash
def pretty_print(q......self.each{|k, v|
unless first
q.text(',')
q.breakable
end
q.pp k
q.text ' => '
q.group(1) do
q.breakable ''
if v.is_a?(String) and v.size > 10
q.pp(v[0..9] + '...')
else
q.pp v... -
CSV
. parse(str , options = Hash . new) -> Array (120.0) -
このメソッドは文字列を簡単にパースすることができます。 ブロックを与えた場合は、ブロックにそれぞれの行を渡します。 ブロックを省略した場合は、配列の配列を返します。
...require 'csv'
require 'pp'
s = <<EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
EOS
pp CSV.parse(s)
# => [["id", "first name", "last name", "age"],
# ["1", "taro", "tanaka", "20"],
# ["2", "jiro", "suzuki", "18"]]
CSV.parse(s, headers: true).each do |row|
p [row['fir... -
CSV
. parse(str , options = Hash . new) {|row| . . . } -> nil (120.0) -
このメソッドは文字列を簡単にパースすることができます。 ブロックを与えた場合は、ブロックにそれぞれの行を渡します。 ブロックを省略した場合は、配列の配列を返します。
...require 'csv'
require 'pp'
s = <<EOS
id,first name,last name,age
1,taro,tanaka,20
2,jiro,suzuki,18
EOS
pp CSV.parse(s)
# => [["id", "first name", "last name", "age"],
# ["1", "taro", "tanaka", "20"],
# ["2", "jiro", "suzuki", "18"]]
CSV.parse(s, headers: true).each do |row|
p [row['fir... -
NEWS for Ruby 3
. 0 . 0 (108.0) -
NEWS for Ruby 3.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...[[[1]], {}]
pr.call([1, {a: 1}])
# 2.7 => [[1], {:a=>1}] # and deprecation warning
# 3.0 => a=>1}, {}]
//}
* Arguments forwarding (`...`) now supports leading arguments.
16378
//emlist{
def method_missing(meth, ...)
send(:"do_#{meth}", ...)
end
//}
* Pattern matching (`case/in`) is......d with Enumerator::ArithmeticSequence
//emlist[][ruby]{
dirty_data = ['--', 'data1', '--', 'data2', '--', 'data3']
dirty_data[(1..).step(2)] # take each second element
# => ["data1", "data2", "data3"]
//}
* Binding
* Binding#eval when called with one argument will use `"(eval)"` for `__FILE_......ob and Dir.[] now sort the results by default, and accept the `sort:` keyword option. 8709
* ENV
* ENV.except has been added, which returns a hash excluding the given keys and their values. 15822
* Windows: Read ENV names and values as UTF-8 encoded Strings 12650
* Encoding
* Added... -
NEWS for Ruby 2
. 5 . 0 (66.0) -
NEWS for Ruby 2.5.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...黙の to_s 呼び出しにも refinements が影響するようになりました 13812
=== 組み込みクラスの更新
* Array
* Array#append を追加 12746
* Array#prepend を追加 12746
* Data
* 非推奨になりました。C拡張のベースクラスでしたが、Ruby......r.open, Dir.new, Dir.mkdir, Dir.rmdir,
Dir.empty? はGVLを解放するようになりました
* Dir.children を追加 11302
* Dir.each_child を追加 11302
* Enumerable
* Enumerable#any?, Enumerable#all?, Enumerable#none?, Enumerable#one?
がブロックを省略し......ime, File.lstat はGVLを解放するようになりました
* File.lutime を追加 4052
* Hash
* Hash#transform_keys を追加 13583
* Hash#transform_keys! を追加 13583
* Hash#slice を追加 8499
* IO
* IO.copy_stream は copy_file_range(2) を使うようになり... -
tsort (60.0)
-
tsort はトポロジカルソートと強連結成分に関するモジュールを提供します。
...るモジュールを提供します。
=== Example
//emlist[][ruby]{
require 'tsort'
class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end
{1=>[2, 3], 2=>[3], 3=>[], 4=>[]}.tsort
#=> [3, 2, 1, 4]
{1=>[2], 2=>[3,......ult = []
end
def rule(outputs, inputs=[], &block)
triple = [outputs, inputs, block]
outputs.each {|f| @dep[f] = [triple]}
@dep[triple] = inputs
end
def build(target)
each_strongly_connected_component_from(target) {|ns|
if ns.length != 1
fs = ns.delete_if {|n|......分に関するアルゴリズムを使っているからです。
とはいえ strongly_connected_components という正確な名前は長過ぎます。
=== References
R. E. Tarjan,
Depth First Search and Linear Graph Algorithms,
SIAM Journal on Computing, Vol. 1, No. 2, pp. 146-160, June 1972....