Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

58 lines (50 sloc) 1.734 kb
require 'active_support/time'
require 'active_support/core_ext/object/inclusion'
module Rails
module Generators
class GeneratedAttribute
attr_accessor :name, :type, :has_index
def initialize(name, type, has_index = false)
type = :string if type.blank?
@name, @type, @has_index = name, type.to_sym, has_index.eql?("index")
end
def field_type
@field_type ||= case type
when :integer then :number_field
when :float, :decimal then :text_field
when :time then :time_select
when :datetime, :timestamp then :datetime_select
when :date then :date_select
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 name == "type" ? "" : "MyString"
when :text then "MyText"
when :boolean then false
when :references, :belongs_to then nil
else
""
end
end
def human_name
name.to_s.humanize
end
def reference?
self.type.in?([:references, :belongs_to])
end
def has_index?
@has_index
end
end
end
end
Jump to Line
Something went wrong with that request. Please try again.