Sha256: ed552015b9aecc0e4ac6fa37ad219f296a7bd26fbbbc6275c07f0834233ab721
Contents?: true
Size: 1.23 KB
Versions: 2
Compression:
Stored size: 1.23 KB
Contents
module Erd class GenaratorRunner class << self # runs `rails g model [name]` # @return generated migration filename def execute_generate_model(name, options = nil) result = execute_generator 'model', name, options result.flatten.grep(%r(/db/migrate/.*\.rb)) end # runs `rails g migration [name]` # @return generated migration filename def execute_generate_migration(name, options = nil) result = execute_generator 'migration', name, options result.last.last end private # a dirty workaround to make rspec-rails run def overwriting_argv(value, &block) original_argv = ARGV Object.const_set :ARGV, value block.call ensure Object.const_set :ARGV, original_argv end def execute_generator(type, name, options = nil) overwriting_argv([name, options]) do Rails::Generators.configure! Rails.application.config.generators result = Rails::Generators.invoke type, [name, options], :behavior => :invoke, :destination_root => Rails.root raise ::Erd::MigrationError, "#{name}#{"(#{options})" if options}" unless result result end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
erd-0.3.3 | lib/erd/generator_runner.rb |
erd-0.3.2 | lib/erd/generator_runner.rb |