Dor Kalev
2006-Jun-23 15:43 UTC
[Rails] rubyful_soup works fine as an RB file but bugs in Rails
This is the code:
1 require ''rubyful_soup''
2 require ''open-uri''
3
4 url = "http://www.google.com/search?q=ruby"
5 open(url) {
6 |page| page_content = page.read()
7 soup = BeautifulSoup.new(page_content)
8 result = soup.find_all(''a'', :attrs =>
{''class'' => ''l''})
9 result.each { |tag| puts tag[''href''] }
10 }
it works fine when i ran it: ruby rfs.rb
but when i wrap it with <%%> and try launching it in Rails, the
following occours:
TypeError in Articles#meca
Showing app/views/articles/meca.rhtml where line #2 raised:
superclass mismatch for class StackingParser
Extracted source (around line #2):
1: <%
2: require ''rubyful_soup''
3: require ''open-uri''
4:
5: url = "http://www.google.com/search?q=ruby"
RAILS_ROOT: /app/sites/exe/ifeel/public/../config/..
Application Trace | Framework Trace | Full Trace
/usr/lib64/ruby/gems/1.8/gems/htmltools-1.09/lib/html/stparser.rb:11
/usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:21:in `require''
#{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`require''
/usr/lib64/ruby/gems/1.8/gems/htmltools-1.09/lib/html/tree.rb:16
/usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:21:in `require''
#{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`require''
/usr/lib64/site_ruby/1.8/rubygems.rb:182:in `activate''
/usr/lib64/site_ruby/1.8/rubygems.rb:181:in `activate''
/usr/lib64/site_ruby/1.8/rubygems.rb:167:in `activate''
/usr/lib64/site_ruby/1.8/rubygems.rb:166:in `activate''
/usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:26:in `require''
#{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`require''
#{RAILS_ROOT}/app/views/articles/meca.rhtml:2:in
`_run_rhtml_articles_meca''
/usr/lib64/ruby/gems/1.8/gems/htmltools-1.09/lib/html/stparser.rb:11
/usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:21:in `require''
#{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`require''
/usr/lib64/ruby/gems/1.8/gems/htmltools-1.09/lib/html/tree.rb:16
/usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:21:in `require''
#{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`require''
/usr/lib64/site_ruby/1.8/rubygems.rb:182:in `activate''
/usr/lib64/site_ruby/1.8/rubygems.rb:181:in `activate''
/usr/lib64/site_ruby/1.8/rubygems.rb:167:in `activate''
/usr/lib64/site_ruby/1.8/rubygems.rb:166:in `activate''
/usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:26:in `require''
#{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`require''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb:314:in
`compile_and_render_template''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb:290:in
`render_template''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb:249:in
`render_file''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:699:in
`render_file''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:621:in
`render_with_no_layout''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/layout.rb:243:in
`render_without_benchmark''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:53:in
`render''
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:53:in
`render''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:911:in
`perform_action_without_filters''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:368:in
`perform_action_without_benchmark''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:69:in
`perform_action_without_rescue''
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:69:in
`perform_action_without_rescue''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/rescue.rb:82:in
`perform_action''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:381:in
`process_without_filters''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:377:in
`process_without_session_management_support''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/session_management.rb:117:in
`process''
#{RAILS_ROOT}/vendor/rails/railties/lib/dispatcher.rb:38:in `dispatch''
/app/sites/exe/ifeel/public/dispatch.cgi:10
/usr/lib64/ruby/gems/1.8/gems/htmltools-1.09/lib/html/stparser.rb:11
/usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:21:in `require''
#{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`require''
/usr/lib64/ruby/gems/1.8/gems/htmltools-1.09/lib/html/tree.rb:16
/usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:21:in `require''
#{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`require''
/usr/lib64/site_ruby/1.8/rubygems.rb:182:in `activate''
/usr/lib64/site_ruby/1.8/rubygems.rb:181:in `activate''
/usr/lib64/site_ruby/1.8/rubygems.rb:167:in `activate''
/usr/lib64/site_ruby/1.8/rubygems.rb:166:in `activate''
/usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:26:in `require''
#{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in
`require''
#{RAILS_ROOT}/app/views/articles/meca.rhtml:2:in
`_run_rhtml_articles_meca''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb:314:in
`compile_and_render_template''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb:290:in
`render_template''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_view/base.rb:249:in
`render_file''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:699:in
`render_file''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:621:in
`render_with_no_layout''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/layout.rb:243:in
`render_without_benchmark''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:53:in
`render''
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:53:in
`render''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:911:in
`perform_action_without_filters''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:368:in
`perform_action_without_benchmark''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:69:in
`perform_action_without_rescue''
/usr/lib/ruby/1.8/benchmark.rb:293:in `measure''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/benchmarking.rb:69:in
`perform_action_without_rescue''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/rescue.rb:82:in
`perform_action''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/base.rb:381:in
`process_without_filters''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/filters.rb:377:in
`process_without_session_management_support''
#{RAILS_ROOT}/vendor/rails/actionpack/lib/action_controller/session_management.rb:117:in
`process''
#{RAILS_ROOT}/vendor/rails/railties/lib/dispatcher.rb:38:in `dispatch''
/app/sites/exe/ifeel/public/dispatch.cgi:10
Request
Parameters: None
Show session dump
---
flash: !map:ActionController::Flash::FlashHash {}
Response
Headers: {"cookie"=>[],
"Cache-Control"=>"no-cache"}
Loaded suite /app/sites/exe/ifeel/public/dispatch.cgi Started Finished
in 0.000248 seconds. 0 tests, 0 assertions, 0 failures, 0 errors
--
Posted via http://www.ruby-forum.com/.
Dor Kalev
2006-Jun-23 16:35 UTC
[Rails] Re: rubyful_soup works fine as an RB file but bugs in Rails
Okay, it was beacuse Mechanize (already installed) and Rubyful_soup both use the StackingParser name for their classes (probably include some mutual library for parsing). The simple short-term way to solve this enigma is by ''gem uninstall mechanize''. ;-) Dor Kalev wrote:> This is the code: > > 1 require ''rubyful_soup'' > 2 require ''open-uri'' > 3 > 4 url = "http://www.google.com/search?q=ruby" > 5 open(url) { > 6 |page| page_content = page.read() > 7 soup = BeautifulSoup.new(page_content) > 8 result = soup.find_all(''a'', :attrs => {''class'' => ''l''}) > 9 result.each { |tag| puts tag[''href''] } > 10 } > > it works fine when i ran it: ruby rfs.rb > but when i wrap it with <%%> and try launching it in Rails, the > following occours: > > TypeError in Articles#meca > > Showing app/views/articles/meca.rhtml where line #2 raised: > > superclass mismatch for class StackingParser > > Extracted source (around line #2): > > 1: <% > 2: require ''rubyful_soup'' > 3: require ''open-uri'' > 4: > 5: url = "http://www.google.com/search?q=ruby" > > RAILS_ROOT: /app/sites/exe/ifeel/public/../config/.. > Application Trace | Framework Trace | Full Trace > > /usr/lib64/ruby/gems/1.8/gems/htmltools-1.09/lib/html/stparser.rb:11 > /usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:21:in `require'' > #{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in > `require'' > /usr/lib64/ruby/gems/1.8/gems/htmltools-1.09/lib/html/tree.rb:16 > /usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:21:in `require'' > #{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in > `require'' > /usr/lib64/site_ruby/1.8/rubygems.rb:182:in `activate'' > /usr/lib64/site_ruby/1.8/rubygems.rb:181:in `activate'' > /usr/lib64/site_ruby/1.8/rubygems.rb:167:in `activate'' > /usr/lib64/site_ruby/1.8/rubygems.rb:166:in `activate'' > /usr/lib64/site_ruby/1.8/rubygems/custom_require.rb:26:in `require'' > #{RAILS_ROOT}/vendor/rails/activesupport/lib/active_support/dependencies.rb:147:in > `require''-- Posted via http://www.ruby-forum.com/.