Class: Predefined::ActiveRecordQuery
- Inherits:
-
Query
- Object
- Query
- Predefined::ActiveRecordQuery
show all
- Defined in:
- lib/predefined/active_record.rb
Defined Under Namespace
Classes: Database
Instance Attribute Summary
Attributes inherited from Query
#name
Instance Method Summary
collapse
Methods inherited from Query
format_query, #initialize, template, #template, template_file, template_missing, template_paths, template_paths=
Instance Method Details
#connection ⇒ Object
9
10
11
|
# File 'lib/predefined/active_record.rb', line 9
def connection
Database.connection
end
|
#result_to_rows(result) ⇒ Object
TODO: Is there a way to do this built-in to ActiveRecord?
51
52
53
54
55
56
57
58
59
|
# File 'lib/predefined/active_record.rb', line 51
def result_to_rows(result)
result.rows.map do |row|
typed_row = result.columns.zip(row).map do |column_name, value|
typed_value = result.column_types[column_name].send(:type_cast, value)
[column_name.to_sym, typed_value]
end
Hash[typed_row]
end
end
|
#select_all(params = nil) ⇒ Object
17
18
19
|
# File 'lib/predefined/active_record.rb', line 17
def select_all(params=nil)
result_to_rows(connection.select_all(to_sql(params), name))
end
|
#select_object(klass, params = nil) ⇒ Object
37
38
39
40
41
42
|
# File 'lib/predefined/active_record.rb', line 37
def select_object(klass, params=nil)
record = connection.select_one(to_sql(params), name)
if record
klass.new(record)
end
end
|
#select_objects(klass, params = nil) ⇒ Object
44
45
46
47
48
|
# File 'lib/predefined/active_record.rb', line 44
def select_objects(klass, params=nil)
connection.select_all(to_sql(params), name).map do |row|
klass.new(row)
end
end
|
#select_one(params = nil) ⇒ Object
21
22
23
|
# File 'lib/predefined/active_record.rb', line 21
def select_one(params=nil)
select_all(params).first
end
|
#select_rows(params = nil) ⇒ Object
25
26
27
|
# File 'lib/predefined/active_record.rb', line 25
def select_rows(params=nil)
connection.select_rows(to_sql(params), name)
end
|
#select_value(params = nil) ⇒ Object
33
34
35
|
# File 'lib/predefined/active_record.rb', line 33
def select_value(params=nil)
connection.select_value(to_sql(params), name)
end
|
#select_values(params = nil) ⇒ Object
29
30
31
|
# File 'lib/predefined/active_record.rb', line 29
def select_values(params=nil)
connection.select_values(to_sql(params), name)
end
|
#to_sql(params = nil) ⇒ Object
13
14
15
|
# File 'lib/predefined/active_record.rb', line 13
def to_sql(params=nil)
Database.send(:sanitize_sql, [template, params])
end
|