Class: RightScraper::Builders::Union
- Inherits:
-
Object
- Object
- RightScraper::Builders::Union
- Defined in:
- lib/right_scraper/builders/union.rb
Overview
Union builder, to permit running multiple builders in sequence with the same interface as running one.
Instance Attribute Summary collapse
-
#subbuilders ⇒ Object
readonly
(Array) subcomponents of this union.
Instance Method Summary collapse
-
#finish ⇒ Object
Notify subbuilders that all scans for this repository have completed.
-
#go(dir, resource) ⇒ Object
Run each builder for this resource.
-
#initialize(classes, options = {}) ⇒ Union
constructor
Create a new union builder.
Constructor Details
#initialize(classes, options = {}) ⇒ Union
Create a new union builder. Recognizes no new options.
Parameters
- classes(List)
-
List of Builder classes to run
- options(Hash)
-
options to initialize each Builder with
37 38 39 |
# File 'lib/right_scraper/builders/union.rb', line 37 def initialize(classes, ={}) @subbuilders = classes.map {|klass| klass.new()} end |
Instance Attribute Details
#subbuilders ⇒ Object (readonly)
(Array) subcomponents of this union
30 31 32 |
# File 'lib/right_scraper/builders/union.rb', line 30 def subbuilders @subbuilders end |
Instance Method Details
#finish ⇒ Object
Notify subbuilders that all scans for this repository have completed.
52 53 54 |
# File 'lib/right_scraper/builders/union.rb', line 52 def finish @subbuilders.each {|builder| builder.finish} end |
#go(dir, resource) ⇒ Object
Run each builder for this resource.
Parameters
- dir(String)
-
directory resource exists at
- resource(RightScraper::Resources::Base)
-
resource instance being built
46 47 48 |
# File 'lib/right_scraper/builders/union.rb', line 46 def go(dir, resource) @subbuilders.each {|builder| builder.go(dir, resource)} end |