2010-12-15 70 views
2

Je vais utiliser la gemme de lisibilité sur mes rails 3 app. Je ne peux pas l'utiliser comme conseillé sur la page github http://github.com/sspinc/readability à l'intérieur de l'application bien que cela fonctionne bien sur la console ruby.Comment utiliser gem de lisibilité sur Rails 3.0.x?

Sur la console rubis:

> require 'open-uri' 
=> true 
> require 'readability' 
=> true 
> doc = Nokogiri::HTML(open('http://google.com')) 
=> #<Nokogiri::HTML::Document:0x81345324 name="document" 
> doc.to_readable 
=> #<Nokogiri::XML::Element:0x813299a8 name="html" 
# (expected result without any error) 

Sur la console rails:

> doc = Nokogiri::HTML(open('http://google.com')) 
=> #<Nokogiri::HTML::Document:0x81c2baec name="document" 
# (and so on.. expected result) 
> readable = doc.to_readable 
SyntaxError: /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/readability-0.1.5/lib/readability/js/readability.js:2: syntax error, unexpected '=' 
    if(typeof console !== 'undefined') { 
         ^
/Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/readability-0.1.5/lib/readability/js/readability.js:2: syntax error, unexpected '{', expecting kTHEN or ':' or '\n' or ';' 
/Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/readability-0.1.5/lib/readability/js/readability.js:5: syntax error, unexpected '}', expecting $end 
     from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load' 
     from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load' 
     from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency' 
     from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in' 
     from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency' 
     from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load' 
     from /Users/apraditya/.rvm/gems/ruby-1.8.7-p299/gems/harmony-0.5.6/lib/harmony/page.rb:76:in `load' 

J'ai vérifié que ce n'est pas une erreur de syntaxe javascript. A en juger par l'erreur de support actif, il a échoué à charger les dépendances, je soupçonne que Rails n'a pas réussi à charger les gemmes nécessaires que la lisibilité utilise (comme harmonie, johnson et envjs) pour gérer javascript et DOM dans Ruby.

Donc, je suppose que peut-être quelque chose de mal dans le Gemfile? Voici mon Gemfile actuel:

source 'http://rubygems.org' 

gem 'rails', '3.0.3' 
gem 'devise', '~> 1.1.5' 
gem 'haml', '3.0.24' 
gem 'simple_form' 
gem 'cancan' 
gem 'will_paginate', '~> 3.0.beta' 
gem 'feedzirra', :require => [ 'feedzirra' ] 
gem 'loofah', '1.0.0.beta.1' 
gem 'compass', '~> 0.10.4' 
gem 'meta_where', '~> 0.9' 
gem 'populator' 
gem 'simple-navigation' 
gem 'readability' 

J'ai essayé d'ajouter: require option dans la lisibilité de spécifier l'harmonie, et johnson envjs; et reran 'bundle install' sans aucune erreur, mais j'ai toujours la même erreur.

J'ai également vérifié le config/application.rb pour exiger toutes les gemmes dans le Gemfile. Donc, pour en revenir à la question, comment puis-je utiliser la lisibilité sur Rails 3.0.x? Ai-je manqué quelque chose? Je suis sur MacOS 10.6.5 si ça compte.

Merci

+1

Avez-vous jamais résoudre ce problème? J'ai des problèmes similaires avec cette gemme. –

Répondre

1

Sur mon Mac (3.x Rails, Ruby 1.9.2 J'ai eu du mal avec le charger la pierre précieuse johnson qui est une dépendance. Cependant, gem-lisibilité rubis fonctionne.