[ruby-list:46143] るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果

View: New views
20 Messages — Rating Filter:   Alert me  
< Prev | 1 - 2 - 3 - 4 | Next >

[ruby-list:46143] るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


前川です。


るびま 標準添付ライブラリ紹介 第3回のサンプル実行してみましたが、

【EUC-JP で表された 'Hello, るびま!'】の実行結果は、
2ではなく、5となりました。どちらが、正しいのでしょうか。教えてください。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
#!C:/Ruby/bin/ruby.exe

print "Content-Type: text/html\n\n"

require 'kconv'
require 'nkf'

CODES = {
  NKF::JIS      => "JIS",
  NKF::EUC      => "EUC",
  NKF::SJIS     => "SJIS",
  NKF::BINARY   => "BINARY",
  NKF::UNKNOWN  => "UNKNOWN(ASCII)",
}



# ISO-2022-JP で表された 'Hello, るびま!'
str_iso2022jp =
"\x48\x65\x6c\x6c\x6f\x2c\x20\x1b\x24\x42\x24\x6b\x24\x53\x24\x5e\x21\x2a\x1b\x28\x42"

puts Kconv.guess(str_iso2022jp) # => 1 == Kconv::JIS

# EUC-JP で表された 'Hello, るびま!'
str_eucjp     =
"\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"

puts Kconv.guess(str_eucjp)     # => 2 == Kconv::EUC;;結果は、5となる

# Shift_JIS で表された 'Hello, るびま!'
str_shiftjis  =
"\x48\x65\x6c\x6c\x6f\x2c\x20\x82\xe9\x82\xd1\x82\xdc\x81\x49"

puts Kconv.guess(str_shiftjis)  # => 3 == Kconv::SJIS

# UTF-8 で表された 'Hello, るびま!'
str_utf8 =
"\x48\x65\x6c\x6c\x6f\x2c\x20\xe3\x82\x8b\xe3\x81\xb3\xe3\x81\xbe\xef\xbc\x81"

puts Kconv.guess(str_utf8)      # => 6 == Kconv::UTF8

# UTF-16BE (BOM 付き) で表された 'Hello, るびま!'
str_utf16be =
"\xfe\xff\x0\x48\x0\x65\x0\x6c\x0\x6c\x0\x6f\x0\x2c\x0\x20\x30\x8b\x30\x73\x30\x7e\xff\x1"

puts Kconv.guess(str_utf16be)   # => 8 == Kconv::UTF16

# UTF-16LE (BOM 付き) で表された 'Hello, るびま!'
str_utf16le =
"\xff\xfe\x48\x0\x65\x0\x6c\x0\x6c\x0\x6f\x0\x2c\x0\x20\x0\x8b\x30\x73\x30\x7e\x30\x1\xff"

puts Kconv.guess(str_utf16le)   # => 8 == Kconv::UTF16








参考に勉強を始めたばかりです。
記載されているサンプルコードはunixベースと思われますが、
windows 版に修正しながら、確認しています。
Rubyに関してはまったくの初心者です。
対処方法につき、ご教示いただきますよう、よろしくお願いします。

今使用しているRubyは、
C:\Apache2.2\htdocs\ruby_prg\em_ruby>ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
O/Sは、windows_xpです。

質問1.
本書p26に記載のattr_readerを使用しましたが、エラーとなりました。
エラーメッセージは、

C:\Apache2.2\htdocs\ruby_prg\em_ruby>ruby em_song2r1.rb
Content-Type: text/html

em_song2r1.rb:13: undefined local variable or method `artist' for
Song:Class (NameError)
です。
コードは、以下です。
−−−−−−−−−−−−ソースコード−−−−−−−−−
#!C:/Ruby/bin/ruby.exe
print "Content-Type: text/html\n\n"

#
#プログラミングRuby第2版 言語編 サンプルl
#2009/06/03 E.MAEKAWA
#実行するI.E.のアドレス
#http://localhost:8080/ruby_prg/em_ruby/em_tutorial.rb
#
#Songクラス

class Song
  attr_reader(name,artist,duration) #undefined local variable or method
`duration' for Song:Class (NameError)が生じる。原因不明

  # name の初期化
  #def name
  #  @name
  #end

  #artistの初期化
  #def artist
  #  @artist
  #end

  #durationの初期化
  #attr_writer(duration) #undefined local variable or method `duration' for
Song:Class (NameError)が生じる。原因不明
  def duration_in_minutes
    @duration/60.0  # 浮動小数点に強制的に変換
  end
  def duration_in_minutes=(new_duration)
    @duration = (new_duration*60).to_i
  end
  #def duration=(new_duration)
  #  @duration = new_duration
  #end

  #データを、設定する。
  def initialize(name,artist,duration)
    @name     = name
    @artist   = artist
    @duration = duration
  end

  #データを整形化して、出力する。
  #形式;Song:  #@name--#@artist (#@duration)
  def to_s
    "Song:  #@name--#@artist (#@duration)"
  end
end

# Song クラスを継承し、歌詞を追加する。
# Songのサブクラス
#
class KaraokeSong < Song
  # 初期化処理
  #attr_reader :name, :artist, :duration, :lirisc
  def initialize(name, artist, duration, lyrics)
    super(name, artist, duration)
    @lyrics = lyrics
  end

  #文字列変換:superクラスのto_sに歌詞を追加
  #
  def to_s
    super + " [#@lyrics]"
  end
end

song = Song.new("Bicylops","Fleck",  660) #曲名、奏者、演奏時間分を設定
puts song.to_s
puts song.duration_in_minutes
puts song.inspect

song.duration_in_minutes = 5.5
puts song.to_s

#メイン処理 カラオケ
karaoke = KaraokeSong.new("My Way","Sinatra",255,"And now, the end is
near...")
puts karaoke.to_s
puts song.duration_in_minutes
puts karaoke.inspect

karaoke.duration_in_minutes = 4.2
puts song.duration_in_minutes
puts karaoke.to_s
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

質問2.
同本書P.29クラスメソッド記載のコーディングをしても、attr_readerと同様に
エラーとなりました。
対処方法につき、教えてください。
エラーメッセージは、
C:\Apache2.2\htdocs\ruby_prg\em_ruby>ruby emSongWithClassMethod.rb
Content-Type: text/html

emSongWithClassMethod.rb:83:in `is_too_long': undefined method `duration'
for #<Song:0x2b4f490> (NoMethodError)
        from emSongWithClassMethod.rb:88
です。

コードは、以下です。
−−−−−−−−−−−−−−−ソースコー
ド−−−−−−−−−−−−−−−−−−−−−−−−−
#!C:/Ruby/bin/ruby.exe
print "Content-Type: text/html\n\n"

require 'rubygems'
#
#プログラミングRuby第2版 言語編 サンプルl
#2009/06/03 E.MAEKAWA
#実行するI.E.のアドレス
#http://localhost:8080/ruby_prg/em_ruby/em_tutorial.rb
#
#Songクラス

class Song
  #attr_reader(name,artist,duration)##undefined local variable or method
`duration' for Song:Class (NameError)が生じる。原因不明
  @@plays = 0  # クラス変数 回数

  # name の初期化
  def name
    @name
  end

  #artistの初期化
  def artist
    @artist
  end

  #durationの初期化
  #attr_writer(duration) #undefined local variable or method `duration' for
Song:Class (NameError)が生じる。原因不明
  def duration_in_minutes
    @duration/60.0  # 浮動小数点に強制的に変換
  end
  def duration_in_minutes=(new_duration)
    @duration = (new_duration*60).to_i
  end
  #def duration=(new_duration)
  #  @duration = new_duration
  #end

  #データを、設定する。
  def initialize(name,artist,duration)
    @name     = name
    @artist   = artist
    @duration = duration
    @plays = 0
  end

  # クラス変数で、回数を記録する。
  def play
    @plays += 1    # @plays = @plays + 1 と同じ
    @@plays += 1   # @@plays= @@plays + 1 と同じ
    puts "This song: "+@plays.to_s+" plays. Total # "+@@plays.to_s+"
plays."
  end

  #データを整形化して、出力する。
  #形式;Song:  #@name--#@artist (#@duration)
  def to_s
    "Song:  #@name--#@artist (#@duration)"
  end
end

# Song クラスを継承し、歌詞を追加する。
# Songのサブクラス
#
class KaraokeSong < Song
  # 初期化処理
  #attr_reader :name, :artist, :duration, :lirisc
  def initialize(name, artist, duration, lyrics)
    super(name, artist, duration)
    @lyrics = lyrics
  end

  #文字列変換:superクラスのto_sに歌詞を追加
  #
  def to_s
    super + " [#@lyrics]"
  end
end

#SongListクラス 曲の長さを判定する
class SongList
  MAX_TIME = 5*60  #5分以下の曲を選択する。

  def SongList.is_too_long(song)
    return song.duration > MAX_TIME
  end
end

song = Song.new("Bicylops","Fleck",  299) #曲名、奏者、演奏時間分を設定

puts SongList.is_too_long(song).to_s
#if SongList.is_too_long(song)
#puts "5分以上です。"+song1.duration_in_minutes.to_s+"のため、演奏できませ
ん。"
#  else
#  song.play
#  song.play
#end
#  song.duration_in_minutes = 5.5
#  puts song.duration_in_minutes
puts SongList.is_too_long(song)
#if SongList.is_too_long(song)  puts "5分以上で
す。"+song.duration_in_minutes.to_s+"のため、演奏できません。"
#  else
#  song.play
#end

#メイン処理 カラオケ
karaoke = KaraokeSong.new("My Way","Sinatra",255,"And now, the end is
near...")
puts SongList.is_too_ong(karaoke)
#if SongList.is_too_long(karaoke)
#  puts "5分以上です。"+song1.duration_in_minutes.to_s+"のため、演奏できま
せん。"
#else
#  karaoke.play
#end
#puts song.duration_in_minutes
#puts karaoke.inspect
puts SongList.is_too_long(karaoke)
#if SongList.is_too_long(karaoke)
#  puts "5分以上です。"+song1.duration_in_minutes.to_s+"のため、演奏できま
せん。"
#else
#  karaoke.play
#  karaoke.duration_in_minutes = 5.0
#  puts karaoke.duration_in_minutes
#  puts karaoke.to_s
#  karaoke.play
#end
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−



[ruby-list:46144] Re: るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果

by KIMURA Koichi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

木村です。

おそらく、ruby-list 45609 〜 45622 あたりで話題になっているのと同一原因では
なかろうかと思います。

On Fri, 3 Jul 2009 08:59:18 +0900
eiichi_maekawa@... wrote:

> るびま 標準添付ライブラリ紹介 第3回のサンプル実行してみましたが、
>
> 【EUC-JP で表された 'Hello, るびま!'】の実行結果は、
> 2ではなく、5となりました。どちらが、正しいのでしょうか。教えてください。
(略)
> # EUC-JP で表された 'Hello, るびま!'
> str_eucjp     =
> "\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"
>
> puts Kconv.guess(str_eucjp)     # => 2 == Kconv::EUC;;結果は、5となる
>
(略)
> 今使用しているRubyは、
> C:\Apache2.2\htdocs\ruby_prg\em_ruby>ruby -v
> ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
> O/Sは、windows_xpです。

つまり、本来は2とならなければならないはずの判定結果が 5になってしまっている
ということです。

使用する文字列を誤判定しないようなものにすればただしく 2 が返ってきます。

irb(main):016:0> Kconv.guess("\xb5\xfe\xc5\xd4\xb9\xb9\xd4")
=> 2


--
木村浩一



[ruby-list:46153] Re: るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果

by NARUSE, Yui-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

成瀬です。

eiichi_maekawa@... wrote:
> # EUC-JP で表された 'Hello, るびま!'
> str_eucjp     =
> "\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"
>
> puts Kconv.guess(str_eucjp)     # => 2 == Kconv::EUC;;結果は、5となる

1.8.6はバグで5が返ります。
1.8.7や1.9では正しく2が返るはずです。

--
NARUSE, Yui  <naruse@...>


[ruby-list:46165] Re: に関する1.8.6→1.8.7または、1.9へのバージョンアップ

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

前川です。
成瀬さん、ありがとうございます。
助言したがって、1.8.7もしくは、1.9をインストール使用と思いますが、
会社のパソコンのため、関連モジュールをgemを使ってインストール使用としても、
関連モジュールの自動インストールできません。
前回は、ネットで、しらべて、手動で、インストールした次第です。

どなたか、1.8.7もしくは、1.9の対応するgem関連でインストールするモジュール

バージョンを教えてください。
当方が、インストールしているモジュールは、以下です。
O/Sは、windows−xp prifessional Version 2002 Service Pack3 です。

C:\Documents and Settings\M118543>gem list --local

*** LOCAL GEMS ***

actionmailer (1.3.6)
    Service layer for easy email delivery and testing.

actionpack (1.13.6)
    Web-flow and rendering framework putting the VC in MVC.

actionwebservice (1.2.6)
    Web service support for Action Pack.

activerecord (1.15.6)
    Implements the ActiveRecord pattern for ORM.

activesupport (1.4.4)
    Support and utility classes used by the Rails framework.

fxri (0.3.6)
    Graphical interface to the RI documentation, with search engine.

fxruby (1.6.12)
    FXRuby is the Ruby binding to the FOX GUI toolkit.

hpricot (0.6)
    a swift, liberal HTML parser with a fantastic library

log4r (1.0.5)
    Log4r is a comprehensive and flexible logging library for Ruby.

rails (1.2.6)
    Web-application framework with template engine, control-flow layer,
    and ORM.

rake (0.7.3)
    Ruby based make-like utility.

sources (0.0.1)
    This package provides download sources for remote gem installation

win32-api (1.0.4)
    A superior replacement for Win32API

win32-clipboard (0.4.3)
    A package for interacting with the Windows clipboard

win32-dir (0.3.2)
    Extra constants and methods for the Dir class on Windows.

win32-eventlog (0.4.6)
    Interface for the MS Windows Event Log.

win32-file (0.5.4)
    Extra or redefined methods for the File class on Windows.

win32-file-stat (1.2.7)
    A File::Stat class tailored to MS Windows

win32-process (0.5.3)
    Adds fork, wait, wait2, waitpid, waitpid2 and a special kill method

win32-sapi (0.1.4)
    An interface to the MS SAPI (Sound API) library.

win32-sound (0.4.1)
    A library for playing with sound on MS Windows.

windows-api (0.2.0)
    An easier way to create methods using Win32API

windows-pr (0.7.2)
    Windows functions and constants bundled via Win32::API





                                                                           
             "NARUSE, Yui"                                                
             <naruse@...                                            
             p>                                                       宛先
                                        ruby-list@... (ruby      
             2009/07/03 21:31           mailing list)                      
                                                                        cc
                                                                           
             ruby-list@ruby-la                                        件名
                 ng.org へ              [ruby-list:46153] Re: るびま 標準
             返信してください           添付ライブラリ紹介 第3回のサンプ  
                                        ル EUC-JPの結果                  
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           



>成瀬です。

>eiichi_maekawa@... wrote:
>> # EUC-JP で表された 'Hello, るびま!'
>> str_eucjp     =
>> "\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"
>>
>> puts Kconv.guess(str_eucjp)     # => 2 == Kconv::EUC;;結果は、5となる

>1.8.6はバグで5が返ります。
>1.8.7や1.9では正しく2が返るはずです。

--
NARUSE, Yui  <naruse@...>




[ruby-list:46183] 1.8.6から1.8.7または、1.9へのバージョンアップ及びrailsのバージョンアップについて

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

前川です。

[ruby-list:46153] Re: るびま 標準添付ライブラリ紹介 第3回のサンプル
EUC-JPの結果
>eiichi_maekawa@... wrote:
>> # EUC-JP で表された 'Hello, るびま!'
>> str_eucjp     =
>> "\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"
>>
>> puts Kconv.guess(str_eucjp)     # => 2 == Kconv::EUC;;結果は、5となる

>1.8.6はバグで5が返ります。
>1.8.7や1.9では正しく2が返るはずです。

上記を解決するために、1.8.7もしくは、1.9へのバージョンアップを
検討しています。
ついては、以下について、ご教示いただきたく、お願いします。

【1】1.8.6で使用しているgem(rails・win32)関連は、そのままでよいので
しょうか?

【2】だめな場合、1.8.7、1.9で使用するgem関連は、それぞれ、どのバー
ジョンを
   使用(ダウンロード)すればよいでしょうか?
   (会社のパソコンのため、関連モジュールをgemを使ってバージョンアップし
ようと
   としても、関連するサーバへのアクセスは、拒否されるため、直接、
   モジュールをダウンロードし、手動でインストールイする必要があります。)
   今使用しているrails(gem)関連は、ネットで、手動でインストールする方法
を調べて、
   それぞれのモジュールを、手動で、インストールした次第です。
   インストール時にも、railsでは、組み合わせがあり、メッセージに合うバー
ジョンを
   再ダウンロードして、どうにか、インストールできました。


O/Sは、windows−xp prifessional Version 2002 Service Pack3 です。

インストールしているモジュールは、以下です。

C:\Documents and Settings\M118543>ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

C:\Documents and Settings\M118543>gem list --local

*** LOCAL GEMS ***

actionmailer (1.3.6)
    Service layer for easy email delivery and testing.

actionpack (1.13.6)
    Web-flow and rendering framework putting the VC in MVC.

actionwebservice (1.2.6)
    Web service support for Action Pack.

activerecord (1.15.6)
    Implements the ActiveRecord pattern for ORM.

activesupport (1.4.4)
    Support and utility classes used by the Rails framework.

fxri (0.3.6)
    Graphical interface to the RI documentation, with search engine.

fxruby (1.6.12)
    FXRuby is the Ruby binding to the FOX GUI toolkit.

hpricot (0.6)
    a swift, liberal HTML parser with a fantastic library

log4r (1.0.5)
    Log4r is a comprehensive and flexible logging library for Ruby.

rails (1.2.6)
    Web-application framework with template engine, control-flow layer,
    and ORM.

rake (0.7.3)
    Ruby based make-like utility.

sources (0.0.1)
    This package provides download sources for remote gem installation

win32-api (1.0.4)
    A superior replacement for Win32API

win32-clipboard (0.4.3)
    A package for interacting with the Windows clipboard

win32-dir (0.3.2)
    Extra constants and methods for the Dir class on Windows.

win32-eventlog (0.4.6)
    Interface for the MS Windows Event Log.

win32-file (0.5.4)
    Extra or redefined methods for the File class on Windows.

win32-file-stat (1.2.7)
    A File::Stat class tailored to MS Windows

win32-process (0.5.3)
    Adds fork, wait, wait2, waitpid, waitpid2 and a special kill method

win32-sapi (0.1.4)
    An interface to the MS SAPI (Sound API) library.

win32-sound (0.4.1)
    A library for playing with sound on MS Windows.

windows-api (0.2.0)
    An easier way to create methods using Win32API

windows-pr (0.7.2)
    Windows functions and constants bundled via Win32::API



[ruby-list:46189] Ruby MySQL テーブル一覧の取得要領

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

前川です。

MySQLのテーブル名を取得したいのですが、
うまく取れません。

実施したコーディングは、

mydb = Mysql.new('localhost','root','dbkey','ndesign')
res = mydb.query('SHOW TABLES FROM ndesign')

です。resにテーブル名が、入ると想定したものです。

puts res.to_s

を実行すると、
#<Mysql::Result:0x2ea07e8>
と表示されます。

よろしくお願いしします。




[ruby-list:46190] Re: 1.8.6から1.8.7または、1.9へのバージョンアップ及びrailsのバージョンアップについて

by okkez :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

okkez です。

よくわからないなら 1.8.7 を使うといいと思います。
1.9.1 は標準添付以外のライブラリが対応していないことが多いです。

rubygems proxy などのキーワードで検索して結果をよく読むと幸せになれると思います。
gem help install や gem help search なども参考になるでしょう。



--
okkez
okkez000@...


[ruby-list:46191] Re: Ruby MySQL テーブル一覧の取得要領

by okkez :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

okkez です。

2009/07/08 17:47 に <eiichi_maekawa@...> さんは書きました:

> 前川です。
>
> MySQLのテーブル名を取得したいのですが、
> うまく取れません。
>
> 実施したコーディングは、
>
> mydb = Mysql.new('localhost','root','dbkey','ndesign')
> res = mydb.query('SHOW TABLES FROM ndesign')
>
> です。resにテーブル名が、入ると想定したものです。
>
> puts res.to_s
>
> を実行すると、
> #<Mysql::Result:0x2ea07e8>
> と表示されます。
>
> よろしくお願いします。
>

テーブル名 (が格納されているオブジェクト) を取れていると思います。
ちゃんとマニュアルを読んでください。



--
okkez
okkez000@...


[ruby-list:46193] Re: Ruby MySQL テーブル一覧の取得要領

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


MySQLが返すobjectをどうすれば、解析できるでしょうか?
取得したobjectは、どうすれば、解析できるでしょうか?
マニュアルは、どこを読めばよいでしょうか?
ヒントをお願いします。
objectでサーチしても、わかりませんでした。
(objectに関する説明が書かれていましたが・・、
 私の探し方が悪いと思います。)

SELECT * FROM テーブル名 でデータを取得した場合は、

res = mydb.query('SELECT * from elist')
puts res.to_s
#結果確認
res.each do |row|
  puts row.to_s
end

で、確認できたのですが・・・
よろしくお願いします。

okkez <okkez000@...> wrote on 2009/07/08 18:03:28:

> okkez です。

> 2009/07/08 17:47 に <eiichi_maekawa@...> さんは書きました:
> > 前川です。
> >
> > MySQLのテーブル名を取得したいのですが、
> > うまく取れません。
> >
> > 実施したコーディングは、
> >
> > mydb = Mysql.new('localhost','root','dbkey','ndesign')
> > res = mydb.query('SHOW TABLES FROM ndesign')
> >
> > です。resにテーブル名が、入ると想定したものです。
> >
> > puts res.to_s
> >
> > を実行すると、
> > #<Mysql::Result:0x2ea07e8>
> > と表示されます。
> >
> > よろしくお願いします。
> >

> テーブル名 (が格納されているオブジェクト) を取れていると思います。
> ちゃんとマニュアルを読んでください。

>
> --
> okkez
> okkez000@...



[ruby-list:46194] Re: Ruby MySQL テーブル一覧の取得要領

by Shima Shizuo :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

こんにちは、嶋です。

Mysql#list_tables というメソッドがあるようですね。
メソッド名からおそらく show tables の結果が返ってきそうな気がし
ます。

----
Shima Shizuo  r6@...



[ruby-list:46195] Re: 1.8.6から1.8.7または、1.9へのバージョンアップ及びrailsのバージョンアップについて・

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

前川です。

okkezさん、ありがとうございました。

試してみましたが、結果は、以下でした。

C:\ruby\lib\ruby\gems\1.8>set http_proxy=http://プロキシサーバ名:ポート番号

C:\ruby\lib\ruby\gems\1.8>gem update rails -y
Updating installed gems...
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    getaddrinfo: no address associated with hostname.(SocketError)

エラーから類推すると、直接、外部のサーバへのアクセスは、
禁止しているようです。
(会社のシステムなので、ガチガチにガードしているようです。)
1.8.7にアップした後、確認し、だめな場合は、個別対応ですね・・・

1.8.6で使用しているrailsは、1.8.7でも、問題なく使用できるか、
どなたか、教えていただけませんか?
よろしくお願いします。

Rubyを始めて、1ヶ月足らずです。
皆さんのご協力、よろしくお願いします。

> okkez です。

> よくわからないなら 1.8.7 を使うといいと思います。
> 1.9.1 は標準添付以外のライブラリが対応していないことが多いです。

> rubygems proxy などのキーワードで検索して結果をよく読むと幸せになれる
> と思います。
> gem help install や gem help search なども参考になるでしょう。

>
> --
> okkez
> okkez000@...



[ruby-list:46196] Re: Ruby MySQL テーブル一覧の取得要領

by OZAWA Sakuro-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

さくです。

2009/07/09 7:52 に <eiichi_maekawa@...> さんは書きました:

> MySQLが返すobjectをどうすれば、解析できるでしょうか?
> 取得したobjectは、どうすれば、解析できるでしょうか?
> マニュアルは、どこを読めばよいでしょうか?

>実行すると、
>#<Mysql::Result:0x2ea07e8>

とあるようにMysql#queryメソッドが Mysql::Result オブジェクトを返すので、
http://www.tmtm.org/mysql/ruby/ の該当クラスの説明を読みます。
fetch_ で始まるメソッドや each, each_hash を使えますね。


Mysql::Resultは each を実装しているので、
res = mysql.query('show tables')
res.extend Enumerable
table_names = res.map {|row| row[0] }
とするのがRuby風なのかもしれませんが、嶋さんがお書きの list_tables が簡便ですね。

--
OZAWA Sakuro


[ruby-list:46197] Re: Ruby MySQL テーブル一覧の取得要領・Re: ruby-list:46194

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

嶋さん、ありがとうございました。

mysql.rbには、

  def list_tables(table=nil)
    real_query "show tables #{table}"
    @status = :STATUS_READY
    read_rows(1).flatten
  end

とありましたので、

mydb = Mysql.db_connect('localhost','root','dbkey','ndesign')
res = mydb.list_tables()
resData = res.flatten
puts resData

で、テーブル名が、とれていることが、確認できました。

flattenというメソッドは、初めてです。

まったく、知らないことばかりです。

Shima Shizuo <r6@...> wrote on 2009/07/09 08:37:24:

> こんにちは、嶋です。

> Mysql#list_tables というメソッドがあるようですね。
> メソッド名からおそらく show tables の結果が返ってきそうな気がし
> ます。

> ----
> Shima Shizuo  r6@...



[ruby-list:46198] Re: Ruby MySQL テーブル一覧の取得要領:ruby-list:46196

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

前川です。

さくさん、ありがとうございます。

> http://www.tmtm.org/mysql/ruby/ の該当クラスの説明を読みます。

MySQL/Rubyは、参考にさせていただきます。
いろんなところに、Rubyに関するいろんなマニュアルがあるんですね。

下記は、今後のMySQL関連作成の参考にさせていただきます。
> fetch_ で始まるメソッドや each, each_hash を使えますね。
> res = mysql.query('show tables')
> res.extend Enumerable
> table_names = res.map {|row| row[0] }







[ruby-list:46199] Re: 1.8.6から1.8.7または、1.9へのバージョンアップ及びrailsのバージョンアップについて・

by okkez :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

okkez です。

2009/07/09 8:56 に <eiichi_maekawa@...> さんは書きました:

> 前川です。
>
> okkezさん、ありがとうございました。
>
> 試してみましたが、結果は、以下でした。
>
> C:\ruby\lib\ruby\gems\1.8>set http_proxy=http://プロキシサーバ名:ポート番号
>
> C:\ruby\lib\ruby\gems\1.8>gem update rails -y
> Updating installed gems...
> ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
>    getaddrinfo: no address associated with hostname.(SocketError)
>
> エラーから類推すると、直接、外部のサーバへのアクセスは、
> 禁止しているようです。
> (会社のシステムなので、ガチガチにガードしているようです。)

どう推測したのか知りませんが、単純に名前解決出来てないだけでしょう。
本当に gem help install は読まれましたか?

-p, --[no-]http-proxy [URL]      Use HTTP proxy for remote operations

上記のようにそのものズバリのオプションがあるのですが。
あと、会社のプロキシサーバなら認証がかかっていることが多いのでその対応も必要になります。
# それは調べられますよね?

gem を使おうとしている環境と、個別に gem をダウンロードしている環境は別ですか?
同じなら上記のオプションが役に立つと思います。
別なら、楽するのはちょっと難しいかもしれません。

> 1.8.7にアップした後、確認し、だめな場合は、個別対応ですね・・・
>
> 1.8.6で使用しているrailsは、1.8.7でも、問題なく使用できるか、
> どなたか、教えていただけませんか?
> よろしくお願いします。

Rails 2.3.2 なら Ruby 1.8.7 で使ってます。

>
> Rubyを始めて、1ヶ月足らずです。
> 皆さんのごご協力、よろしくお願いします。

始めたばかりで色々と不安なのはわかりますが、メーリングリストはサポートセンターではありません。
今は、色々と書籍や web 上の情報も充実しているのでそれらを調べてみてください。

また、以下のようなところもあるので読んでみるといいのではないでしょうか。

技術系メーリングリストで質問するときのパターン・ランゲージ
http://www.hyuki.com/writing/techask.html

--
okkez
okkez000@...


[ruby-list:46200] Rubyバージョン・Railsについて・ruby-list:46199

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

前川です。

> 始めたばかりで色々と不安なのはわかりますが、メーリングリストはサポー
> トセンターではありません。
> 今は、色々と書籍や web 上の情報も充実しているのでそれらを調べてみてくださ
い。

システムに使うための手段を、早期に解決するため、
メーリングリストを活用させて貰ってます。
必要としている機能は、ブラウザ(CGI)、データベース操作(MySQL)です。
アセンブラ→basic→c→fortran→c#と関わってきましたが、
オブジェクト思考の考えには、いまひとつなじめていません
(理解できていません)

また、プログラミング Ruby 第2版 言語編、ライブラリ編、
Rubyアプリケーションプログラミングを持っていますが、
知りたいことが、簡単につかめないため、毎日、本との戦いです。

> 技術系メーリングリストで質問するときのパターン・ランゲージ
> http://www.hyuki.com/writing/techask.html
読みました。真摯に受け止め、今後、注意します。


> どう推測したのか知りませんが、単純に名前解決出来てないだけでしょう。
> 本当に gem help install は読まれましたか?
> -p, --[no-]http-proxy [URL]      Use HTTP proxy for remote operations

ご教示いただいた"gem help installを参考に"とのコメントも、誤解し、
インターネットで調べる始末です。
今後は、メーリングリストに出す前に、もっと、調べるようにします。
記載のコマンドは、インターネットで、windows版Rubyでのrails関連記事で
見つけました。

> Rails 2.3.2 なら Ruby 1.8.7 で使ってます。
私が設定したバージョンは、Ruby:1.8.6 rails;1.2.6です。
すべて、インターネットで調べて、設定方法が記載されている
バージョンを選択しています。

質問です。
1.Rails 記載のOptionの具体的な使用例を参照できる資料はないでしょうか?

2.RailsのOptionコマンドの記述例
> -p, --[no-]http-proxy [URL]      Use HTTP proxy for remote operations

コマンドに展開する場合は、
[no-]・・12345;IPポート番号 8080等
http-proxy・・abc.def.efg.co;;プロキシサーバ名
[URL]・・http://abc.def.efg.co
とすれば、

dos>gem update -p , --[12345]abc.def.efg.co [http://abc.def.efg.co]

でしょうか?






> >
> > Rubyを始めて、1ヶ月足らずです。
> > 皆さんのご協力、よろしくお願いします。


> また、以下のようなところもあるので読んでみるといいのではないでしょうか。


> --
> okkez
> okkez000@...



[ruby-list:46201] Re: Rubyバージョン・Railsについて・ruby-list:46199

by "(株)ネットフォレスト 植田裕之" :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

植田と申します。


> 前川です。
;
> システムに使うための手段を、早期に解決するため、
> メーリングリストを活用させて貰ってます。
> 必要としている機能は、ブラウザ(CGI)、データベース操作(MySQL)です。
> アセンブラ→basic→c→fortran→c#と関わってきましたが、
> オブジェクト思考の考えには、いまひとつなじめていません
> (理解できていません)

 業務で必要なので早急に解が欲しいのかもしれませんが、一つのリソースで全
部の問題を解決するのは難しいと思います。


 たとえば Rails に関しては、このメーリングリストよりも RoR 日本語メーリ
ングリスト の方が詳しい方が多いかもしれません。加入方法や過去のアーカイ
ブは以下の URL からどうぞ。

        Rails' Wiki
        http://wiki.fdiary.net/rails/


> 質問です。
> 1.Rails 記載のOptionの具体的な使用例を参照できる資料はないでしょうか?
>
> 2.RailsのOptionコマンドの記述例
> > -p, --[no-]http-proxy [URL]      Use HTTP proxy for remote operations
>
> コマンドに展開する場合は、
> [no-]・・12345;IPポート番号 8080等
> http-proxy・・abc.def.efg.co;;プロキシサーバ名
> [URL]・・http://abc.def.efg.co
> とすれば、
>
> dos>gem update -p , --[12345]abc.def.efg.co [http://abc.def.efg.co]
>
> でしょうか?

 今時は質問する前に先ずはググってみるものです。"gem update -p" で検索し
てみた結果は以下の URL ですが、一番最初にヒットした内容がそれっぽいと思
います。

        http://www.google.co.jp/search?q=%22gem+update+-p%22&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a


 あと Ruby on Rails を使うのなら、ruby の本だけではなく rails の本も一
冊くらいは買って置いた方が良いですし、一冊くらい通読した方が良いです。
Amazon で rails をキーワードに探すと結構な数がヒットしますので、書店で手
にとってみてはいかがですか?

        http://www.amazon.co.jp/s/ref=nb_ss_gw?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Daps&field-keywords=rails&x=0&y=0


 ネットや ML でバラバラに知識を得ても集約するのは大変です。遠回りに思う
かもしれませんが、書籍一冊を通読してから質問する方が遙かに効率的だと私は
思います。


-----
株式会社ネットフォレスト            http://www.netforest.ad.jp/
Dr.Web/Vade Retro 担当 植田 裕之   ueda@...
tel:045-663-6277 fax:045-663-6278



[ruby-list:46202] Re: Rubyバージョン・Railsについて・ruby-list:46199

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

前川です。
ありがとうございました。
いろいろ、試してみます。
"(株)ネットフォレスト 植田裕之" <ueda@...> wrote on 2009/07/09
14:45:44:

> 植田と申します。

>
> > 前川です。
> ;
> > システムに使うための手段を、早期に解決するため、
> > メーリングリストを活用させて貰ってます。
> > 必要としている機能は、ブラウザ(CGI)、データベース操作(MySQL)です。
> > アセンブラ→basic→c→fortran→c#と関わってきましたが、
> > オブジェクト思考の考えには、いまひとつなじめていません
> > (理解できていません)

> 業務で必要なので早急に解が欲しいのかもしれませんが、一つのリソースで全
> 部の問題を解決するのは難しいと思います。

>
> たとえば Rails に関しては、このメーリングリストよりも RoR 日本語メーリ
> ングリスト の方が詳しい方が多いかもしれません。加入方法や過去のアーカイ
> ブは以下の URL からどうぞ。

> Rails' Wiki
> http://wiki.fdiary.net/rails/
>
> > 質問です。
> > 1.Rails 記載のOptionの具体的な使用例を参照できる資料はないでしょう
か?

> >
> > 2.RailsのOptionコマンドの記述例
> > > -p, --[no-]http-proxy [URL]      Use HTTP proxy for remote operations
> >
> > コマンドに展開する場合は、
> > [no-]・・12345;IPポート番号 8080等
> > http-proxy・・abc.def.efg.co;;プロキシサーバ名
> > [URL]・・http://abc.def.efg.co
> > とすれば、
> >
> > dos>gem update -p , --[12345]abc.def.efg.co [http://abc.def.efg.co]
> >
> > でしょうか?

> 今時は質問する前に先ずはググってみるものです。"gem update -p" で検索し
> てみた結果は以下の URL ですが、一番最初にヒットした内容がそれっぽいと思
> います。

> http://www.google.co.jp/search?q=%22gem+update+-p%
> 22&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:
> official&client=firefox-a

>
> あと Ruby on Rails を使うのなら、ruby の本だけではなく rails の本も一
> 冊くらいは買って置いた方が良いですし、一冊くらい通読した方が良いです。
> Amazon で rails をキーワードに探すと結構な数がヒットしますので、書店で手
> にとってみてはいかがですか?

> http://www.amazon.co.jp/s/ref=nb_ss_gw?__mk_ja_JP=%83J%83%5E%83J%
> 83i&url=search-alias%3Daps&field-keywords=rails&x=0&y=0

>
> ネットや ML でバラバラに知識を得ても集約するのは大変です。遠回りに思う
> かもしれませんが、書籍一冊を通読してから質問する方が遙かに効率的だと私は
> 思います。

>
> -----
> 株式会社ネットフォレスト            http://www.netforest.ad.jp/
> Dr.Web/Vade Retro 担当 植田 裕之   ueda@...
> tel:045-663-6277 fax:045-663-6278



[ruby-list:46213] るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果:ruby-list:46153

by 前川 映一 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

マエカワです。

成瀬さんのコメントに従い、rubyのバージョンを1.8.7にして、再度確認しました。

C:\>ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]

結果は、

"\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"は、ruby1.8.7
でも
5となりました。

"\xb5\xfe\xc5\xd4\xb9\xb9\xd4"では、正しい2となりました。

1.8.7でも、コードが混在(\x2c、\x20等)した場合は、正しい結果を返せない??

Kconv.guessを使用する場合は、注意が、必要ですね。



> 成瀬です。

> eiichi_maekawa@... wrote:
> > # EUC-JP で表された 'Hello, るびま!'
> > str_eucjp     =
> > "\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"
> >
> > puts Kconv.guess(str_eucjp)     # => 2 == Kconv::EUC;;結果は、5となる

> 1.8.6はバグで5が返ります。
> 1.8.7や1.9では正しく2が返るはずです。

> --
> NARUSE, Yui  <naruse@...>



[ruby-list:46252] Re: るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果:ruby-list:46153

by とみたまさひろ :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

とみたです。

On Thu, 16 Jul 2009 14:06:41 +0900
eiichi_maekawa@... wrote:

> 成瀬さんのコメントに従い、rubyのバージョンを1.8.7にして、再度確認しました。
>
> C:\>ruby -v
> ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]
>
> 結果は、
>
> "\x48\x65\x6c\x6c\x6f\x2c\x20\xa4\xeb\xa4\xd3\xa4\xde\xa1\xaa"は、ruby1.8.7
> でも
> 5となりました。

最新の 1.8.7-p174 で試すと 2 となります。

--
とみたまさひろ <tommy@...>
3469 42CC 4D32 F53C AD98  65A5 8C37 FF09 69C1 6040

< Prev | 1 - 2 - 3 - 4 | Next >