Class: Vessel::Cargo

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/vessel/cargo.rb

Constant Summary collapse

DELAY =
0
START_URLS =
[].freeze
MIDDLEWARE =
[].freeze
MIN_THREADS =
1
MAX_THREADS =
Concurrent.processor_count

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(page = nil) ⇒ Cargo

Returns a new instance of Cargo.



64
65
66
# File 'lib/vessel/cargo.rb', line 64

def initialize(page = nil)
  @page = page
end

Class Attribute Details

.settingsObject (readonly)

Returns the value of attribute settings.



15
16
17
# File 'lib/vessel/cargo.rb', line 15

def settings
  @settings
end

Instance Attribute Details

#pageObject (readonly)

Returns the value of attribute page.



62
63
64
# File 'lib/vessel/cargo.rb', line 62

def page
  @page
end

Class Method Details

.delay(value) ⇒ Object



30
31
32
# File 'lib/vessel/cargo.rb', line 30

def delay(value)
  settings[:delay] = value
end

.domain(name) ⇒ Object



22
23
24
# File 'lib/vessel/cargo.rb', line 22

def domain(name)
  settings[:domain] = name
end

.middleware(*classes) ⇒ Object



43
44
45
# File 'lib/vessel/cargo.rb', line 43

def middleware(*classes)
  settings[:middleware] = classes
end

.run(settings = nil, &block) ⇒ Object



17
18
19
20
# File 'lib/vessel/cargo.rb', line 17

def run(settings = nil, &block)
  self.settings.merge!(Hash(settings))
  Engine.run(self, &block)
end

.start_urls(*urls) ⇒ Object



26
27
28
# File 'lib/vessel/cargo.rb', line 26

def start_urls(*urls)
  settings[:start_urls] = urls
end

.threads(min: MIN_THREADS, max: MAX_THREADS) ⇒ Object



38
39
40
41
# File 'lib/vessel/cargo.rb', line 38

def threads(min: MIN_THREADS, max: MAX_THREADS)
  settings[:min_threads] = min
  settings[:max_threads] = max
end

.timeout(value) ⇒ Object



34
35
36
# File 'lib/vessel/cargo.rb', line 34

def timeout(value)
  settings[:timeout] = value
end

Instance Method Details

#domainObject



68
69
70
# File 'lib/vessel/cargo.rb', line 68

def domain
  self.class.settings[:domain]
end

#parseObject



72
73
74
# File 'lib/vessel/cargo.rb', line 72

def parse
  raise NotImplementedError
end