
【Ruby】NokogiriでHTMLを正しく切り詰める方法
NokogiriはRubyでHTML/XMLを解析するためのライブラリです。 Railsアプリケーションの場合、自分で使っていなくて、使用しているGemのどれかが依存している場合があり、自動的にインストールする羽目になったという方も多いかもしれません。 ...
NokogiriはRubyでHTML/XMLを解析するためのライブラリです。 Railsアプリケーションの場合、自分で使っていなくて、使用しているGemのどれかが依存している場合があり、自動的にインストールする羽目になったという方も多いかもしれません。 ...
macOS Big SurのMacPorts環境で、rbenv(手動インストールした)を利用してRubyがビルドできなくなっている事に気がつきました。 例えば以下のコマンドを実行すると、最終的に「BUILD FAILED」と表示されインストールできないのです。 $ RUBY_CONFIGURE_OPTS="--with-openssl-dir=/opt/local --with-readline-dir=/opt/local" rbenv install 2.7.5 Downloading ruby-2.7.5.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.5.tar.bz2 Installing ruby-2.7.5... BUILD FAILED (macOS 11.6.1 using ruby-build 20211203) RUBY_CONFIGURE_OPTSはこれまでも指定していたのでこれは問題ないはずです…。 ...
RubyでWebスクレイピングする際に便利なライブラリ「Nokogiri」は、別に自分で直接使用しなくてもHTML/Web関連のライブラリ(gem)を使用すると、芋づる式にインストールされる事が多いライブラリでもあります。 しかしこのNokogiriのビルドは難易度が高く、すんなりビルドできない場合が多いことでも有名です。いわゆるPure Rubyで作られておらず、外部ライブラリを使用しているためかもしれませんが、OSやライブラリの環境変化によってビルドに失敗することが多いのです。 ...
最近やたら作成していたRuby小物ツールを整理することにしました。 RubyGems.orgで公開しているgemを削除するのは少し面倒で、公開している全バージョンを一つ一つyankしていく必要がある模様です。これには以下のコマンドをターミナルから実行します。 gem yank GEM名 -v バージョン名 全てのバージョンを削除すればそのgem自体が削除されます。ついでにGitHubで公開していたソースコードのリポジトリも削除すれば完了です。 ...
ActiveScriptRubyでRuby/MySQL(pure rubyのほう)を使ってMySQLデータベースに接続しようとしたのですが、エラーが発生して接続できませんでした。 C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql/protocol.rb:212:in `initialize': uninitialized constant Mysql::Protocol::UNIXSocket (NameError) from C:/Program Files/ruby-1.8/lib/ruby/1.8/timeout.rb:53:in `timeout' from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql/protocol.rb:209:in `initialize' from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql.rb:110:in `new' from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql.rb:110:in `connect' from C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-mysql-2.9.2/lib/mysql.rb:42:in `new' from dbselect.rb:4 RubyGemsを使って入れたのでバージョン不整合?などと疑い、いろいろ調べてみたのですが、接続時のホスト名を”localhost”→”127.0.0.1″に修正したら大丈夫になりました。海外のフォーラム情報によるとWindowsでもUNIXSocketを使おうとするRuby/MYSQLのバグらしいです(Error: uninitialized constant Mysql::Protocol::UNIXSocket | keyongtech) ...