class GeneratedSchemaValidations::Dumper
Public Class Methods
define(info = {}, &block)
click to toggle source
# File lib/generated_schema_validations/dumper.rb, line 22 def self.define(info = {}, &block) new.define(info, &block) end
generate()
click to toggle source
# File lib/generated_schema_validations/dumper.rb, line 4 def self.generate return unless Rails.env.development? file = Tempfile.new(['schema', '.rb']) begin schema_content = File.read(Rails.root.join('db/schema.rb')) schema_content.gsub!('ActiveRecord::Schema', 'GeneratedSchemaValidations::Dumper') raise 'The scheme is not well-formed.' if schema_content.include?('ActiveRecord') file.write(schema_content) file.close load file.path ensure file.unlink end end
Public Instance Methods
create_table(table_name, *, &block)
click to toggle source
# File lib/generated_schema_validations/dumper.rb, line 40 def create_table(table_name, *, &block) @table_validations_ruby ||= '' @table_validations_ruby += GeneratedSchemaValidations::Table.new(table_name, &block).to_s end
define(info, &block)
click to toggle source
# File lib/generated_schema_validations/dumper.rb, line 26 def define(info, &block) instance_eval(&block) template_ruby = File.read(File.expand_path('template.rb', File.dirname(__FILE__))) template_ruby.gsub!('VERSION_INFO', info[:version].to_s) indention_spaces = template_ruby.match(/( +)TABLE_VALIDATIONS/)[1] table_validations_ruby = @table_validations_ruby.lines.map do |line| line.strip.present? ? "#{indention_spaces}#{line}" : "\n" end.join template_ruby.gsub!("#{indention_spaces}TABLE_VALIDATIONS", table_validations_ruby) File.write(Rails.root.join('app/models/concerns/schema_validations.rb'), template_ruby) end
do_nothing(*)
click to toggle source
# File lib/generated_schema_validations/dumper.rb, line 45 def do_nothing(*); end
Also aliased as: enable_extension, add_foreign_key