class ActiveRecord::ModelSpaces::ModelSpace
a ModelSpace
has a set of models registered with it, from which a Context
can be created
Attributes
model_registrations[R]
name[R]
Public Class Methods
new(name)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 24 def initialize(name) @name = name.to_sym @model_registrations = {} end
Public Instance Methods
base_table_name(model)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 57 def base_table_name(model) r = get_model_registration(model) r[:base_table_name] || TableNames.base_table_name(r[:model]) end
create_context(model_space_key)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 70 def create_context(model_space_key) Context.new(self, model_space_key, ModelSpaces.create_persistor) end
deregister_model(model)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 37 def deregister_model(model) delete_model_registration(model) end
history_versions(model)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 41 def history_versions(model) get_model_registration(model)[:history_versions] || 0 end
is_registered?(model)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 66 def is_registered?(model) !!unchecked_get_model_registration(model) end
kill_context(model_space_key)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 74 def kill_context(model_space_key) Context.drop_tables(self, model_space_key) true end
register_model(model, opts=nil)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 29 def register_model(model, opts=nil) raise "#{model} is not an ActiveRecord model Class" if !is_active_record_model?(model) opts ||= {} ModelSpaces.check_model_registration_keys(opts.keys) set_model_registration(model, opts.merge(:model=>model)) self end
registered_model(model)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 49 def registered_model(model) get_model_registration(model)[:model] end
registered_model_keys()
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 62 def registered_model_keys self.model_registrations.keys end
registered_model_name(model)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 53 def registered_model_name(model) name_from_model(get_model_registration(model)[:model]) end
set_base_table_name(model, table_name)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 45 def set_base_table_name(model, table_name) get_model_registration(model)[:base_table_name] = table_name end
Private Instance Methods
delete_model_registration(model)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 98 def delete_model_registration(model) self.model_registrations.delete(name_from_model(model)) end
get_model_registration(model)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 88 def get_model_registration(model) r = unchecked_get_model_registration(model) raise "model: #{model.to_s} is not registered in ModelSpace: #{name}" if !r r end
set_model_registration(model, registration)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 94 def set_model_registration(model, registration) self.model_registrations[name_from_model(model)] = registration end
unchecked_get_model_registration(model)
click to toggle source
# File lib/active_record/model_spaces/model_space.rb, line 81 def unchecked_get_model_registration(model) mc = all_model_superclasses(model).find do |klass| model_registrations[name_from_model(klass)] end self.model_registrations[name_from_model(mc)] if mc end