myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [2660] trunk/vendor/plugins/structured_data/lib/a


From: noreply
Subject: [myexperiment-hackers] [2660] trunk/vendor/plugins/structured_data/lib/auto_migrate.rb: added boolean fix for default values (during creation)
Date: Mon, 1 Aug 2011 20:27:50 -0400 (EDT)

Revision
2660
Author
dgc
Date
2011-08-01 20:27:47 -0400 (Mon, 01 Aug 2011)

Log Message

added boolean fix for default values (during creation)

Modified Paths

Diff

Modified: trunk/vendor/plugins/structured_data/lib/auto_migrate.rb (2659 => 2660)


--- trunk/vendor/plugins/structured_data/lib/auto_migrate.rb	2011-08-01 16:02:16 UTC (rev 2659)
+++ trunk/vendor/plugins/structured_data/lib/auto_migrate.rb	2011-08-02 00:27:47 UTC (rev 2660)
@@ -42,6 +42,19 @@
 
   def self.migrate
 
+    def self.column_default(column)
+      if column['default']
+        case column['type']
+        when 'boolean'
+          return false if column['default'] == 'false'
+          return true  if column['default'] == 'true'
+          raise "Default values for boolean types must be either 'true' or 'false'"
+        else
+          column['default'].to_s
+        end
+      end
+    end
+
     conn = ActiveRecord::Base.connection
 
     # ensure that the auto_tables table exists
@@ -104,8 +117,7 @@
       # add columns
 
       (new_columns - old_columns).each do |column_name|
-        default = new_tables[table_name][:columns][column_name]['default']
-        default = default.to_s unless default.nil?
+        default = column_default(new_tables[table_name][:columns][column_name])
         conn.add_column(table_name, column_name, new_tables[table_name][:columns][column_name]["type"].to_sym, :default => default, :limit => new_tables[table_name][:columns][column_name]['limit'])
       end
 
@@ -114,7 +126,7 @@
       (old_columns & new_columns).each do |column_name|
 
         old_default = old_column_info[column_name].default
-        new_default = new_tables[table_name][:columns][column_name]['default']
+        new_default = column_default(new_tables[table_name][:columns][column_name])
 
         old_default = old_default.to_s unless old_default.nil?
         new_default = new_default.to_s unless new_default.nil?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]