class RDF::Tabular::Schema
Constants
- DEFAULTS
- PROPERTIES
- REQUIRED
Public Instance Methods
columns=(value)
click to toggle source
# File lib/rdf/tabular/metadata.rb, line 1490 def columns=(value) object[:columns] = case value when Array number = 0 value.map do |v| number += 1 case v when Hash Column.new(v, **@options.merge( table: (parent if parent.is_a?(Table)), parent: self, context: nil, number: number)) else v end end else log_warn "#{type} has invalid property 'columns': expected array of Column" [] end unless object[:columns].all? {|v| v.is_a?(Column)} log_warn "#{type} has invalid property 'columns': expected array of Column" # Remove elements that aren't of the right types object[:columns] = object[:columns].select! {|v| v.is_a?(Column)} end end
foreignKeys=(value)
click to toggle source
# File lib/rdf/tabular/metadata.rb, line 1519 def foreignKeys=(value) object[:foreignKeys] = case value when Array then value else log_warn "#{type} has invalid property 'foreignKeys': expected array of ForeignKey" [] end unless object[:foreignKeys].all? {|v| v.is_a?(Hash)} log_warn "#{type} has invalid property 'foreignKeys': expected array of ForeignKey" # Remove elements that aren't of the right types object[:foreignKeys] = object[:foreignKeys].select! {|v| v.is_a?(Hash)} end end
foreign_keys_referencing(table)
click to toggle source
List of foreign keys referencing the specified table
@param [Table] table @return [Array<Hash>]
# File lib/rdf/tabular/metadata.rb, line 1539 def foreign_keys_referencing(table) Array(foreignKeys).select do |fk| reference = fk['reference'] if reference['resource'] ref = context.base.join(reference['resource']).to_s table.url == ref else # schemaReference ref = context.base.join(reference['schemaReference']).to_s table.tableSchema.id == ref end end end
to_atd()
click to toggle source
Return Annotated Table
representation
# File lib/rdf/tabular/metadata.rb, line 1553 def to_atd object.inject({ "@id" => (id.to_s if id), "@type" => "Schema", "columns" => Array(columns).map(&:to_atd), }) do |memo, (k, v)| memo[k.to_s] ||= v memo end.delete_if {|k,v| v.nil? || v.is_a?(Metadata)} end