Module: ActsAsFu
- Defined in:
- lib/acts_as_fu/base.rb
Defined Under Namespace
Classes: Connection
Instance Method Summary collapse
Instance Method Details
#build_model(name, options = {}, &block) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/acts_as_fu/base.rb', line 22 def build_model(name, ={}, &block) connect! unless connected? klass_name = name.to_s.classify super_class = [:superclass] || ActsAsFu::Connection contained = [:contained] || Object begin old_klass = contained.const_get(klass_name) old_klass.reset_column_information if old_klass.respond_to?(:reset_column_information) rescue end contained.send(:remove_const, klass_name) rescue nil klass = Class.new(super_class) contained.const_set(klass_name, klass) # table_name isn't available until after the class is created. if super_class == ActsAsFu::Connection ActsAsFu::Connection.connection.create_table(klass.table_name, :force => true) { } end model_eval(klass, &block) klass end |