[#46143] るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果 — eiichi_maekawa@...

62 messages 2009/07/02
[#46153] Re: るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果 — "NARUSE, Yui" <naruse@...> 2009/07/03

成瀬です。

[#46165] Re: に関する1.8.6→1.8.7または、1.9へのバージョンアップ — eiichi_maekawa@... 2009/07/05

前川です。

[#46281] rubyの変数の扱いについて — "前川 映一" <eiichi_maekawa@...> 2009/08/17

前川です。

[#46283] Re: rubyの変数の扱いについて — "(株)ネットフォレスト 植田裕之" <ueda@...> 2009/08/17

植田と申します。

[#46146] 文字変換 — eiichi_maekawa@...

16 messages 2009/07/03
[#46147] Re: 文字変換 — Hidetoshi NAGAI <nagai@...> 2009/07/03

永井@知能.九工大です.

[#46148] Re: 文字変換 — eiichi_maekawa@... 2009/07/03

前川です。

[ruby-list:46179] Re: メソッドの扱いについて

From: rubikitch@...
Date: 2009-07-07 12:31:01 UTC
List: ruby-list #46179
From: eiichi_maekawa@mhi.co.jp
Subject: [ruby-list:46176] メソッドの扱いについて
Date: Tue, 7 Jul 2009 13:37:01 +0900

るびきちです。

> 前川です。
> 
> 文字変換関連、どうにか、メソッドを作りこみましたが、
> 作ったメソッドを、外部参照で、使用できるようにしたいのですが。
> 
> クラスにした場合、
> 
> class MyConversion
>   def initialize(data)
>    @data = data
>   end
> 
>   def textToHex
>     @data.unpack('H*')[0] #成瀬さん ありがとうございました。
>   end
> 
>   def hexToText
>     @data.gsub(/../){|c| c.hex.chr} #永井さん ありがとうございました。
>   end
> end
> 
> 呼ぶ側は、
> 
> result = MyConversion.new('船')
> result1 = result.textToHex
> 
> あるいは、
> 
> result1 = MyConversion.new('船').textToHex
> 
> ですが、メソッドとして、外部参照するような
> 使い方(メソッドの延長??) MyConversion.textToHex(データ) に
> は、できないでしょうか。
> たとえば、
> 
> convFunc = MyConversion.new #MyConversion を使用するための定義(実態の作成)
> result = convFunc.textToHex('船')    または、'船'.convFunc.textToHex
> result1 = convFunc.textToHex('長崎')         '長崎'.convFunc.textToHex
> 
> というような具合に。

できますよ。

# メソッド名は単語を_で区切るのがRubyのやり方です。

# -*- coding: euc-jp -*-
class MyConversion
  def text_to_hex(data)
    data.unpack('H*')[0]
  end

  def hex_to_text(data)
    data.gsub(/../){|c| c.hex.chr}
  end
end
MyConversion.new.text_to_hex('船') # => "c1a5"

# クラスメソッドを定義するのはこうする
class MyConversion
  def self.text_to_hex(data)
    data.unpack('H*')[0]
  end

  def self.hex_to_text(data)
    data.gsub(/../){|c| c.hex.chr}
  end
end
MyConversion.text_to_hex('船') # => "c1a5"

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/
Twit: http://twitter.com/rubikitch/
『Ruby逆引きハンドブック』 http://d.hatena.ne.jp/rubikitch/20090525/rubybook

In This Thread