class Dock::SinatraActiveRecord
Public Instance Methods
all(options = {})
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 18 def all(options = {}) construct_relation(model, options) end
associations()
click to toggle source
# File lib/dock/adapters/sinatra_ar.rb, line 38 def associations() end
belongs_to()
click to toggle source
# File lib/dock/adapters/sinatra_ar.rb, line 56 def belongs_to() end
column_names()
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 46 def column_names() model.column_names end
count(options = {})
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 50 def count(options = {}) all(options).count end
create(attributes = {})
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 6 def create(attributes = {}) model.create!(attributes) end
cyclic?()
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 71 def cyclic? false end
destroy(object)
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 35 def destroy(object) object.destroy && true if valid_object?(object) end
embedded?()
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 67 def embedded? false end
encoding()
click to toggle source
# File lib/dock/adapters/sinatra_ar.rb, line 53 def encoding model.client_encoding() end
find(id)
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 10 def find(id) model.find(wrap_key(id)) end
find!(id)
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.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/sinatra_ar.rb, line 22 def first(options = {}) construct_relation(model, options).first end
has_many()
click to toggle source
# File lib/dock/adapters/sinatra_ar.rb, line 59 def has_many() end
id()
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 26 def id model.id end
model_name()
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 42 def model_name model.model_name end
properties()
click to toggle source
# File lib/dock/adapters/sinatra_ar.rb, line 78 def properties() end
scoped?()
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 63 def scoped? model.all end
supports_joins?()
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.rb, line 75 def supports_joins? true end
update(search_key, find_by, update_key, by_value)
click to toggle source
Checked
# File lib/dock/adapters/sinatra_ar.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/sinatra_ar.rb, line 94 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 end fields end
construct_relation(relation, options)
click to toggle source
# File lib/dock/adapters/sinatra_ar.rb, line 82 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/sinatra_ar.rb, line 114 def order_clause(order) order.map {|pair| "#{pair[0]} #{pair[1]}"}.join(",") end