class Lolita::Adapter::ActiveRecord

Attributes

dbi[R]
klass[R]

Public Class Methods

new(dbi) click to toggle source
# File lib/lolita/adapter/active_record.rb, line 8
def initialize(dbi)
  @dbi=dbi
  @klass=dbi.klass
end

Public Instance Methods

associations() click to toggle source

Return all class associations

# File lib/lolita/adapter/active_record.rb, line 68
def associations
  # is caching ok?
  unless @associations
    @associations = {}
    klass.reflections.each{|name,association|
      @associations[name] = Association.new(association,self)
    }
  end
  @associations
end
collection() click to toggle source
# File lib/lolita/adapter/active_record.rb, line 200
def collection
  self.klass #FIXME not realy same as in mongoid
end
collection_name() click to toggle source
# File lib/lolita/adapter/active_record.rb, line 204
def collection_name
  self.klass.table_name
end
collection_name=(value) click to toggle source
# File lib/lolita/adapter/active_record.rb, line 208
def collection_name=(value)
  self.klass.table_name = value
end
collection_names() click to toggle source
# File lib/lolita/adapter/active_record.rb, line 216
def collection_names
  self.klass.connection.select_all("show tables from #{db_name}").map{|r| r.values.first}
end
collections() click to toggle source
# File lib/lolita/adapter/active_record.rb, line 212
def collections
  self.klass #FIXME not  realy same as in mongoid
end
db() click to toggle source
# File lib/lolita/adapter/active_record.rb, line 192
def db
  self.klass.connection
end
db_name() click to toggle source
# File lib/lolita/adapter/active_record.rb, line 196
def db_name
  db.current_database
end
field_by_association(name) click to toggle source
# File lib/lolita/adapter/active_record.rb, line 160
def field_by_association(name)
  possible_association = self.associations.detect{|assoc_name,association|
    name.to_s == assoc_name.to_s
  }
  if possible_association
    self.field_by_name(possible_association.last.key)
  end
end
field_by_name(name) click to toggle source
# File lib/lolita/adapter/active_record.rb, line 154
def field_by_name(name)
  self.fields.detect{|field|
    field.name.to_s == name.to_s
  }
end
fields() click to toggle source
# File lib/lolita/adapter/active_record.rb, line 147
def fields
  @fields||=self.klass.columns.collect{|column|
    Field.new(column,self)
  }
  @fields
end
nested_attributes_options() click to toggle source
# File lib/lolita/adapter/active_record.rb, line 220
def nested_attributes_options
  self.klass.nested_attributes_options
end
order_method() click to toggle source
# File lib/lolita/adapter/active_record.rb, line 224
def order_method
  :order
end