Module: Sack::Database::Schema

Defined in:
lib/sack/database/schema.rb

Overview

Schema Module: Provides utilities for manipulating database schema.

Class Method Summary collapse

Class Method Details

.from_module(mod) ⇒ Hash

Load from Module: Constructs a database schema from a given data model module (mod).

Parameters:

  • mod (Module)

    Data model module, containing entity modules

Returns:

  • (Hash)

    The complete database schema



21
22
23
24
25
26
27
28
29
# File 'lib/sack/database/schema.rb', line 21

def self.from_module mod

	# Run through Sub Modules
	Hash[*(mod.constants
		.collect { |c| mod.const_get c }
		.select { |c| c.is_a? Module }
		.inject([]) { |a, e| (a << e.table_name) << e.field_schema }
	)]
end