[ruby-list:50336] [質問] require error?

From: <yamataka@...08.itscom.net>
Date: 2016-06-23 04:25:57 UTC
List: ruby-list #50336
山口と申します。

gem easy_upnp 
easy_upnp: https://github.com/sidoh/easy_upnp
のサンプルプログラムを実行すると、
`<class:HttpListener>': uninitialized constant EasyUpnp::OptionsBase (
NameError)
や
require error
が出るのですが、対処方法が分からずに困っております。
何か解決方法があれば、ご教示いただけますでしょうか?

[環境]
Windows 8.1 cygwin
~$ uname -a
CYGWIN_NT-6.3 JPC20165182 2.5.1(0.297/5/3) 2016-04-21 22:14 x86_64 
Cygwin
~$ ruby --version
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-cygwin]
~$ gem list easy_upnp
*** LOCAL GEMS ***
easy_upnp (1.1.8)

の環境で、

easy_upnp: https://github.com/sidoh/easy_upnp
中の Sample code (下記)を実行すると、

~$ cat easy_upnp.rb
#! /bin/ruby

require 'easy_upnp/ssdp_searcher'

searcher = EasyUpnp::SsdpSearcher.new
devices = searcher.search 'ssdp:all'

を実行すると

~$ ./easy_upnp.rb
/cygdrive/c/yama/.gem/ruby/gems/easy_upnp-1.1.8/lib/easy_upnp/events/
http_listener.rb:8:in `<class:HttpListener>': uninitialized constant 
EasyUpnp::OptionsBase (NameError)
        from /cygdrive/c/yama/.gem/ruby/gems/easy_upnp-1.1.8/lib/easy_
upnp/events/http_listener.rb:7:in `<module:EasyUpnp>'
        from /cygdrive/c/yama/.gem/ruby/gems/easy_upnp-1.1.8/lib/easy_
upnp/events/http_listener.rb:6:in `<top (required)>'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:
in `require'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:
in `require'
        from /cygdrive/c/yama/.gem/ruby/gems/easy_upnp-1.1.8/lib/easy_
upnp/control_point/device_control_point.rb:10:in `<top (required)>'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:
in `require'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:
in `require'
        from /cygdrive/c/yama/.gem/ruby/gems/easy_upnp-1.1.8/lib/easy_
upnp/upnp_device.rb:6:in `<top (required)>'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:
in `require'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:54:
in `require'
        from /cygdrive/c/yama/.gem/ruby/gems/easy_upnp-1.1.8/lib/easy_
upnp/ssdp_searcher.rb:5:in `<top (required)>'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:128:
in `require'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:128:
in `rescue in require'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:39:
in `require'
        from ./easy_upnp.rb:3:in `<main>'

とエラーになり、実行できません。

該当部分は下記になります。

$ head /cygdrive/c/yama/.gem/ruby/gems/easy_upnp-1.1.8/lib/easy_upnp/
events/http_listener.rb
require 'webrick'
require 'thread'

require 'easy_upnp/events/event_parser'

module EasyUpnp
  class HttpListener
    class Options < EasyUpnp::OptionsBase
      DEFAULTS = {
        # Port to listen on. Default value "0" will cause OS to choose a 
random

エラー表示の下部の
"kernel_require.rb:39:in `require'
を Googleで検索すると、
https://teratail.com/questions/9857
に当たり、easy_upnpは、nokogiri を使用しており、同じ症状かなと推測してい
ますが...




In This Thread

Prev Next