提交 75fbd739 编写于 作者: J José Valim

Add GeneratedAttribute.

上级 d4ec0915
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
require 'generator/base'
require 'generator/generated_attribute'
module Rails
module Generators
......@@ -7,11 +8,13 @@ class NamedBase < Base
attr_reader :class_name, :singular_name, :plural_name, :table_name,
:class_path, :file_path, :class_nesting, :class_nesting_depth
alias :file_name :singular_name
def initialize(*args)
super
assign_names!
parse_attributes! if respond_to?(:attributes)
end
protected
......@@ -35,6 +38,14 @@ def assign_names!
end
end
# Convert attributes hash into an array with GeneratedAttribute objects.
#
def parse_attributes!
attributes.map! do |name, type|
Rails::Generator::GeneratedAttribute.new(name, type)
end
end
# Extract modules from filesystem-style or ruby-style path. Both
# good/fun/stuff and Good::Fun::Stuff produce the same results.
#
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册