Sha256: 73e65a3514f81434df6e270e88125a6f1c4e614865e525467bf5862c8fc1443e

Contents?: true

Size: 800 Bytes

Versions: 6

Compression:

Stored size: 800 Bytes

Contents

require_relative 'schema_modifier'

module EZ
  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

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ez-0.7.0 lib/ez/domain_modeler.rb
ez-0.6.5 lib/ez/domain_modeler.rb
ez-0.6.4 lib/ez/domain_modeler.rb
ez-0.6.3 lib/ez/domain_modeler.rb
ez-0.6.2 lib/ez/domain_modeler.rb
ez-0.6.1 lib/ez/domain_modeler.rb