class Scruber::Helpers::UserAgentRotator
Attributes
configuration[W]
cursor[RW]
Public Class Methods
configuration()
click to toggle source
# File lib/scruber/helpers/user_agent_rotator.rb, line 55 def configuration @configuration ||= Configuration.new end
configure(&block)
click to toggle source
# File lib/scruber/helpers/user_agent_rotator.rb, line 59 def configure(&block) configuration.configure(&block) end
next(tags=nil)
click to toggle source
# File lib/scruber/helpers/user_agent_rotator.rb, line 63 def next(tags=nil) raise Scruber::ArgumentError.new("UserAgent rotator not configured") if @configuration.nil? tags = @configuration.tags if tags.blank? user_agents = get_collection(tags) if @cursor.nil? || @cursor >= user_agents.count-1 @cursor = 0 else @cursor += 1 end user_agents[@cursor].name end
Private Class Methods
get_collection(tags)
click to toggle source
# File lib/scruber/helpers/user_agent_rotator.rb, line 77 def get_collection(tags) if tags == :all @configuration.user_agents else if !tags.is_a?(Array) tags = [tags] end tags = tags.compact.map(&:to_sym) @configuration.user_agents.select{|ua| tags.all?{|t| ua.tags.include?(t) } } end end