タグ

rubyに関するtakuma510のブックマーク (180)

  • 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

  • interblah.net - What happens when RSpec runs, or, what I think about testing with blocks

    February 18, 2013 James Adam Welcome to part two of the the post series which will hopefully cauterize the bleeding stump that is my Ruby Testing Quest. This time, we will take a not-too-deep dive into how RSpec works. Last time we looked at MiniTest; if you haven’t already read that, it might be a better place to start than this. Let’s get going. A simple RSpec example Here’s a simple RSpec examp

  • 自分のための code を書こう

    元々小さなベンチャー企業でPHP仕事をしてそこそこに満足していた自分が、Rubyを知ってじわじわと病みつきになっていき永和システムマネジメントに入社、日中のRubyのお仕事では飽きたらず時間さえあれば個人的にプログラミングをしてときどきgemを作って公開するようになった簡単な経緯と、そこでやっていることをお話します。

    自分のための code を書こう
  • Rubyワンライナー入門 - maeharinの日記

    先日仕事中、一瞬の隙も見逃さずに情報収集できるRubyワンライナーとスクリプトというネタエントリを書いたのだが、その際Rubyのワンライナーをもう少しまともに理解したいと思ったので入門してみた。手元のRubyは1.9.2 はじめに Rubyのワンライナーは、rubyコマンドに色々なオプション(-eや-nなど)をつけて実行する。各オプションの網羅的な解説が見たければ、コマンドラインでは$ man rubyで閲覧できるし、webではるりまサーチで参照できる。ただ、これらは網羅的すぎるので、以下よく使うオプションとその周辺情報についてまとめた。 -e 一番基的なオプション。スクリプトを実行する。(ちなみに他のオプションと組み合わせる時は必ず最後に記載する) 例: hogeと表示 $ ruby -e 'puts "hoge"' -n プログラム全体がwhile gets ... endというルー

    Rubyワンライナー入門 - maeharinの日記
  • 『サーバの構築作業やシステム管理を自動化する「Chef」』

    皆様、はじめまして。2010年9月に入社した並河です。 インフラ周りの話題を・・・ということで、今回はサーバの構築やシステム管理作業を楽にしてくれるツールである「Chef」について紹介します。 ■ Chefとは「Chef」は、サーバOSでのインストール・設定・各サービスの状態管理等、諸々のシステム構築や運用作業を自動化してくれるRuby製のシステム管理ツールで、オープンソースとして公開されており、既に、37signalsやEngine Yard、RightScaleなどでも使われており、利用実績も出始めています。 Ruby製のシステム管理ツールといえば「Puppet」を思い浮かべる方も多いのではないでしょうか。ChefはPuppetの競合ソフトウェアとなる位置付けで、出来ることだけでいうと、特別大きな差はないと感じていますが、Puppetは外部DSLとして設定を記載するのに対し、Chefは

    『サーバの構築作業やシステム管理を自動化する「Chef」』
  • module function Kernel.#spawn (Ruby 1.9.3)

    spawn(command, options={}) -> Integer[permalink][rdoc] spawn(env, command, options={}) -> Integer 引数を外部コマンドとして実行しますが、生成した 子プロセスの終了を待ち合わせません。生成した子プロセスのプロセスIDを返します。 引数の解釈 この形式では command が shell のメタ文字 * ? {} [] <> () ~ & | \ $ ; ' ` " \n を含む場合、shell 経由で実行されます。 そうでなければインタプリタから直接実行されます。 [PARAM] command: コマンドを文字列で指定します。 [PARAM] env: 更新する環境変数を表す Hash [PARAM] options: オプションパラメータ Hash [EXCEPTION] Errno::EX

  • tech.natemurray.com: 6 Ways to Run Shell Commands in Ruby

    Often times we want to interact with the operating system or run shell commands from within Ruby. Ruby provides a number of ways for us to perform this task. Exec Kernel#exec (or simply exec) replaces the current process by running the given command For example: $ irb >> exec 'echo "hello $HOSTNAME"' hello nate.local $ Notice how exec replaces the irb process is with the echo command which then ex

  • Ruby 1.9 以降で JSON を扱う - 見上げれば、空

    Ruby で JSON を扱いたいと思って調べてみると、 Ruby 1.9 で標準添付ライブラリに加わったということを知ったのですが、いまいち情報がみつからなかったのでまとめてみました。 (追記) 1.9 の json ライブラリは gem の json パッケージのものと同じものみたいです(バージョンの差はあるかもしれませんが)。ちゃんと調べてませんが 1.9 の段階で既存のパッケージが取り込まれたかたちなのだと思います。ですので、以下は Ruby 1.8 系統に rubygems で json をいれたときでも同様の操作で JSON を扱えるはずです。 json | RubyGems.org | your community gem host JSON implementation for Ruby JSON からオブジェクトに JSON 形式の文字列から配列/ハッシュへ JSON か

    Ruby 1.9 以降で JSON を扱う - 見上げれば、空
  • library net/https (Ruby 1.8.7)

    要約 net/http に SSL/TLS 拡張を実装するライブラリです。 Net::HTTP を再オープンし、SSL/TLS 拡張を追加します。 デフォルトパラメータについて net/https は OpenSSL::SSL::SSLContext#set_params で SSLContext を初期化します。そのため 指定されなかったパラメータは OpenSSL::SSL::SSLContext::DEFAULT_PARAMS の値で初期化されます。 Net::HTTP#ca_file= も Net::HTTP#ca_path= も Net::HTTP#cert_store も設定しなかった場合は OpenSSL::SSL::SSLContext::DEFAULT_CERT_STORE が証明書ストアとして用いられます。 Example 簡単な例を挙げます。 verify_mode

  • WEBrickを使うためのメモ - 再帰の反復blog

    WEBrickは、HTTPサーバを簡単に作ることができるライブラリらしい。 しかし「じゃあ簡単に作ってみよう」と思ってRubyのマニュアルのWEBrickの部分を見ても、まったく要領を得ないので、使うためのメモを書いておく。 HTTPServer 簡単なHTTPサーバ サーバがおこなう仕事を設定する (+ FileHandlerの使用例) マウントで仕事を分ける (+ CGIHandlerの使用例) テスト用Webサーバとして使う 自前のサーブレット(ハンドラー)を定義する GenericServer HTTPProxyServer HTTPServer まず標準リファンレンスは次 Rubyリファレンスマニュアル library webrick/httpserver 簡単なHTTPサーバ とりあえずぜんぜん役に立たないHTTPサーバを作ってみる。 HTTPサーバの仕事は、クライアントからの

    WEBrickを使うためのメモ - 再帰の反復blog
  • Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • CRubyでオブジェクトが生成された位置を突き止める - GC Advent Calendar - I am Cruby!

    Garbage Collection Advent Calendarの1日目の記事です。 おそらく一人でけっこう長い日数を書くと思うので、軽いものからボチボチと…。 しかもGCとはあまり関係ないですが…。 とあるオブジェクトの生成位置を調べたいとき、どうするのか。 object_idを1bit左シフトするとだいたいそのオブジェクトのRVALUEのアドレスになるので p (hoge.object_id 1).to_s(16) # => fa83a4 上記のようにobject_idを出力するコードを混ぜておきましょう。 その後にgdbrubyを動かしてみます。 この時、GC_DEBUG付きでビルドしたrubyなら実はソースコードとラインがわかります。 デバッグ用にGC_DEBUG付きのrubyがビルドできるようならそうしてみましょう。 rvmだったら.rvmrcに以下の設定するとできるんじゃ

  • Home - Chef - Opscode Open Source Wiki

    Welcome to Chef! Chef is a systems integration framework, built to bring the benefits of configuration management to your entire infrastructure. With Chef, you can: Manage your servers by writing code, not by running commands. (via Cookbooks) Integrate tightly with your applications, databases, LDAP directories, and more. (via Libraries) Easily configure applications that require knowledge about y

  • るびま

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • Rackをminifyした僅か100行のLackで学ぶRackの中身

    「エラーメッセージから学ぶRack最初の一歩」および「エラーメッセージから学ぶRack - Middlewareの魔法」の続きです。 前2の記事で、Rackはrackupコマンドを起動すると、defaultでconfig.ruを読み込みWebサーバを起動するということが分かりました。また、config.ruの中でuseを使ってmiddlewareを指定すると、Webアプリをラップして内側から外側に向けてそれらの#callを順次呼び出すということも分かりました。ちなみに僕はこの呼び出しスタイルを今後「マトリョーシカ呼び出し」と呼ぶことにしました。 ここで2点気になることがあります。config.ruはRubyスクリプトです。rackupコマンドの実行からRackはどうやってこのファイルを実行しているのでしょうか。まあ簡単に想像はつきますが(エバるほどではない)、これが1点目です。もう1点は

  • Webページの本文抽出 (nakatani @ cybozu labs)

    Webページの自動カテゴライズ の続き。 前回書いたとおり、パストラックで行っている Web ページのカテゴライズでは、Web ページの文抽出がひとつの鍵になっています。今回はその文抽出モジュールを公開しつつ、使っている技法をざっくり解説などしてみます。 モジュールの利用は至極簡単。require して analyse メソッドに解析したい html を与えるだけ。文字コードは UTF-8 です。 【追記】大事なこと書き忘れ。モジュールは Ruby1.8.5 で動作確認していますが、特別なことはしていないので、1.8.x なら動くと思います。 $KCODE="u" # 文字コードは utf-8 require 'extractcontent.rb' # オプション値の指定 opt = {:waste_expressions => /お問い合わせ|会社概要/} ExtractCont

  • RubyのMechanizeを解説 for 1.0.0 - きたももんががきたん。

    諏訪之瀬島(鹿児島県鹿児島郡十島村)2024.8 はじめに 1日目 中心部・ナベダオエリア 元浦エリア 2日目 元浦エリア・中心部 切石エリア 3日目 はじめに 前回の「フェリーとしま2乗船記」にも書きましたが、諏訪之瀬島に行ってきました。今回は、その諏訪之瀬島の記事です。 kakoyuu.hatenablog.com 諏訪之瀬島は…

    RubyのMechanizeを解説 for 1.0.0 - きたももんががきたん。
  • http://mechanize.rubyforge.org/

  • ネコでもテキスト分類器のRubyライブラリが生成できる便利ツールを作った - デー

    あまり細かいことは気にせずテキスト分類器のRubyライブラリを1コマンドで自動生成する便利ツールを作りました。 いろいろ迷走している間に。 gem install nekoneko_genでインストールできます。 なにをするものなのか、ちょっと分かりにくいので、例で説明します。 2ちゃんねるの投稿からどのスレッドの投稿か判定するライブラリを生成する 例として、2ちゃんねるに投稿されたデータから、投稿(レス)がどのスレッドのレスか判定するライブラリを生成してみます。 準備 まず gem install nekoneko_genでインストールします。 Ruby 1.8.7でも1.9.2でも動きますが1.9.2のほうが5倍くらい速いので1.9.2以降がおすすめです。 環境は、ここではUbuntuを想定しますが、Windowsでも使えます。(WindowsXP, ruby 1.9.3p0で確認)

    ネコでもテキスト分類器のRubyライブラリが生成できる便利ツールを作った - デー
  • 【翻訳】EventMachine入門

    dan sinclairさんのEventMachineの入門記事(PDF)を翻訳しました。 原文はここからダウンロード可能です: http://everburning.com/news/eventmachine-introductions/ (翻訳の公開と画像の利用は人より許諾済みです) 翻訳・内容の間違い等があればブログコメントやTwitterなどで遠慮無くご指摘ください。 EventMachine入門 Introduction うん、これから何を学ぶことになるのか、この導入のくだりがスタート地点として役に立つと思う。EventMachine とは何だろう。そしてそれは私たちのために何をしてくれるのだろう。さて、最初の部分は簡単だね。EventMachine は Reactor パターン(*1)の高性能な実装さ。 すげえ、いや、ちょっと待て、Reactor パターンって何だ? Wiki

    【翻訳】EventMachine入門