以前書いた記事(Ruby 1.9 の新機能を調べてみた)の m17n がらみの箇所についてコメントやらトラックバックやらをいただいたので、もう少し調べてまとめてみた。 なお、1.9.0 リリース版ではなく、開発版(trunk r14835)で動作を確認している。 コマンドラインオプション -E --encoding "ruby -E エンコーディング名" または "ruby --encoding=エンコーディング名" のように使う。 Encoding.default_external を指定したエンコーディングに変更する。 コマンドラインで指定したスクリプトファイル(または -e で指定したスクリプト)のエンコーディングを変更する。(スクリプト内でマジックコメントによるエンコーディング指定を行なったのと同じ効果だが、マジックコメントで指定がある場合はそちらが優先) -K ruby 1.8
I have a simple Ruby script that looks like this require 'csv' while line = STDIN.gets array = CSV.parse_line(line) puts array[2] end But when I try using this script in a Unix pipeline like this, I get 10 lines of output, followed by an error: ruby lib/myscript.rb < data.csv | head 12080450 12080451 12080517 12081046 12081048 12081050 12081051 12081052 12081054 lib/myscript.rb:4:in `write': Broke
Koala is a Facebook library for Ruby, supporting the Graph API (including the batch requests and photo uploads), the Marketing API, the Atlas API, realtime updates, test users, and OAuth validation. We wrote Koala with four goals: Lightweight: Koala should be as light and simple as Facebook’s own libraries, providing API accessors and returning simple JSON. Fast: Koala should, out of the box, be q
新作でTwitter,はてな,Google Readerから横断的に情報収集し、マルチポストするアプリを作っているのですが、そこでTwitterのリプライPush機能を実装したので、Push Notificationを実装する方法をまとめてみます。 Push Notificationの流れ Push Notificationに関する登場人物は、 iPhone Apple Push Notification Service(APNs) Provider の3者です。 iPhoneはいわずもがな、みんなの手元にあるiPhone。APNsはAppleが用意しているPushしてくれるやつです。Providerは、開発者が用意するもので、こいつがPushしたい情報を送る役割を持ちます。 この3者間でのデータの流れは大きくデバイス登録とPush通知の2つのフェーズに分かれます。 デバイス登録
Imlib2-Ruby を使って画像を扱ってみます。 多用な形式をサポートし読み書き等も速い Imlib2 という画像処理ライブラリがあり、 Ruby のバインディングである Imlib2-Ruby が公開されています。 Ubuntu でインストールするには apt-get を使えばいいらしい。 $ sudo apt-get install libimlib2-ruby Mac の場合は Imlib2でImageMagickより3倍高速かつ美しいサムネイル画像の生成 - 昼メシ物語 を参照。 ピクセルごとグレースケールに変換する例。 require 'imlib2' img = Imlib2::Image.load("src.jpg") img.h.times do |y| img.w.times do |x| c = img.pixel(x, y) gray = (0.299 * c.r
Rails等のプレームワークだとだいたい誰かがプラグインを作っていて、それが面倒を見てくれるので意識せずにHAMLを使えるが、今回は素のRubyスクリプトから使う場合。 Haml::Engineのrenderメソッド又はrender_procメソッドを使う。 render example.html.haml %p= hello 変数の内容をひとつ出力するだけのあまりにシンプルなテンプレートファイル。 haml_example.rb require 'haml' File.open("example.html.haml") do |f| Haml::Engine.new(f.read, :format => :xhtml).render(Object.new, :hello => "Hello World!!") end Haml::Engineのインスタンスを作ってrenderする。 Ha
== 数値、文字列、配列などで、「等しいかどうか」「同じ内容かどうか」を調べるのに使います。別のオブジェクト(別のインスタンスへの参照)でも同じ内容ならtrueになります。 Rubyでは数値と文字列の間の自動変換は行われませんので、1 == "1"はfalseです。整数と浮動小数点数の間では自動変換が行われ、1 == 1.0はtrueになります。 自作のクラスのオブジェクトどうしを ==で比較したいときは、==メソッドを定義します。==を定義しないと、equal?と同じく「同じオブジェクトかどうか」になります。 == equal? 常に「同じオブジェクトかどうか」を調べるのに使います。自作のクラスでequal?を定義してはいけません(定義できてしまいますが)。 Javaでは、Stringなどのequalsメソッドは「同じ内容かどうか」を調べるもので、Rubyと逆です。 equal? ===
Mass Assignment 以下、Ruby on Rails Guidesに掲載されたセキュリティに関する記事の一部の日本語訳です。 6 Mass Assignment なんの予防措置もなければ、Model.new(params[:model])はハッカーがどのデータベースにもカラムの値をセットするのを許してしまう。 Mass assignmentの特徴は、攻撃者がmodelのnew()メソッドに渡すハッシュを操作することでどんなモデルのattributesでもセットすることを許してしまうため、問題となるかもしれない。 def signup params[:user] #=> {:name => "ow3ned", :admin => true} @user = User.new(params[:user]) end Mass assignmentは多くの作業を省く。なぜなら、それぞれ
Categories About This Blog(6) Book Reviews(8) Character Encodings(12) Conferences(4) Deadly Regular Expressions(4) Early Steps(4) Higher-Order Ruby(6) Key-Value Stores(7) Language Comparisons(4) My Heroes(2) My Projects(5) Non-code(4) Rails(4) Rubies in the Rough(24) Ruby Tutorials(4) Ruby Voodoo(12) Rusting(5) Screencasts(3) Terminal Tricks(4) The Gateway(4) The Ruby VM Interview(6) The Standard
ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 知って得する21のRubyのトリビアな記法: melborne.github.com - ちょっとトリビアだけど 知っていると意外と便利な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
テンプレートエンジンを抽象化するライブラリTiltではオブジェクトを渡すとそのスコープが取得できます. これはRuby的にはすごく謎でそんな方法あったっけ? とTiltのソースを読んだら戦慄しました. UnboundMethod#bind(obj) というクラスとメソッドがある 例えば s = Numeric.instance_method(:to_s) で「Numeric#to_s」というUnboundMethodのインスタンスを取り出すことができ,s.bind(1) でNumeric(を継承したInteger)のインスタンスである「a」にsをbindできる. s = Numeric.instance_method(:to_s) s.bind(1).call #=> "#<Fixnum:0x00000000000003>" 1.to_s #=> "1" と通常のto_sと異なる値が返って
Fixture suck! と言われて久しいですね。こんにちは! onk です。 最近は Rails 3.0 でソーシャルアプリを作っています。で,BDD に RSpec 2.0 & FactoryGirl を使い出したので FactoryGirl についてご紹介。 define まず,FactoryGirl は ActiveRecord に依存しています。factory の定義は AR のモデル単位。 Factory.define :onk, :class => User do |user| user.name "onk" user.email "onk@drecom.co.jp" end たとえばこんな感じですね。 create / build 定義した factory を使うときは Factory.create(:onk) #=> #<User id: 1, name: "onk",
ruby は変数に接頭辞がないから、perl で $obj->$method() みたいなことやるのにどうしたらいいんだろ、とか思ってたらプログラミング言語 Ruby に出てきた。 Object に send ってメソッドがあって、o.send :method_name で呼び出せる。 perl のこのコードは my $hoge = Hoge->new; foreach my $method ( qw/one two three/ ) { print $hoge->$method() . "\n"; } package Hoge; sub new { bless {}, shift; } sub one { 1 } sub two { 2 } sub three { 3 } ruby で書くとこんな感じ class Hoge def one; 1; end def two; 2; end
改訂のお知らせ 2022年10月3日よりRuby 3に対応したRuby技術者認定試験の配信を開始しました。詳細はニュースをご参照ください。version 2.1の試験については旧試験ページをご参照ください。 Ruby技術者認定試験について Ruby技術者認定試験制度は、Rubyベースのシステムを設計、開発、運用するエンジニア、Rubyでシステム提案を行うコンサルタント、Rubyを教える講師及びRubyを学ぶ学生などを対象とした認定試験制度です。認定者は、Ruby技術者としての技術力を公正に評価され、高い水準のRubyによるシステム開発能力を持つことを認定されます。 認定によりRubyベースでシステム開発を行ううえで必要な基礎的な知識と応用力をもつことをアピールすることができます。試験の合格者は、Rubyアソシエーションにより「 Ruby Association Certified Ruby
# encoding: UTF-8 str = "Hello" if str == "Hello" then puts("文字列はHelloです") else puts("文字列はHelloではありません") end このサンプルでは変数に格納された文字列と「Hello」と言う文字列が完全に一致しますので「文字列はHelloです」が出力されます。 このように完全に一致しているかどうかを調べるだけならば == メソッドを使うことで判定ができます。では次に対象の文字列に「e」で始まり「o」で終わる文字列が含まれているかどうかを調べるにはどうすればいいでしょうか。 このような条件ですと、一致する文字列は数限りなく存在します。例えば次のような文字列に一致します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く