# File lib/active_record/aggregations.rb, line 144 def composed_of(part_id, options = {}, &block) options.assert_valid_keys(:class_name, :mapping, :allow_nil) name = part_id.id2name class_name = options[:class_name] || name.camelize mapping = options[:mapping] || [ name, name ] mapping = [ mapping ] unless mapping.first.is_a?(Array) allow_nil = options[:allow_nil] || false reader_method(name, class_name, mapping, allow_nil) writer_method(name, class_name, mapping, allow_nil, block) create_reflection(:composed_of, part_id, options, self) end