module SexyStatementsHook::ClassMethods
Public Instance Methods
add_to_migration_name(what)
click to toggle source
# File lib/data_plan/generators/migration/lib/sexy_statements_hook.rb, line 14 def add_to_migration_name(what) if self.desired_migration_name.length < 100 self.desired_migration_name << "_" unless self.desired_migration_name.blank? self.desired_migration_name << what else self.desired_migration_name << "and_more" unless self.desired_migration_name.index("and_more") end end
method_missing_with_sexy_statements(method, *args, &block)
click to toggle source
# File lib/data_plan/generators/migration/lib/sexy_statements_hook.rb, line 23 def method_missing_with_sexy_statements(method, *args, &block) case method when :create_table, :create_view table_name = args.shift.to_s lines = IO.readlines(File.join(DB_PROJECT_ROOT, 'db', 'plan.rb')) inside_table = false self.sexy_up << "\n" for line in lines do clean_line = line.gsub(/#.*/,"") if clean_line =~ /create_(table|view)\W+#{table_name}(\W+|$)/i inside_table = true end self.sexy_up << " " + line if inside_table if inside_table and (clean_line =~ /\send\s*/i || clean_line =~ /^end\s*/i) break end end add_to_migration_name( "create_#{table_name}" ) else add_to_migration_name( method.to_s.split('_')[0] + ("_"+args[0].to_s rescue "") + ("_"+args[1].to_s rescue "") ) self.sexy_up << " " + method.to_s + " " + args.collect{ |a| a.inspect }.join(",") + "\n" end # auto_create_table(method, *args, &block) # when :add_index # auto_add_index(method, *args, &block) # else # method_missing_without_auto_migration(method, *args, &block) # end end