class Dock::ActiveRecord

Public Instance Methods

all(options = {}) click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 18
def all(options = {})
  construct_relation(model, options)
end
associations() click to toggle source
# File lib/dock/adapters/active_record.rb, line 38
def associations()

end
belongs_to() click to toggle source
# File lib/dock/adapters/active_record.rb, line 57
def belongs_to()

end
column_names() click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 46
def column_names
  model.column_names
end
count(options = {}) click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 50
def count(options = {})
  all(options).count
end
create(attributes = {}) click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 6
def create(attributes = {})
  model.create!(attributes)
end
cyclic?() click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 72
def cyclic?
  false
end
destroy(object) click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 35
def destroy(object)
  object.destroy && true if valid_object?(object)
end
embedded?() click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 68
def embedded?
  false
end
encoding() click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 54
def encoding
  model.client_encoding()
end
find(id) click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 10
def find(id)
  model.find(wrap_key(id))
end
find!(id) click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 14
def find!(id)
  model.where(model.primary_key => wrap_key(id)).first
end
first(options = {}) click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 22
def first(options = {})
  construct_relation(model, options).first
end
has_many() click to toggle source
# File lib/dock/adapters/active_record.rb, line 60
def has_many()

end
id() click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 26
def id
  model.id
end
model_name() click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 42
def model_name
  model.model_name
end
properties() click to toggle source
# File lib/dock/adapters/active_record.rb, line 79
def properties()

end
scoped?() click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 64
def scoped?
  model.all
end
supports_joins?() click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 76
def supports_joins?
  true
end
update(search_key, find_by, update_key, by_value) click to toggle source

Checked

# File lib/dock/adapters/active_record.rb, line 30
def update(search_key, find_by, update_key, by_value)
  entry = model.find_by(search_key find_by)
  entry.update(update_key by_value)
end

Protected Instance Methods

conditions_to_fields(conditions) click to toggle source

Introspects the model to convert and objects in conditions into foreign key and type fields

# File lib/dock/adapters/active_record.rb, line 95
  def conditions_to_fields(conditions)
    fields = {}
    conditions.each do |key, value|
    if value.is_a?(::ActiveRecord::Base) && (assoc = model.reflect_on_association(key.to_sym)) && assoc.belongs_to?
      if ::ActiveRecord::VERSION::STRING < "3.1"
        fields[assoc.primary_key_name] = value.send(value.class.primary_key)
        fields[assoc.options[:foreign_type]] = value.class.base_class.name.to_s if assoc.options[:polymorphic]
      else # >= 3.1
        fields[assoc.foreign_key] = value.send(value.class.primary_key)
        fields[assoc.foreign_type] = value.class.base_class.name.to_s if assoc.options[:polymorphic]
      end
    else
      fields[key] = value
    end
    fields
  end

  def order_clause(order)
    order.map {|pair| "#{pair[0]} #{pair[1]}"}.join(",")
  end
end
construct_relation(relation, options) click to toggle source
# File lib/dock/adapters/active_record.rb, line 83
def construct_relation(relation, options)
  conditions, order, limit, offset = extract_conditions!(options)

  relation = relation.where(conditions_to_fields(conditions))
  relation = relation.order(order_clause(order)) if order.any?
  relation = relation.limit(limit) if limit
  relation = relation.offset(offset) if offset

  relation
end
order_clause(order) click to toggle source
# File lib/dock/adapters/active_record.rb, line 112
def order_clause(order)
  order.map {|pair| "#{pair[0]} #{pair[1]}"}.join(",")
end