lib/link_thumbnailer.rb in link_thumbnailer-1.0.5 vs lib/link_thumbnailer.rb in link_thumbnailer-1.0.6
- old
+ new
@@ -1,7 +1,7 @@
require 'link_thumbnailer/engine' if defined? Rails
-require 'link_thumbnailer/config'
+require 'link_thumbnailer/configuration'
require 'link_thumbnailer/object'
require 'link_thumbnailer/fetcher'
require 'link_thumbnailer/doc_parser'
require 'link_thumbnailer/doc'
require 'link_thumbnailer/img_url_filter'
@@ -22,25 +22,25 @@
attr_accessor :configuration, :object, :fetcher, :doc_parser,
:img_url_filters, :img_parser
def config
self.configuration ||= Configuration.new(
- :mandatory_attributes => %w(url title images),
- :strict => true,
- :redirect_limit => 3,
- :blacklist_urls => [
+ mandatory_attributes: %w(url title images),
+ strict: true,
+ redirect_limit: 3,
+ blacklist_urls: [
%r{^http://ad\.doubleclick\.net/},
%r{^http://b\.scorecardresearch\.com/},
%r{^http://pixel\.quantserve\.com/},
%r{^http://s7\.addthis\.com/}
],
- :rmagick_attributes => %w(source_url mime_type colums rows filesize number_colors),
- :limit => 10,
- :top => 5,
- :user_agent => 'linkthumbnailer',
- :verify_ssl => true,
- :http_timeout => 5
+ rmagick_attributes: %w(source_url mime_type colums rows filesize number_colors),
+ limit: 10,
+ top: 5,
+ user_agent: 'linkthumbnailer',
+ verify_ssl: true,
+ http_timeout: 5
)
end
def configure
yield config
@@ -70,20 +70,25 @@
self.img_url_filters = [LinkThumbnailer::ImgUrlFilter.new]
self.img_parser = LinkThumbnailer::ImgParser.new(self.fetcher, self.img_url_filters)
end
def opengraph(doc)
+ return nil unless opengraph?(doc)
self.object = LinkThumbnailer::Opengraph.parse(self.object, doc)
return self.object if self.object.valid?
nil
end
def custom(doc)
- self.object[:title] = doc.title
+ self.object[:title] = doc.title
self.object[:description] = doc.description
- self.object[:images] = self.img_parser.parse(doc.img_abs_urls.dup)
+ self.object[:images] = self.img_parser.parse(doc.img_abs_urls.dup)
return self.object if self.object.valid?
nil
+ end
+
+ def opengraph?(doc)
+ !doc.xpath('//meta[starts-with(@property, "og:") and @content]').empty?
end
end
end