Class: WebCrawler::Parsers::Mapper::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/web_crawler/parsers/mapper.rb

Instance Method Summary collapse

Constructor Details

#initialize(method, context) ⇒ Filter

Returns a new instance of Filter.



4
5
6
# File 'lib/web_crawler/parsers/mapper.rb', line 4

def initialize(method, context)
  @method, @context = method, context
end

Instance Method Details

#call(*args, &blk) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
12
13
# File 'lib/web_crawler/parsers/mapper.rb', line 8

def call(*args, &blk)
  return @context.send(@method, *args, &blk) if @method.is_a? Symbol
  return @method.call(*args, &blk) if @method.respond_to? :call
  return args.size == 1 ? args.first : args if @method.nil?
  raise ArgumentError, "#{@method} must be a Symbol or Object which respond with in :call or nil"
end