タグ

TipsとRubyに関するt_43zのブックマーク (18)

  • 知って得する!55のRubyのトリビアな記法

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

  • やる夫がFiberパフォーマンス測定してみたそうです その2 - サイログ。

    (前回の続き) Benchmark.benchmark (" "*11 + Benchmark::CAPTION) do |bm| (略) fib = bm.report("fiber: ") do outer.times do fiber = Fiber.new do array = Array.new(size){|i| i} idx = 0 ret = true while ret ret = Fiber.yield array[idx] idx = (idx + 1) % array.length end end sum = 0 inner.times do sum += fiber.resume(true) end fiber.resume(nil) end end end ______ /  \    /\ /  し (>)  (<)\ | ∪    (__人__)  J | 

    やる夫がFiberパフォーマンス測定してみたそうです その2 - サイログ。
  • Gemの代わりにGitHubから直接requireする方法 - Hello, world! - s21g

    Gemを作るのが面倒になってきたので、githubから直接requireできたら楽になるかもしれないと思い、試してみました。 1  def git(uri, sha1, options = {}) 2  require "tmpdir" 3  basename = File.basename(uri) 4  outdir = File.join(Dir.tmpdir, basename, sha1) 5  unless File.exist?(outdir) 6  sh = proc{|command| IO.popen("#{command} 2>&1"){|io| io.read}} 7  sh["git clone #{uri} #{outdir}"] 8  sh["cd #{outdir}; git checkout #{sha1}"] 9  end 10  $:.unshift

  • ライブドアブログ|無料で豊富な機能が充実

    【愚痴】一番下が幼稚園入ったら働いてほしいって嫁に行ったら「働く分少しは家事の分担と育児も今より関わって」と言われたんだが… 【えぇ…】友達とフードコートへ→私「ポテト買って二人でべる?半額持ってくれるなら私のと一緒に注文するけど」友達「今日は別の店のポテトにする」私「了解」→結果

    ライブドアブログ|無料で豊富な機能が充実
  • まつもと直伝 プログラミングのオキテ 第21回 オープンクラスとRuby on Rails

    Rubyには「オープンクラス」という機能があり,使い方次第で強力な道具になります。今回はこのオープンクラスを解説します。オープンクラスを活用している「Ruby on Rails」のライブラリActiveSupportについても紹介します。 オープンクラスについての説明に入る前に,Rubyにおける通常のクラス定義について,復習しておきましょう。クラスFooを定義するには以下のように書きます。 この定義ではクラス名がFoo,FooのスーパークラスはBarになります。FooはBarクラスを継承しています。クラス文の内側にあるdefによってplus2メソッドが定義されます。FooクラスはスーパークラスであるBarクラスが備えているメソッドなどを受け継ぎますから,Fooクラスのオブジェクトは,Barクラスのメソッドに加えてplus2メソッドが使えるということになります。 このように新しいクラスを定義

    まつもと直伝 プログラミングのオキテ 第21回 オープンクラスとRuby on Rails
  • やる夫で学ぶJRuby最適化 - recompile.net

    ____ / \  /\  キリッ .     / (ー)  (ー)\ /   ⌒(__人__)⌒ \ |      |r┬-|    |  Ruby 1.9はクリスマス前にリリースします \     `ー'´   / ノ            \ /´               ヽ |    l              \ ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒)) ____ /_ノ  ヽ、_\ ミ ミ ミ  o゚((●)) ((●))゚o      ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\   /⌒)⌒)⌒) | / / /     |r┬-|    | (⌒)/ / / // | :::::::::::(⌒)    | |  | 

    t_43z
    t_43z 2008/06/23
    レベルたけぇ
  • Loading...

  • Rubyから外部プログラムを呼び出す方法 - Hello, world! - s21g

    Rubyから外部プログラムを呼び出して、 パイプを使ったプロセス間通信をする方法の紹介です。 Rubyから外部のプログラムを起動して、標準入力からデータを入力し、 標準出力から結果を取り出したいという場合には、 IO.popenを使うと便利です。使い方は以下のとおり。 1  IO.popen('/usr/bin/command', 'r+') do |io| 2  io.puts "something to input" 3  @result = io.gets 4  end

  • Rails2.0とRails1.2を共存させる方法 - moroの日記

    というかコマンド付きのgemを複数バージョンを共存させる方法。 コマンドの第一引数に_【バージョン】_を渡します。 $ rails _1.2.6_ -v Rails 1.2.6 $ rails _2.0.2_ -v Rails 2.0.2Railsの場合はrailsコマンドでアプリの外枠を作ってしまえば、それ以降はこの指定は必要ない(config/environment.rbでRAILS_GEM_VERSIONしてるので)。ということでRails自体は1.2.6から勉強したい(参考書も多いし)けど、たまには2.0系のコードも読んでみたい、という人なんかはこうするとよいかと。 もっとちゃんと知りたいという人は、gemで入れるとコマンドがこうなるということを知っておけばOK。で require 'rubygems' version = ">= 0" if ARGV.first =~ /^_(.

    Rails2.0とRails1.2を共存させる方法 - moroの日記
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • ユビキタスの街角: Mac上でRubyスクリプトがDrag&Dropを受け付けるようにする

    Macintoshのデスクトップに実行可能なRubyスクリプトを置いても、 ダブルクリックやDrag&Dropで起動することができない。 xxxx.appというアプリケーション形式にする必要がある。 pqrs.orgでは Info.plistというファイルを自力で編集してapp化する方法が解説されているが、 Drag&Dropしてもファイル名がプログラムに渡されないという制限があるし、 別のツールを使う方が簡単なようである。 Platypusというツールを使うのが一番楽だが、 システム附属のAutomatorというソフトを使うこともできる。

  • 1xbet официальный сайт полная версия мобильная скачать - Зеркало 1xBet на ноябрь 2018

    Как заполнить все поля регистрационной анкеты 1xBet?Букмекер 1xBet работает на рынке с 2007 года. За это время компания показала себя с хорошей стороны. Однако сегодня ее деятельность запрещена на территории Российской Федерации, поскольку контора не имеет лицензии, разрешающей принимать онлайн ставки у игроков из России. Новым клиентам БК приходится пользоваться зеркалом сайта или другими методам

    1xbet официальный сайт полная версия мобильная скачать - Зеркало 1xBet на ноябрь 2018
  • 天使やカイザーと呼ばれて: 「%>」と「-%>」の違い

    Ruby on Railsで採用されているERB(eRubyの実装)。これによって,HTML内にRubyコードを記述することで,動的なコンテンツを出力することが可能となっている。 いくつかのサイトや書籍を見ながらRoRアプリケーションを試していたところ,以下の点に気がついた。 「%>」と「-%>」,何が違うのか? マイナス記号が付いている場合と付いていない場合がある。例えば, ‘edit’, :id => user.id -%> といったように。 上記のコードの場合,マイナス記号を削除して実行しても,何ら動作に変化はない。ERBの処理結果に関しても,同一のものである。 この疑問は,以下のサイトが解答を教えてくれた。 「 標準添付ライブラリ紹介 【第 10 回】 ERB」- Rubyist Magazine なるほど,trim_modeという機能のためのマイナス記号だったようだ。例えば, と

    天使やカイザーと呼ばれて: 「%>」と「-%>」の違い
  • ウノウラボ Unoh Labs: railsのテストをevalを駆使して楽しよう

    こんにちは satoです。 testコードではパフォーマンスやセキュリティをさほど気にすることはないと思うので、testコードで evalを使って楽できるケースを書いてみたいと思います。 よく似たModel で Userと Admin があるとします。 二つの Model には confirm というメソッドが定義されていて、ユーザ登録をしてメールで送られてくる URLを をクリックすると status が 'register' から 'confirm' に変更されます。 class UserTest ["status = ?", 'register']) user.confirm assert(user.status == 'confirm', 'confirm error') end end というテストをUserTest と AdminTest に書きます。 しかし以下のような mo

  • UTF-8 エンコーディングの危険性 - WebOS Goodies

    的に、まともな国際化ライブラリを使っていれば、上記のような不正な文字コードはきちんと処理してくれるはずです。実際、 Opera, Firefox, IE ともに適切にエスケープしてくれました。また、 UCS に変換した後にエスケープ処理を行うことでも対処できるかもしれません。しかし、複数のモジュールで構成されるような規模の大きいアプリケーションでは、そのすべてが適切な処理を行っていると保証するのも、なかなか難しいかと思います。ここはやはり、すべての外部入力に含まれる不正なシーケンスを、水際で正規化するという処理を徹底するのが一番かと思います。 例えば Ruby の場合、不正な UTF-8 コードを検出する最も簡単な方法は、 String#unpack を使って UCS へ変換してみることです(昨日の記事への kazutanaka さんからのはてぶコメントにて、 iconv でも同様なこ

  • 【ハウツー】Rubyの小技 - irbに補完・シンタックスハイライト機能をつけてみる | エンタープライズ | マイコミジャーナル

    Rubyにはirb(1)と呼ばれるツールが付属している。irb(interactive ruby)は、Rubyの対話的なシェルで、標準入力からRubyのコードを入力して実行できる。exit、quit、jobs、fg、killなどインタラクティブシェルとして動作するための拡張コマンドが用意されているほか、プロンプトの設定機能や履歴機能なども搭載されている。 図1のようにirb(1)コマンドを実行すればインタラクティブシェルが起動するのでそのまま操作すればよい。 図.1 irb(1)操作例 – sh(1)やcsh(1)などの基的な機能を備えたシェルによく似ている irb(1)には拡張セットとしてWirbleというパッケージが用意されているのだが、同パッケージを使うとインタラクティブシェルに色がつくようになるほか、補完入力が効くようになるなど便利だ。小技として知っておいて損はないので、紹介して

  • 川o・-・)<2nd life

    Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :

    川o・-・)<2nd life
  • http://blog.masuidrive.jp/articles/2006/09/22/ruby-setrlimit

  • 1