タグ

Rubyに関するsasashinのブックマーク (60)

  • RubyでANSIカラーシーケンスを学ぼう! - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 RubyでANSIカラーシーケンスを学ぼう! : melborne.github.com - CUIの世界は地味な世界です 真っ黒なターミナル画面に単一色の文字列 それが却って落ち着くという向きもありますが 今となってはその地味さは際立っています ターミナルで色を使う方法を学ぶことで 新しい世界が開けるかも知れません ようこそANSIカラーの世界へ エスケープシーケンス ターミナルで色を使うためには エスケープシーケンスというものを利用します エスケープシーケンスはターミナル上で色を含む特定の制御を 実現するための特殊な文字列です print "\e[31mhello\e[0m" これによりターミナル上に青文字で「hello」と出力されます この"\e[31m"

    RubyでANSIカラーシーケンスを学ぼう! - hp12c
  • Ruby中級入門

    Ruby中級入門 1. Ruby中級入門 @shokai 2013年8月5日(火) @masuilab 2. 私 •@shokai (しょうかい) •趣味料理、glitch 3. ある程度大きなアプリケーションを作 っていると、部品に分割したくなると 思います。アプリ内ライブラリやgem の作り方を説明します。Rubyの機能を 活用した使い勝手の良いライブラリの デザインについて考えます。 4. • アプリ内ライブラリの作り方・gemの作り方 • サンプルコードとテスト • ライブラリのデザイン • API • DSL • 泥臭い小手先の技 • 例外・エラーの通知 • ドキュメント コンテンツ 5. ライブラリを作る 例:LeapMotionを自作アプリに組み込むための アプリ内ライブラリを作る 6. • LeapMotionはport 6437にWebSocket 接続するとJSONで

    Ruby中級入門
  • Ruby の Process.#daemon が動かなかったけど動くようになった - 猫背で進め

    Ruby では Process.daemon と一行追加するだけでデーモン化できるので便利」という記述をちらほら見かけるけど、場合によっては動かないので注意が必要。 Process.daemon とだけ書いた時には、デーモンは / をカレントディレクトリとして動きます。なので、 config = YAML.load_file('config.yml') みたいな記述を含む Ruby コードをこの方法でデーモン化しようとすると、うまくいかない。しかもエラー出力を含めた標準入出力は全て /dev/null に投げられてしまうので、config.yml が読めないよ! 的なエラーが発生していることさえわからなかくなってしまう。 解決方法は簡単で、デーモン起動時に / に移動しないようにすれば良い。具体的には、daemon の第一引数 nochdir を true にすれば良いです。これでディ

  • 僕たちが待ち望んでいたRubyスクリプトをデーモン化する方法 - http://rubikitch.com/に移転しました

    Rubyでは、簡単にデーモンが記述できる。その方法は簡単!Ruby 1.9だと Process.daemon と書くだけだ。その行の後は制御端末が切離され、デーモンとして実行される。Ctrl+Cで終了できないので、永遠に実行を続けるスクリプトは「pkill -f」などで殺す。 既存のスクリプトをデーモン化するには、この一行を加えればいいだけなのだが、常にデーモンにしてしまうとデバッグが困難になってしまう。そこで、テスト時はふつうに実行して、普段はデーモンにしてしまえばいい。その方法もまた簡単!上の一行を daemonize.rb というファイルに保存すればいい。だけどこれだけだとつまらないので、ついでにRuby 1.8にも対応させてみる。 if Process.respond_to? :daemon # Ruby 1.9 Process.daemon else # Ruby 1.8 req

    僕たちが待ち望んでいたRubyスクリプトをデーモン化する方法 - http://rubikitch.com/に移転しました
  • Rubyで関数合成とかしたいので lambda_driver.gem というのを作った - ( ꒪⌓꒪) ゆるよろ日記

    LambdaDriver by yuroyoro Rubyで、Procやlambdaで関数合成できるようにしたかったので、lambda_driver.gemというのを作った。 内容的にはこの辺で書いたヤツをgemにした感じ。 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記 「関数型Ruby」という病(3) - カリー化(Proc#curry, Proc#flip) - ( ꒪⌓꒪) ゆるよろ日記 こんな風に、カッコよくコードが書ける。 require 'lambda_driver' # [:foo, :bar, :baz].map{|s| s.to_s }.map{|s| s.upcase } # [:foo, :bar, :baz].map(&:to_s).map(&:upcase) [:foo, :bar, :baz].map(

    Rubyで関数合成とかしたいので lambda_driver.gem というのを作った - ( ꒪⌓꒪) ゆるよろ日記
  • Gemfileについて調べてみた - xxxcaqui.log

    Gemfileについてよくわかってなかったので調べてみた。 そもそもGemfileって? Bundler用の設定ファイル。 BundlerはGemfileの記述にしたがって、gemの依存関係を示したGemfile.lockを生成する。 じゃあ、Bundlerって何さ? アプリケーションで使用するgemのバージョン管理を行うプログラム。 「お前が書いたコード動かないんだけど?」 「ハァ? 俺の環境では動いてるし。バージョン違うんじゃねーの? 死ねよ」 ってならないためのツール。 Railsをはじめ、SinatraやRubyMotionでも使われている。*1 ちなみに、Bundlerの公式サイトにはこう書いてある。 The best way to manage your application's dependencies ベストらしいので使わない手はない。 source gemが置いてある場

    Gemfileについて調べてみた - xxxcaqui.log
  • 知って得する!55のRubyのトリビアな記法

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

  • Rubyのデフォルト引数で再帰 - ( ꒪⌓꒪) ゆるよろ日記

    Rubyのデフォルト引数では、他の引数に依存した式を書ける。地味に便利。 [1] pry(main)> def foo(a, b = a * 2) [1] pry(main)* puts b [1] pry(main)* end => nil [2] pry(main)> foo(3) 6 => nil 再帰もかける。デフォルト引数で再帰させてフィボナってみる [3] pry(main)> def fib(n,r = (n <=1 ? n : fib(n-2) + fib(n-1))) [3] pry(main)* r [3] pry(main)* end => nil [4] pry(main)> 11.times do |n| puts "fib(#{n}) => #{fib(n)}" end fib(0) => 0 fib(1) => 1 fib(2) => 1 fib(3) =>

    Rubyのデフォルト引数で再帰 - ( ꒪⌓꒪) ゆるよろ日記
  • 「関数型Ruby」という病(1) - Symbol#to_proc, Object#method - ( ꒪⌓꒪) ゆるよろ日記

    この記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 だって、ブロックって汚いじゃん?仮引数の|x|とかキモイ。 Symbol#to_proc 基中の基。 instance method Symbol#to_proc 以下のようなArrayがあって、 irb(main):003:0> arr = [:user, :entry, :article, :comment, :category] => [:user, :entry, :article, :comment, :category] 各要素をto_sしたかったら、 irb(main):004:0> arr.map{|s| s.to_s} => ["user", "entry", "article", "comment", "category"] と書くかわりに、 irb(main)

    「関数型Ruby」という病(1) - Symbol#to_proc, Object#method - ( ꒪⌓꒪) ゆるよろ日記
  • Rubyistよ、irbを捨ててPryを使おう | Webシステム開発/教育ソリューションのタイムインターメディア

    Pryは結構前からgithubのリポジトリを追いかけている人達には認知されていましたが、RailsCastsでも紹介されたことから、Ruby界で一気に広がりを見せています。 ちなみに発音はpra'i(ぷらい)です。英単語で「覗く」などを意味します。 今回はそんな便利なPryについて少し紹介したいと思います。 Pryはirbの代わりになるREPL Pryを一言で説明すると、irbと同様にREPL環境を提供してくれます。 では、さっそくインストールしてみましょう。

    Rubyistよ、irbを捨ててPryを使おう | Webシステム開発/教育ソリューションのタイムインターメディア
  • この記事はお金借りるなら、お金借りる審査通らない理由、お教えします。

    必見!お金借りるならのお金借りる審査通らない理由ってどう? 育ち盛りとはいえ、生活がこっそりべ物をべるのが悩みです。 お金借りる審査通らない理由とかパンのような炭水化物ならまだしも、リバースモーゲージローンにある別のものはスルーして、カードローン会社をあるだけべるんです。方法の中心がなくなりますから、カードローン会社は来なら行かなかった買い物に行くことになるのです。 商品スペックがアップしていますし、お金借りるならを保存できないのは当に嫌なものです。 お金借りる審査通らない理由を叱っても効果がなく、生活にストレスが溜まっています。旦那に合わせて引っ越したのを後悔しています。 お金借りる審査通らない理由だったら、仕事もプライベートも充実していて、お金借りる審査通らない理由が楽しくて仕方ありませんでした。 お金借りるならですら友達の話すネタになりましたし、振込が面白くなってきたところ

  • Aki's Site - rparsec

    LL文法にもとづいた再帰下降構文解析を実行する コンビネータ理論にもとづいている 字句解析と構文解析を同時に、あるいは別フェイズで実行可能 字句解析中に構文解析を混ぜることができる(たぶん) 基的な動作としては、Parserオブジェクトを作成し、parseメソッドで構文解析を行なうことになる。parseメソッドの結果として計算の結果を出力したり、あるいは抽象構文木を作成することができる。 > parser = Parser.new > parser.expression.parse("{KJS}") #<Repetition:0x4034e2fc @value="KJS"> 以下に簡単な用法を記す。ただし、文書やサンプルコードが少ないため、筆者が試行錯誤したやり方である。おそらくもっと賢い方法があると思われる。 字句解析 字句解析用のモジュールを作成し、Parsersモジュールを組み込ん

  • Rubyからinotifyを使ってファイルやディレクトリを監視する

    cles::blog 平常心是道 blogs: cles::blog NP_cles() « 2009年、Googleでもっとも検索されたのはyahoo :: そばよし » 2009/12/06 Rubyからinotifyを使ってファイルやディレクトリを監視する  ruby 220 0へぇ 昨日incronの使い方を調べたのですが、よく考えたらこれってファイルが変更される度に新たなプロセスが生成されるので、マシンの負荷的にあまりよろしくないような気がしてきました。処理が重かったりする事を考えるとなんとか単一の常駐プロセスでやりたいところです。ということで、Rubyからinotifyを使って任意のファイルやディレクトリを監視する方法を調べてみました。 † ライブラリのインストール まず、gemcutterでinotifyを検索してみるといくつかライブラリが見つかります。どれがいいのか良くわか

    Rubyからinotifyを使ってファイルやディレクトリを監視する
  • chimerast

    chimerast chimerast > 2011-03-20 >

  • PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog

    サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ

    PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog
    sasashin
    sasashin 2011/10/25
    Rubyだと標準のHashよりも速いうえにGCの時間も節約できて超お得。
  • RubyでTokyo Cabinet - Capsule

    前回、memcachedについて書いたので今回はTokyo Cabinetについて調べてみました。 Tokyo Tyrantについては今回はやりません。それにしてもタイラント(暴君)っていう名前はすごいなぁ。響きがカッコいいですね。 環境を整える 今回、自分が使うOSはUbuntu10.04でRubyのバージョンは1.8.7です。 Tokyo Cabinet体とRubyのライブラリはこちらからダウンロードして下さい。 この記事ではtokyocabinet-1.4.32.tar.gzとtokyocabinet-ruby-1.29.tar.gzを使用します。 # 体のインストール tar zxfv tokyocabinet-1.4.32.tar.gz cd tokyocabinet-1.4.32/ ./configure make sudo make install # 拡張

  • #464: Default custom XPath function handler by mbklein for tenderlove/nokogiri - Pull Request - GitHub

    mbklein opened this pull request May 24, 2011 Default custom XPath function handler I've created an easy-to-decorate handler for custom XPath functions, and created code so that Node will use it in the absence of another handler: Nokogiri::XML::XPathFunctions.define(:regex) do |node_set, regex| node_set.find_all { |node| node['some_attribute'] =~ /#{regex}/ } end # regex() is now available by defa

    sasashin
    sasashin 2011/09/26
    NokogiriでXPath関数を自作する方法。
  • RubyがISOのファストトラックに採択、早ければ2012年にも国際標準に

    プログラミング言語Rubyが、国際標準化機構/国際電気標準会議(ISO/IEC)で2011年9月上旬に締め切られた投票において、ファストトラック(迅速手続)に採択されたことがわかった。これにより、Rubyの国際標準化プロセスが正式にスタートすることになった。順調に行けば、2012年にもRubyが国際標準となる。 ISO/IECのファストトラックは、既に標準化された既存の規格に基づき、通常よりも迅速に審議を行い国際標準化する方式。Rubyは2011年3月にJIS規格として公示されている(関連記事)。そのため、JIS規格に基づいたファストトラックでの審議がISO/IECに提案されていた。 Rubyをファストトラックに採択するかどうかを問う投票は、ISO/IECの小委員会JTC1/SC22で2011年4月から欧米をはじめとする各国の委員によって行われ、9月6日に締め切られた。関係者によれば、9月

    RubyがISOのファストトラックに採択、早ければ2012年にも国際標準に
  • RSense - Rubyのための最も優れた開発援助ツール

  • Vim-users.jp - Hack #229: 動的型付け言語Rubyでメソッド名などを自動補完する

    sasashin
    sasashin 2011/09/15
    vim-rubyとRSense。