Class: ActiveRecord::FixtureSet::ModelMetadata
Do not use. This class is for internal use only.
Class Method Summary
Instance Method Summary
Constructor Details
.new(model_class) ⇒ ModelMetadata
[ GitHub ]
# File 'activerecord/lib/active_record/fixture_set/model_metadata.rb', line 6
def initialize(model_class)
@model_class = model_class
end
Instance Method Details
#column_names
[ GitHub ]
# File 'activerecord/lib/active_record/fixture_set/model_metadata.rb', line 29
def column_names
@column_names ||= @model_class ? @model_class.columns.map(&:name).to_set : Set.new
end
#column_type(column_name)
[ GitHub ]
# File 'activerecord/lib/active_record/fixture_set/model_metadata.rb', line 18
def column_type(column_name)
@column_type ||= {}
return @column_type[column_name] if @column_type.key?(column_name)
@column_type[column_name] = @model_class && @model_class.type_for_attribute(column_name).type
end
#has_column?(column_name) ⇒ Boolean
[ GitHub ]
# File 'activerecord/lib/active_record/fixture_set/model_metadata.rb', line 25
def has_column?(column_name)
column_names.include?(column_name)
end
#inheritance_column_name
[ GitHub ]
# File 'activerecord/lib/active_record/fixture_set/model_metadata.rb', line 37
def inheritance_column_name
@inheritance_column_name ||= @model_class && @model_class.inheritance_column
end
#primary_key_name
[ GitHub ]
# File 'activerecord/lib/active_record/fixture_set/model_metadata.rb', line 10
def primary_key_name
@primary_key_name ||= @model_class && @model_class.primary_key
end
#primary_key_type
[ GitHub ]
# File 'activerecord/lib/active_record/fixture_set/model_metadata.rb', line 14
def primary_key_type
@primary_key_type ||= @model_class && column_type(@model_class.primary_key)
end
#timestamp_column_names
[ GitHub ]
# File 'activerecord/lib/active_record/fixture_set/model_metadata.rb', line 33
def timestamp_column_names
@model_class.all_timestamp_attributes_in_model
end