映画のエンドロール観る派?観ない派?

Ruby1.8で「moji」を使ってプログラムを利用したのですが、
Ruby2.0になると、使えなくなりました。
代わりのものはありますか。
親切な方に教えて下さいませんか。
宜しくお願いします。

#!/usr/bin/env ruby
$KCODE= "UTF8"
require 'moji'

while gets
  $_.chomp!

  f = $_.split(/\t/)
  word = f[1]

  if word == "eps"
    puts "#{f[0]}\t#{word}\t#{f[2]}\t#{f[3]}\t#{f[4]}"
  else
    if word =~ /:/
      tmp = word.split(/:/)
      wout = tmp[0]
      if wout =~ /^#{Moji.alnum}+$/
        wout = Moji.zen_to_han(wout)
        if wout == "" or wout =~ /\s/
          wout = word
        end
      end
      puts "#{f[0]}\t#{wout}\t#{f[2]}\t#{f[3]}\t#{f[4]}"
    else
      puts "#{f[0]}\t#{word}\t#{f[2]}\t#{f[3]}\t#{f[4]}"
    end
  end
end

A 回答 (6件)

>ERROR: Loading command: install (LoadError)


>cannot load such file -- openssl
以下のサイトによれば
http://itmemo.net-luck.com/linux-centos-rails-in …

opensslがないためにこのエラーが発生しているようなことがかいてありますね。
openssl-develとzlibもさらに必要になるかもしれませんが・・・・
OSがcentosの話なので、参考程度ですが・・・
私もCygwinの環境は持っていないので、この回答は正確な情報ではありません、ごめんなさい。
    • good
    • 0

>Ruby1.8 / Ruby1.9 は moji がインストールできましたが、Ruby2.0 からはインストールできません。



この意味がよくわかりません。
Ruby2.0  の環境では、どのようにインストールされたのですか?

こちらの環境では、 gem install moji でインストールできました。
Cygwinの環境ではやったことがないのでわかりませんが、
sudo gem install moji または
gem install moji
でインストール出来ませんでしょうか?
    • good
    • 0
この回答へのお礼

そうですね、こちらがどうもインストールできません。
sudo gem install moji
ERROR: Loading command: install (LoadError)
cannot load such file -- openssl
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
意味がよくわからないが、もしかして、プロキシティーのせいかな……

お礼日時:2016/08/04 15:23

`require': cannot load such file -- moji (LoadError)


は、moji がないといっています。
mojiはインストールされていますか。標準のruby 2.xにはインストールされていません。
自前でのインストールが必要です。
    • good
    • 0
この回答へのお礼

Ruby1.8 / Ruby1.9 は moji がインストールできましたが、Ruby2.0 からはインストールできません。
moji 関連のリンクは次です。
 http://gimite.net/gimite/rubymess/moji.html
 https://github.com/gimite/moji/blob/master/lib/m …

Moji の利用を続けられるか、或いは書き直すか、よくわからないのです。

お礼日時:2016/08/04 14:28

#2です。


coding:utf-8
ではありません。
#coding:utf-8
です。(先頭に#をかならずつけてください)
    • good
    • 0
この回答へのお礼

ごめん、ここで記入し忘れました。
第二行を #coding:utf-8 にしました。できませんでした。
/usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- moji (LoadError)
from /usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from ./zen2han,cnet.rb:3:in `<main>'

オリジナルのプログラムは:
#!/usr/bin/env ruby
#coding:utf-8
require 'moji'

while gets
  $_.chomp!

  f = $_.split(/\t/)
  word = f[1]

  if word == "eps"
    puts "#{f[0]}\t#{word}\t#{f[2]}\t#{f[3]}\t#{f[4]}"
  else
    if word =~ /:/
      tmp = word.split(/:/)
      wout = tmp[0]

      if wout =~ /^#{Moji.alnum}+$/
        wout = Moji.zen_to_han(wout)
        if wout == "" or wout =~ /\s/
          wout = word
        end
      end

      puts "#{f[0]}\t#{wout}\t#{f[2]}\t#{f[3]}\t#{f[4]}"
    else
      puts "#{f[0]}\t#{word}\t#{f[2]}\t#{f[3]}\t#{f[4]}"
    end
  end
end

お礼日時:2016/08/04 13:57

#1です。


>本質門の要点は:日本語文字種変換モジュール「moji」を使えないですか。
>よろしくお願いします。
#1の回答でも、回答しましたが、「使えます」が回答になります。(ruby 2.3.1で確認済みの旨回答)
但し、$KCODEはRuby 2.xでは使えないので、この提示されたスクリプトを使う場合は、
2行目を#coding:utf-8にして使ってください。(必ず、2行目にしてください。ほかの行では効きません)
という意味です。
    • good
    • 0
この回答へのお礼

こちらの実行環境は:Cygwin + Ruby 2.0
ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [x86_64-linux]

このようなプログラムの名前は:zen2han.rb 。次のように書き直しました。実行後に:
./zen2han.rb:2:in `<main>': undefined method `-' for :utf:Symbol (NoMethodError)


#!/usr/bin/env ruby
coding:utf-8
require 'moji'

while gets
  $_.chomp!

  f = $_.split(/\t/)
  word = f[1]

  if word == "eps"
    puts "#{f[0]}\t#{word}\t#{f[2]}\t#{f[3]}\t#{f[4]}"
  else
    if word =~ /:/
      tmp = word.split(/:/)
      wout = tmp[0]

      if wout =~ /^#{Moji.alnum}+$/
        wout = Moji.zen_to_han(wout)
        if wout == "" or wout =~ /\s/
          wout = word
        end
      end

      puts "#{f[0]}\t#{wout}\t#{f[2]}\t#{f[3]}\t#{f[4]}"
    else
      puts "#{f[0]}\t#{word}\t#{f[2]}\t#{f[3]}\t#{f[4]}"
    end
  end
end

お礼日時:2016/08/04 09:48

こちらの環境では、使用出来ました。


Windows7 ruby 2.3.1p112 (2016-04-26 revision 54768) [i386-mingw32]
で確認しました。
ただし、ruby 2.xで使用する場合、以下のようにしてください。
2行目の
$KCODE= "UTF8"

#coding:utf-8
に変えてください。
ruby 1.9以上では、漢字コードの指定を$KCODEでは行いません。
代わりに #coding:utf-8 のように指定します。
    • good
    • 0
この回答へのお礼

ご回答して頂き、有難うございます。
Ruby2.x 以後、$KCODE= "UTF8" の行は使わなくなりました。

本質門の要点は:日本語文字種変換モジュール「moji」を使えないですか。
よろしくお願いします。

お礼日時:2016/08/03 17:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報