Class: Spread2RDF::Mapping::Resource

Inherits:
Element
  • Object
show all
Defined in:
lib/spread2rdf/mapping/resource.rb

Instance Attribute Summary collapse

Attributes inherited from Element

#parent, #schema

Instance Method Summary collapse

Methods inherited from Element

#empty?, #graph, #to_s

Constructor Details

#initialize(sheet, parent, row_range) ⇒ Resource

Returns a new instance of Resource.



9
10
11
12
13
14
# File 'lib/spread2rdf/mapping/resource.rb', line 9

def initialize(sheet, parent, row_range)
  super(sheet, parent)
  @columns = {}
  @row_range = row_range
  map
end

Instance Attribute Details

#row_rangeObject (readonly)

Returns the value of attribute row_range.



5
6
7
# File 'lib/spread2rdf/mapping/resource.rb', line 5

def row_range
  @row_range
end

Instance Method Details

#column(name) ⇒ Object



73
74
75
# File 'lib/spread2rdf/mapping/resource.rb', line 73

def column(name)
  @columns[column_schema(name).name]
end

#column!(name) ⇒ Object



77
78
79
80
81
82
83
# File 'lib/spread2rdf/mapping/resource.rb', line 77

def column!(name)
  column_schema = column_schema(name)
  @columns[column_schema.name] ||= case column_schema
    when Schema::Column      then Column.new(column_schema, self)
    when Schema::ColumnBlock then ColumnBlock.new(column_schema, self).map
  end
end

#column_schema(name) ⇒ Object



85
86
87
88
89
90
91
# File 'lib/spread2rdf/mapping/resource.rb', line 85

def column_schema(name)
  case name
    when Schema::Column, Schema::ColumnBlock then name
    when String, Symbol                      then schema.column(name)
    else raise ArgumentError
  end
end

#columnsObject Also known as: _children_

Mapping::Element structure



68
69
70
# File 'lib/spread2rdf/mapping/resource.rb', line 68

def columns
  @columns.values
end

#mapObject



16
17
18
19
20
21
22
# File 'lib/spread2rdf/mapping/resource.rb', line 16

def map
  #puts "processing #{self} in #{row_range}"
  object_columns = parent.schema.columns - [parent.schema.subject_column]
  object_columns.each { |column| column!(column) }
  subject_description unless empty?
  self
end

#subjectObject Also known as: subject_resource

subject mapping



27
28
29
30
31
32
33
34
# File 'lib/spread2rdf/mapping/resource.rb', line 27

def subject
  @subject ||=
      case schema.subject_mapping_mode
        when :bnode         then RDF::Node.new
        when :from_column   then subject_resource_from_column
        else raise 'unknown subject mapping type'
      end
end