class TableSaw::Manifest

Attributes

config[R]

Public Class Methods

instance() click to toggle source
# File lib/table_saw/manifest.rb, line 37
def self.instance
  raise ArgumentError, 'Could not find manifest file' unless File.exist?(TableSaw.configuration.manifest)

  new(YAML.safe_load(File.read(TableSaw.configuration.manifest)))
end
new(config) click to toggle source
# File lib/table_saw/manifest.rb, line 45
def initialize(config)
  @config = config
end

Public Instance Methods

associations() click to toggle source
# File lib/table_saw/manifest.rb, line 68
def associations
  @associations ||= TableSaw::Associations.new(self)
end
foreign_keys() click to toggle source
# File lib/table_saw/manifest.rb, line 64
def foreign_keys
  @foreign_keys ||= config.fetch('foreign_keys', [])
end
has_many() click to toggle source
# File lib/table_saw/manifest.rb, line 60
def has_many
  @has_many ||= config.fetch('has_many', {})
end
tables() click to toggle source
# File lib/table_saw/manifest.rb, line 54
def tables
  @tables ||= config['tables'].map { |entry| Table.new(variables, entry) }.each_with_object({}) do |t, memo|
    memo[t.name] = t
  end
end
variables() click to toggle source
# File lib/table_saw/manifest.rb, line 49
def variables
  vars = config.fetch('variables', {})
  vars.merge(TableSaw.configuration.variables.slice(*vars.keys))
end