Class: GeoConcerns::Discovery::DocumentBuilder

Inherits:
Object
  • Object
show all
Defined in:
app/services/geo_concerns/discovery/document_builder.rb,
app/services/geo_concerns/discovery/document_builder/wxs.rb,
app/services/geo_concerns/discovery/document_builder/date_builder.rb,
app/services/geo_concerns/discovery/document_builder/slug_builder.rb,
app/services/geo_concerns/discovery/document_builder/document_path.rb,
app/services/geo_concerns/discovery/document_builder/document_helper.rb,
app/services/geo_concerns/discovery/document_builder/spatial_builder.rb,
app/services/geo_concerns/discovery/document_builder/composite_builder.rb,
app/services/geo_concerns/discovery/document_builder/layer_info_builder.rb,
app/services/geo_concerns/discovery/document_builder/references_builder.rb,
app/services/geo_concerns/discovery/document_builder/basic_metadata_builder.rb

Defined Under Namespace

Classes: BasicMetadataBuilder, CompositeBuilder, DateBuilder, DocumentHelper, DocumentPath, LayerInfoBuilder, ReferencesBuilder, SlugBuilder, SpatialBuilder, Wxs

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(geo_concern, document) ⇒ DocumentBuilder

Returns a new instance of DocumentBuilder.



7
8
9
10
11
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 7

def initialize(geo_concern, document)
  @geo_concern = geo_concern
  @document = document
  builders.build(document)
end

Instance Attribute Details

#documentObject (readonly)

Returns the value of attribute document.



4
5
6
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 4

def document
  @document
end

#geo_concernObject (readonly)

Returns the value of attribute geo_concern.



4
5
6
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 4

def geo_concern
  @geo_concern
end

Instance Method Details

#basic_metadata_builderBasicMetadataBuilder

Instantiates a BasicMetadataBuilder object. Builds fields such as id, subject, and publisher.

Returns:



36
37
38
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 36

def 
  BasicMetadataBuilder.new(geo_concern)
end

#buildersCompositeBuilder

Instantiates a CompositeBuilder object with an array of builder instances that are used to create the document.

Returns:



22
23
24
25
26
27
28
29
30
31
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 22

def builders
  @builders ||= CompositeBuilder.new(
    ,
    spatial_builder,
    date_builder,
    references_builder,
    layer_info_builder,
    slug_builder
  )
end

#date_builderDateBuilder

Instantiates a DateBuilder object. Builds date fields such as layer year and modified date.

Returns:



50
51
52
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 50

def date_builder
  DateBuilder.new(geo_concern)
end

#layer_info_builderLayerInfoBuilder

Instantiates a LayerInfoBuilder object. Builds fields about the geospatial file such as geometry and format.

Returns:



64
65
66
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 64

def layer_info_builder
  LayerInfoBuilder.new(geo_concern)
end

#references_builderReferencesBuilder

Instantiates a ReferencesBuilder object. Builds service reference fields such as thumbnail and download url.

Returns:



57
58
59
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 57

def references_builder
  ReferencesBuilder.new(geo_concern, root_path)
end

#root_pathDocumentPath

Returns a document path object. Used to get urls for links in the document.

Returns:

  • (DocumentPath)

    geoblacklight document as a json string



15
16
17
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 15

def root_path
  @root_path ||= DocumentPath.new(geo_concern)
end

#slug_builderSlugBuilder

Instantiates a SlugBuilder object. Builds the Geoblacklight slug field

Returns:



71
72
73
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 71

def slug_builder
  SlugBuilder.new(geo_concern)
end

#spatial_builderSpatialBuilder

Instantiates a SpatialBuilder object. Builds spatial fields such as bounding box and solr geometry.

Returns:



43
44
45
# File 'app/services/geo_concerns/discovery/document_builder.rb', line 43

def spatial_builder
  SpatialBuilder.new(geo_concern)
end