aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/generator/generated_attribute.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-06-23 18:12:37 +0200
committerJosé Valim <jose.valim@gmail.com>2009-06-23 18:12:37 +0200
commit75fbd7393606b9b026418229eb3eb38542753d43 (patch)
treee0e2c0fe8eb8c1afcc7187e24e12db76c991543d /railties/lib/generator/generated_attribute.rb
parentd4ec091580fa8e3f58e246b37e444905ce06ac62 (diff)
downloadrails-75fbd7393606b9b026418229eb3eb38542753d43.tar.gz
rails-75fbd7393606b9b026418229eb3eb38542753d43.tar.bz2
rails-75fbd7393606b9b026418229eb3eb38542753d43.zip
Add GeneratedAttribute.
Diffstat (limited to 'railties/lib/generator/generated_attribute.rb')
-rw-r--r--railties/lib/generator/generated_attribute.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/railties/lib/generator/generated_attribute.rb b/railties/lib/generator/generated_attribute.rb
new file mode 100644
index 0000000000..0ead945281
--- /dev/null
+++ b/railties/lib/generator/generated_attribute.rb
@@ -0,0 +1,44 @@
+module Rails
+ module Generators
+ class GeneratedAttribute
+ attr_accessor :name, :type, :column
+
+ def initialize(name, type)
+ @name, @type = name, type.to_sym
+ @column = ActiveRecord::ConnectionAdapters::Column.new(@name, nil, @type)
+ end
+
+ def field_type
+ @field_type ||= case type
+ when :integer, :float, :decimal then :text_field
+ when :datetime, :timestamp, :time then :datetime_select
+ when :date then :date_select
+ when :string then :text_field
+ when :text then :text_area
+ when :boolean then :check_box
+ else
+ :text_field
+ end
+ end
+
+ def default
+ @default ||= case type
+ when :integer then 1
+ when :float then 1.5
+ when :decimal then "9.99"
+ when :datetime, :timestamp, :time then Time.now.to_s(:db)
+ when :date then Date.today.to_s(:db)
+ when :string then "MyString"
+ when :text then "MyText"
+ when :boolean then false
+ else
+ ""
+ end
+ end
+
+ def reference?
+ [ :references, :belongs_to ].include?(self.type)
+ end
+ end
+ end
+end