Sha256: 6106ab815068696b677796aa0ef333e176923db7e8164b1e8b8a6ff95e356d71

Contents?: true

Size: 731 Bytes

Versions: 4

Compression:

Stored size: 731 Bytes

Contents

require_relative 'schema_modifier'

class DomainModeler

  def initialize
    load_model_specs
  end

  def self.update_tables
    self.new.update_tables
  end

  def update_tables
    SchemaModifier.migrate(@spec)
  end

  def load_model_specs
    @spec = YAML.load_file('db/models.yml')
    @spec ||= {}

    @spec.each do |model, columns|
      @spec[model] = []
      columns.each do |column|
        if column.is_a?(String) || column.is_a?(Symbol)
          @spec[model] << { column.to_s => 'string' }
        elsif column.is_a?(Hash) && column.keys.count == 1
          @spec[model] << { column.keys.first.to_s => column.values.first.to_s }
        else
          raise "Bad syntax."
        end
      end
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ez-0.6.0 lib/ez/domain_modeler.rb
ez-0.5.0 lib/ez/domain_modeler.rb
ez-0.0.3 lib/ez/domain_modeler.rb
ez-0.0.2 lib/ez/domain_modeler.rb