method
parse
v8.1.1 -
Show latest stable
- Class:
Rails::Generators::GeneratedAttribute
parse(column_definition)public
No documentation available.
# File railties/lib/rails/generators/generated_attribute.rb, line 36
def parse(column_definition)
name, type, index_type = column_definition.split(":")
# if user provided "name:index" instead of "name:string:index"
# type should be set blank so GeneratedAttribute's constructor
# could set it to :string
index_type, type = type, nil if valid_index_type?(type)
type, attr_options = *parse_type_and_options(type)
type = type.to_sym if type
if dangerous_name?(name)
raise Error, "Could not generate field '#{name}', as it is already defined by Active Record."
end
if type && !valid_type?(type)
raise Error, "Could not generate field '#{name}' with unknown type '#{type}'."
end
if index_type && !valid_index_type?(index_type)
raise Error, "Could not generate field '#{name}' with unknown index '#{index_type}'."
end
if type && reference?(type)
if UNIQ_INDEX_OPTIONS.include?(index_type)
attr_options[:index] = { unique: true }
end
end
new(name, type, index_type, attr_options)
end