class FeaturedImage::Finder
Public Class Methods
all(url, *args)
click to toggle source
Find all featured images that are matching criteria from web page. And return them as Array of Magick::ImageList. If the featured image does not exist return empty Array.
# File lib/featuredimage/finder.rb, line 31 def self.all(url, *args) finder = Finder.new cond = Criteria.new(*args) finder.all(url, cond) end
biggest(url, *args)
click to toggle source
Find the biggest featured image that is matching criteria from web page. And return it as Magick::ImageList. If the featured image does not exist return nil.
# File lib/featuredimage/finder.rb, line 22 def self.biggest(url, *args) finder = Finder.new cond = Criteria.new(*args) finder.biggest(url, cond) end
first(url, *args)
click to toggle source
Find first featured image that is matching criteria from web page. And return it as Magick::ImageList. If the featured image does not exist return nil.
# File lib/featuredimage/finder.rb, line 13 def self.first(url, *args) finder = Finder.new cond = Criteria.new(*args) finder.first(url, cond) end
Public Instance Methods
all(url, cond)
click to toggle source
# File lib/featuredimage/finder.rb, line 89 def all(url, cond) agent = Mechanize.new page = agent.get(url) max_size = Size.new(0, 0) max_imagelist = nil results = [] page.search("img").each{|elm| src = elm.attributes["src"].value begin data = download_image(agent, src) imagelist = Magick::ImageList.new imagelist.from_blob(data) size = Size.new(imagelist.columns, imagelist.rows) results << imagelist if featured_image?(cond, size) rescue Mechanize::ResponseCodeError # ignore Mechanize::ResponseCodeError end } results end
biggest(url, cond)
click to toggle source
# File lib/featuredimage/finder.rb, line 59 def biggest(url, cond) agent = Mechanize.new page = agent.get(url) max_size = Size.new(0, 0) max_imagelist = nil page.search("img").each{|elm| src = elm.attributes["src"].value begin data = download_image(agent, src) imagelist = Magick::ImageList.new imagelist.from_blob(data) size = Size.new(imagelist.columns, imagelist.rows) if featured_image?(cond, size) if max_size < size max_size = size max_imagelist = imagelist end end rescue Mechanize::ResponseCodeError # ignore Mechanize::ResponseCodeError end } max_imagelist end
first(url, cond)
click to toggle source
# File lib/featuredimage/finder.rb, line 37 def first(url, cond) agent = Mechanize.new page = agent.get(url) page.search("img").each{|elm| src = elm.attributes["src"].value begin data = download_image(agent, src) imagelist = Magick::ImageList.new imagelist.from_blob(data) size = Size.new(imagelist.columns, imagelist.rows) if featured_image?(cond, size) return imagelist end rescue Mechanize::ResponseCodeError # ignore Mechanize::ResponseCodeError end } nil end
Private Instance Methods
download_image(agent, src)
click to toggle source
# File lib/featuredimage/finder.rb, line 115 def download_image(agent, src) agent.get(src).body end
featured_image?(cond, size)
click to toggle source
# File lib/featuredimage/finder.rb, line 119 def featured_image?(cond, size) cond.check(size) end