タグ

Rubyとrubyに関するtanakaBoxのブックマーク (308)

  • なぜRubyのcase/whenはインデントしないのかを考えてみた - give IT a try

    はじめに 昨日はソニックガーデンにしては珍しく、ちょっとしたコーディングスタイル論争(?)が発生しました。 議論のネタになったのはRubyのcase文のインデントについてです。 when節はインデントすべきか、それともcaseキーワードと揃えるべきかの議論になりました。 x = 1 # インデントする場合 case x when 1 puts "x is 1" when 2 puts "x is 2" else puts "x is other" end # インデントしない場合 case x when 1 puts "x is 1" when 2 puts "x is 2" else puts "x is other" end Rubyのコーディング規約をいくつか見てみると、後者のインデントしないスタイルの方が多数派だったので、「インデントなしでいいじゃん」で結論付ければいいだけかもしれ

    tanakaBox
    tanakaBox 2013/03/03
    Eiffelの影響?とのこと。
  • Ruby 2.0.0-p0 リリース

    SIZE: 13608925 bytes MD5: 50d307c4dc9297ae59952527be4e755d SHA256: aff85ba5ceb70303cb7fb616f5db8b95ec47a8820116198d1c866cc4fff151ed 特徴 主要な新機能 主要な変更点は以下のとおりです。 言語コア機能 キーワード引数: API 設計の新しい柔軟性 Module#prepend: クラス拡張の新しい方法 シンボルの配列を簡単に作るリテラル %i __dir__: 実行中のファイルのあるディレクトリ名 default UTF-8 encoding: 多くのマジックコメントが不要に 組み込みライブラリ Enumerable#lazy / Enumertor::Lazy: 無限の遅延ストリーム Enumerable#size: 遅延サイズ評価 #to_h: Hash へ

  • 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

    tanakaBox
    tanakaBox 2013/02/26
    なるほどぉ。
  • ミニツク - Rubyのe-ラーニング研修システム

    お金仕事、生活の中の様々な悩みを「そうだったのか!」に変えます 楽な仕事ってどんな仕事?消費者金融カードローンのおすすめは?年会費無料のおすすめクレジットカードを紹介して!国が認めた借金救済制度「債務整理」を解説、などなど、見ておきたいコンテンツがいっぱいです! 知らないと損するかも?ぜひ、ご覧ください。

  • Rubyで開発するときに入れておきたい三種のRubyGems - KAYAC Engineers' Blog

    「つくるための三種の神器」というテーマで続けている「777ブログウェイ」! 9日目となる日は「Rubyで開発するときに入れておきたい三種のRubyGems」と題して、定番の RubyGems を3つご紹介します。 1. bundler「bundler」は、アプリケーションが依存するgemを管理するツールです。今やgem管理のデファクトスタンダードです。 「gem install hoge」のようにコマンドで gem をインストールしていくと、あれよあれよとグローバルな領域にどんどん色んなgemが…それも複数バージョン混在していきます。そして、いずれは、このアプリケーションで必要なgemはどれだっけ…バージョンはいくつだっけ…といった具合に、どんどん依存関係が分からなくなってきます。ここで活躍するのが「bundler」です。 使い方はいたって簡単。1) bundler のインストールgem

    Rubyで開発するときに入れておきたい三種のRubyGems - KAYAC Engineers' Blog
  • Octopress

    The way Octopress is being distributed and maintained is nearing its end. There are many things I've always disliked about how Octopress works. So before I talk about the exciting part, I'd like to tell you what's wrong with Octopress. What's wrong? If I'm being harsh, I'll tell you that as it is now, Octopress is basically some guy's Jekyll blog you can fork and modify. The first, and most obviou

  • rubyjs.org

    This domain may be for sale!

    tanakaBox
    tanakaBox 2013/02/05
    JavaScriptでRubyっぽく書ける。面白い。
  • Rubyによる関数型プログラミング

    古き良き小学校の時代、この行には困惑させられたものだった。 魔術的な x が、加算されたのに等しいままでいる事に。 どういうわけか、プログラミングを始めると、それに構わなくなる。 「やれやれ、それは重大な事柄じゃないし、プログラミングとは現実のビジネス行為なんだから、 数学的な純粋さについてあら探しなんて必要無い (その議論なら、大学にいる狂った髭面野郎どもにさせておけばいい)」と思っていた。 けれども、ただ知らなかっただけで、我々が間違っていて高い代償を支払っていたのは 明らかである。 Wikipedia によれば、「関数型プログラミング(functional programming, FP)とは、 計算を数学的な関数の評価とみなし、 状態や可変データを避けるプログラミングパラダイム」である。 言い換えると、関数型プログラミングは、 副作用が無く変数の値を変化させないコードを推奨する。

    tanakaBox
    tanakaBox 2013/02/04
    > ハッシュを更新してはいけない。
  • Rubyを使って「なぜ関数プログラミングは重要か」を読み解く(改定)─ 前編 ─ 但し後編の予定なし

    2年ほど前に書いた記事を電子書籍化して「M’ELBORNE BOOKS」で販売するために全体的な見直しを行なって入稿する段になって、これにはベースとなっている他者の論文があって言ってみればこの記事はそのマッシュアップになっているんだけれども、その著者の許可もなくその表現が全く別物だとしてもその主張のあらすじが残っている限りにおいてこれを販売することが果たしていいことなのかという思考に遅ればせながら陥り、それが仮に法的に問題ないとしてもなんだか一表現者の行為としての妥当性を幾分欠いているという結論に至って販売を思い留まった。かと言って折角書き直したものをこのままお蔵にするのもなんだか寂しいなあという気分も一方であり、まあ原作者の意に反したものでもないだろうからブログの記事なら許してくれるよねもう2年前にも書いちゃってるしという勝手な解釈の下、ここにその記事を公開しましたのでお時間の許すRub

    tanakaBox
    tanakaBox 2013/02/02
    だいたいSICPの1,2章。
  • Ruby on Rails Tutorial

    receive announcement and update emails? Get occasional notifications about things like product discounts, blog posts, and new or updated tutorials. Unsubscribe at any time. No thanks.

    Ruby on Rails Tutorial
    tanakaBox
    tanakaBox 2013/01/19
    book以下は無料っぽい。
  • 本当はこわいエンコーディングの話 // Speaker Deck

    東京Ruby会議10 で発表したスライド

    本当はこわいエンコーディングの話 // Speaker Deck
  • Markdownで書いたメモをWebブラウザで閲覧、検索·mamemose MOONGIFT

    mamemoseはMarkdownを使ったメモサーバです。 Markdown記法は個人的に気に入っていて、色々なテキストをMarkdownで記述しています。同じように自分のメモをMarkdownで書いている人におすすめなのがmamemoseです。 例です。 数式やコードのハイライトに対応しています。 テーブルも使えます。 検索機能もあります。 mamemoseは設定ファイルを使ってメモフォルダを指定し、そのフォルダの中にあるファイルを一覧表示します。ファイルはMarkdownUTF-8で書かれている必要があります。細かな表示カスタマイズも可能です。全文検索機能もあるので、個人のメモ環境として使ってみると便利ではないでしょうか。 mamemoseはRuby製のオープンソース・ソフトウェア(MIT License)です。 MOONGIFTはこう見る Markdownというのは書き手と読み手が

    Markdownで書いたメモをWebブラウザで閲覧、検索·mamemose MOONGIFT
    tanakaBox
    tanakaBox 2013/01/15
    コードのハイライトと、数式に対応。
  • The Everything Machine

    at TokyoRubyKaigi 10

    The Everything Machine
  • これからRubyを始める人たちへ

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

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

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

    tanakaBox
    tanakaBox 2012/12/26
    Ruby本色々。ディスプレイ縦置きで読むかな。
  • Rubyのコードを解析する…? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はいこんにちはこんにちは。プログラミング初心者のZonu.EXEです。 今日はRuby Advent Calendar 2012の20日めです…? ちょっと前まで自宅警備員で、一個月ほど前からアルバイトでるびーおんれーるずを書くお仕事に就いたのですが、Ruby基礎力が低すぎて困ることが多々あります。 そんなわけで、Rubyをきちんと学ぶために基礎の基礎から調べてみましょか、みたいなテンションで書いてました。 ほんとは字句解析だけでがっつりと書きたかったんですけれど、ねたを集める時間がなかったので枝葉末節がひどいです。 タイトルと内容が合

    Rubyのコードを解析する…? - Qiita
    tanakaBox
    tanakaBox 2012/12/22
    pryからの
  • Ruby on Rails をこれから始める人へのおすすめ本やおすすめ情報 - 僕は発展途上技術者

    Ruby on Rails をこれから始める人向けの情報 Ruby on Rails をこれから始めたいのですが、どんながおすすめですか?と聞かれたので、ちょっとまとめておきたいと思います。 » 僕が Ruby on Rails を絶賛する理由 - 僕は発展途上技術者 というエントリーを2007年に書きましたが、その後状況はいろいろと変わり、僕自身 iOS アプリや Android アプリを開発するようになったり、Web サービスでも Python on GAE を触るようになったりして、当時ほど Ruby on Rails 一色というわけではなくなりました。 また、Ruby on Rails の環境を自分の開発マシンに用意するのも » Mac OS X 10.8 Mountain Lion に Ruby on Rails 環境をセットアップする - 僕は発展途上技術者 で書いたように、

  • Rubyで末尾再帰最適化をする。 - Homoiconic Days

    元ネタはPythonで末尾再帰最適化をする。 - wasabizの日記。Pythonのデコレータを使って、末尾再帰で書かれた関数に対して末尾呼び出し最適化(TCO)を行う、というものです(どうやってTCOを実現しているかの詳細についての説明はここでは割愛します)。 さて、元エントリでは「Pythonがすごいからこんなことができるんだ」という感じで書かれていますが、タネさえ分かればいろんな言語でできそうだということが分かったので、他の言語でも試してみることにしました。 まずはじめに、試しにScheme版を書いてみたものの、そもそもSchemeはTCOを勝手にやってくれるのであまり意味のない例になってしまいました。 その後、Scheme版をだいたいそのままRubyに書き直したのが以下のRuby版です。 class Module def tco(name) continue = [] first

    Rubyで末尾再帰最適化をする。 - Homoiconic Days
  • Java仮想マシン上でRubyを動かそう

    Java仮想マシン(以下、JVM)は、Java以外のプログラミング言語を動かす実行環境としても注目されています。実際に Javaプログラムからスクリプト言語を動かしてみましょう。RubyJava実装であるJRubyを利用していきます。JRubyは、RubyをJVM上で動かすために作られました。Rubyとの互換性を重視したスクリプト言語なので、Rubyのプログラムをほぼ同じようにJVMで動かすことができます。 目次

    Java仮想マシン上でRubyを動かそう
    tanakaBox
    tanakaBox 2012/12/04
    連載目次
  • Vim で Ruby を書くためのプラグイン3つ書いた - Qiita

    普段 VimRuby を書いているのですが,そういえば Ruby を書くのを補助する Vim プラグイン少ないなぁと思って先月は Ruby プラグイン作成月間にしてみました. エントリでは僕が作成した3つのプラグインを紹介します. unite-ruby-require.vim require 対象の補完をする unite.vim ソース. neco-ruby-keyword-args neocomplcache で Ruby 2.0 のキーワード引数を補完 vim-textobj-ruby Ruby のブロックをテキストオブジェクト化 unite-ruby-require.vim Ruby で外部のソースを読み込むのに使う require ですが,標準だけでも大量のライブラリがあり,なかなか全部覚えるのは大変です. そこで,unite.vim で require の候補をインクリメ

    Vim で Ruby を書くためのプラグイン3つ書いた - Qiita