Как я могу использовать читабельность в Rails 3.0.x? - PullRequest
2 голосов
/ 15 декабря 2010

Я собираюсь использовать гем читабельности в моем приложении rails 3.Я не могу использовать его, как рекомендовано на странице github http://github.com/sspinc/readability внутри приложения, хотя он прекрасно работает на консоли ruby.

На консоли ruby:

> 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)

Вкл.консоль 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'

Я убедился, что это не синтаксическая ошибка JavaScript.Судя по активной ошибке поддержки, не удалось загрузить зависимости, я подозреваю, что Rails не удалось загрузить требуемые гемы, которые используются для удобочитаемости (например, harmony, johnson и envjs) для обработки JavaScript и DOM в Ruby.моё предположение может быть что-то не так в Gemfile?Вот мой текущий Gemfile:

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'

Я попытался добавить: опция option в читабельности для указания harmony, johnson и envjs;и без повторной установки «переустановить пакет», но у меня все та же ошибка.

Я также проверил config / application.rb, чтобы требовать все гемы в Gemfile.с этой строкой

Bundler.require(:default, Rails.env) if defined?(Bundler)

Итак, вернемся к вопросу, как я могу использовать удобочитаемость в Rails 3.0.x?Я что-то пропустил?Я на MacOS 10.6.5, если это имеет значение.

Спасибо

1 Ответ

1 голос
/ 18 июня 2011

На моем Mac (Rails 3.x, Ruby 1.9.2 у меня были проблемы с загрузкой гема Джонсона, который является зависимостью. Однако гем ruby-readability работает.

...