タグ

ブックマーク / melborne.github.io (16)

  • Ruby製サードパーティライブラリgemのトレンドを知るには「BestGems.org」がベスト

    ─質問1─ Ruby製サードパーティライブラリ、要はgemで、何が人気なのかってこと、手っ取り早く知りたいんですけど。 ─回答1─ RubyGems.orgのstatsページを見てください。 ─質問2─ えっ?これだけ?この辺は万年上位で固定でしょ。もうちょっと俺の知らないバラエティに富んだものに出会いたいんだけど。俺、Rails用ないし。 ─回答2─ カテゴリー別ならThe Ruby Toolboxがあります。 The Ruby Toolbox - Terminal Coloring ─質問3─ あんた、俺の質問ちゃんと聞いてるの?カテゴリー別なんて言ってないし。それに、ここのカテゴリーってなんか俺的に信用ないんだよね。取りこぼし多いっていうか..。俺のgem出てこないっていうか..。 ─回答3─ GitHubTrendingでここ最近の人気リポジトリが分かります。 Trending

    Ruby製サードパーティライブラリgemのトレンドを知るには「BestGems.org」がベスト
    ryonext
    ryonext 2014/08/11
  • メソッドの使い方もRubyに教えてほしい

    Rubyの世界には「RubyのことはRubyに聞け」という格言があります1。 この格言に従い、早速Arrayクラスがどんなメソッドを持っているかRubyに聞いてみます。irbを使います。 % irb irb> Array.instance_methods(false) => [:inspect, :to_s, :to_a, :to_ary, :frozen?, :==, :eql?, :hash, :[], :[]=, :at, :fetch, :first, :last, :concat, :<<, :push, :pop, :shift, :unshift, :insert, :each, :each_index, :reverse_each, :length, :size, :empty?, :find_index, :index, :rindex, :join, :reverse,

    ryonext
    ryonext 2013/09/08
  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

    ryonext
    ryonext 2013/03/05
    これは面白い
  • Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい

    Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def

    ryonext
    ryonext 2013/02/26
    すごいことできるんだな
  • Ruby標準添付ライブラリcsvのCSV.tableメソッドが最強な件について

    ─ 問題1 ─ data.csvファイルには、5人のプレイヤー(Alice, Bob, Jimmy, Kent, Ross)が二種類のゲーム(gameA, gameB)をプレイした結果が次のような形で格納されている。各ゲームの平均点を求めよ。 data.csv player,gameA,gameB Alice,84.0,79.5 Bob,20.0,56.5 Jimmy,80.0,31.0 Kent,90.5,15.5 Ross,68.0,33.0 data = File.read('data.csv') headers, *scores = data.lines.map { |line| line.chomp.split(',') } scores # => [["Alice", "84.0", "79.5"], ["Bob", "20.0", "56.5"], ["Jimmy", "80

    ryonext
    ryonext 2013/01/26
    CSV.table
  • IRB それはRubyistの魔法のランプ

    IRB 名前を聞けば誰でもわかる 超有名なライブラリ IRBを知らなけりゃ それはもぐりのRubyist :$ IRB 全部のRubyに付いてくる あなたとRubyの対話の窓口 できないことがあるのなら irbと打ってみよう rubyと打ってもダメですよ IRB それはRubyistの魔法のランプ こすれば何かが現れる IRB それはRubyistの魔法のランプ こすって願いを叶えよう I RuB you I RuB you :TO IRB 色気がないのはご愛嬌 色がいるなら .irbrcしてください 補完だってインデントだって そうしたいならプロンプトだって あなた色に染まります IRB それでも不満があるのなら wirble fancy_irbが色付けします デバッグするならpp ap y g -d table viewにq o c エディタいるならie sketches使ってね コマ

    ryonext
    ryonext 2013/01/08
  • 今年の冬休みに電子書籍であなたがRubyを習得しなければいけないたった一つの理由

    冬休みです。多忙なあなたがまとまった自由時間を取れる唯一のチャンスです。こんなときは、遊んではいけません。なぜならその消費方法があなたの未来を決定付けるからです。もちろん、家族や両親や犬の世話をしてもいけません。寝正月などもっての外です。それはあなたの未来のための時間なのです。 そう、この時間を使ってあなたは学習するのです。 今年の冬こそはプログラミング言語を習得するのです。なぜならプログラミング言語を習得すれば、お見合いのときに「LispとRubyを少々」という相手に対して臆することなく「ほほぅでは関数型にも興味をお持ちかな?」などと返すことができるのです。 プログラミング言語といったら「Ruby」です。なぜならそれは日人が作った言語だからです。国語の勉強をせずにいきなり外国語を学ぶ人はいません。事情はプログラミング言語の世界でも同じです。ですからまずは国産言語「Ruby」を学ぶべきな

    ryonext
    ryonext 2012/12/25
    Ruby本のまとめ
  • RubyによるMarkdownをベースにしたEPUB電子書籍の作り方と出版のお知らせ

    「情報革命」とは何でしょうか。それはネットを介した大量情報の流入による社会生活の変化の連続のことです。情報革命の初期に始まる一つの変化は「見る変化」です。情報を最も効率的に処理できる人間の入力デバイスは「目」であり、そのための環境作りがまず構築されるでしょう。 スマートフォンが携帯電話を駆逐したのは、iPhoneのデザインが素晴らしかったからではありません。人々が大量の情報を処理するためには、非効率な「耳」デバイスを置いて、より効率的な「目」デバイスを活用する必要があったからです。 7インチタブレットの新製品投入が相次いでいます。これは何を意味し、何を駆逐するのでしょうか。そのフォルムを見れば答えは明らかでしょう。それはまさに「書籍」なのです。7インチタブレットは「アトムの読書」を「ビットの読書」にすべて置き換えようとしています。 スマートフォンは、話し言葉を文字化して見るためのデバイスと

    ryonext
    ryonext 2012/12/05
  • TapがRubyの新たな制御構造の世界を開く

    Object#tapはそのブロックの評価結果を捨てるという風変わりなメソッドです。これは主としてメソッドチェーンにおける途中経過を覗き見るために使われます。 "charlie".upcase.tap{ |s| p s } # => "CHARLIE" .reverse.tap{ |s| p s } # => "EILRAHC" .gsub(/[aeiou]/i,'*') # => "**LR*HC" tapの副作用を使う もっとも、その評価結果を捨てるというユニークな特徴をうまく使えば、もっと面白いことができます。 例えば、ある変数の値を取得した上でその変数の値をリセットしたい場合を考えます。通常は次のように実装するのでしょう。

    ryonext
    ryonext 2012/11/26
  • 第3弾!知って得する12のRubyのトリビアな記法

    (追記:2013-08-16) 記事のトリビアを含む55のトリビアを以下の記事にまとめました。 知って得する!55のRubyのトリビアな記法 なぜかトリビア人気が再燃しているよ。 知って得する21のRubyのトリビアな記法 第2弾!知って得する12のRubyのトリビアな記法 これでみんながトリビア好きだということが分かったので、何とか絞り出して第3弾を書いたよ。ここでは第1弾、第2弾で使ったテクニックも使ってるから、知らないテクニックがあったら先に見てもらえるいいかもね。 1. Enumerable#each_with_object Enumerable#mapではブロックの代わりに&付きのシンボルを渡す技が知られているよ。 langs = ["ruby", "python", "lisp", "haskell"] langs.map(&:capitalize) # => ["Ruby"

    ryonext
    ryonext 2012/09/22
  • Ruby脳が理解するJavaScriptのオブジェクト指向(その2)

    Ruby脳が理解するJavaScriptのオブジェクト指向 」の続きです。 引き続きJavaScriptのオブジェクト指向における「継承」について学んだので、自分の理解を書いてみます。当然に、間違いが含まれています。ご指摘助かります。 前回のまとめ 前回の記事では、JavaScriptの「オブジェクトの生成」、「プロトタイプチェーン」、「オブジェクトコンストラクタ」、「new演算子」の各概念について順にみました。これらを通したJavaScriptのオブジェクト指向に対する僕の理解は概ね次のようなものです。 すべてのオブジェクトは__proto__プロパティ(非標準)を持っていて、プロパティ探索に関し、ここにセットされたオブジェクトを順次たどりこれを解決する(プロトタイプチェーン)。__proto__にはデフォルトで空オブジェクトがセットされている。 同種オブジェクト(属性値だけが異なるオ

    ryonext
    ryonext 2012/09/16
  • Ruby脳が理解するJavaScriptのオブジェクト指向

    (追記:2012-12-15) 記事およびこれに続くその2,その3をまとめて電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、誤記の修正およびメディア向けの調整を行っています。 電子書籍Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 購入ご検討のほどよろしくお願いしますm(__)m 関連記事: 電子書籍Ruby脳が理解するJavaScriptのオブジェクト指向」EPUB版をGumroadか

    ryonext
    ryonext 2012/09/12
  • Ruby、君のオブジェクトはなんて呼び出せばいいの?

    Rubyには大量のメソッドがあります。次のコードでRuby1.9.3に含まれるメソッド数を数えたら単純合計で1659個、ユニーク数(同名を1と数えて)で937個と出力されました。 all_methods = ObjectSpace.each_object(Module).flat_map do |c| c.methods(false) + c.instance_methods(false) end.reject { |m| "#{m}".start_with? '_deprecated' } all_methods.size # => 1659 methods = all_methods.uniq methods.size # => 937 つまりRubyには、937個もの異なる名前のメソッドがあるのです。各メソッド名は、その動作や機能を端的に表現したものでなければならないので、その一つ一

    ryonext
    ryonext 2012/07/18
  • YOUたち!RubyでinjectしちゃいなYO!

    プログラミングの存在価値は処理の自動化です。任意の集合に対して処理を繰り返しその結果を返す、それがプログラムです。つまり集合に対して処理を繰り返す能力が、プログラムの価値を決定付けるのです1。 「手続き型言語」ではループが処理の繰り返しを実現するための重要な手法の一つです。しかしループは、一時変数を用意してプログラマがループの進行を管理しなければならない、という欠点があります。そしてその管理ミスがバグとなります。 「関数型言語」では再帰が処理の繰り返しを実現するための重要な手法の一つです。再帰では再帰の進行はその構造に基づいて自動的になされるので、プログラマがそれを管理する必要はありません。しかしその一方で、処理が多段階に渡る立体的なものとなるので、その動作の理解が平面的なループ処理に比べて難しいという欠点があります。習得には慣れが必要です。 Rubyは、手続き型言語と関数型言語の両方の側

    ryonext
    ryonext 2012/06/19
  • 知って得する21のRubyのトリビアな記法

    (追記:2013-08-16) 記事のトリビアを含む55のトリビアを以下の記事にまとめました。 知って得する!55のRubyのトリビアな記法 ちょっとトリビアだけど、知っていると意外と便利なRubyの記法を21個拾ってみたよ(Ruby1.9限定)。 君なら全部知ってるかもしれないけど.. 1. 動的継承 Rubyのクラス継承では < 記号の右辺にクラス定数だけでなくクラスを返す式が書けるよ。 class Male def laugh; 'Ha ha ha!' end end class Female def laugh; 'Fu fu fu..' end end class Me < [Male, Female][rand 2] end Me.superclass # => Female Me.new.laugh # => 'Fu fu fu..' def io(env=:develop

    ryonext
    ryonext 2012/04/24
  • これからRubyを始める人たちへ

    (追記:2012-12-03) 記事を電子書籍化しました。「Gumroad」を通して100円にて販売しています。詳細は文末に追記しましたので、購入ご検討のほどよろしくお願いしますm(__)m 電子書籍「これからRubyを始める人たちへ」EPUB版 Rubyの特徴 Rubyは、まつもとゆきひろ氏(通称Matz)により設計されたオブジェクト指向プログラミング言語です。Rubyの特徴を一言で言うならば、それは「間口が広くて奥が深い言語」ということになります。 「間口が広い」というのは、インタフェースがシンプルで誰でもが簡単に使い始められることを意味します。「奥が深い」というのは、プロフェッショナルによる長期使用に耐えうる物の言語であるということを意味します。「間口が広い」ということと「奥が深い」ということは来競合する概念ではありませんが、その両方をバランスよく組み合わせるには、対象に対する

    ryonext
    ryonext 2012/04/11
  • 1