Class: Card::Query
- Inherits:
-
Object
show all
- Defined in:
- lib/card/query.rb,
lib/card/query/ref_clause.rb,
lib/card/query/card_clause.rb,
lib/card/query/value_clause.rb
Defined Under Namespace
Classes: CardClause, Clause, RefClause, SqlCond, SqlStatement, ValueClause
Constant Summary
collapse
- MODIFIERS =
{}
- OPERATORS =
%w{ != = =~ < > in ~ }.inject({}) {|h,v| h[v]=nil; h }.merge({
:eq => '=', :gt => '>', :lt => '<',
:match => '~', :ne => '!=', 'not in' => nil
}.stringify_keys)
Instance Method Summary
collapse
Constructor Details
#initialize(query) ⇒ Query
Returns a new instance of Query.
16
17
18
|
# File 'lib/card/query.rb', line 16
def initialize query
@card_clause = CardClause.build query
end
|
Instance Method Details
20
21
22
|
# File 'lib/card/query.rb', line 20
def query
@card_clause.query
end
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/card/query.rb', line 28
def run
rows = ActiveRecord::Base.connection.select_all( sql )
retrn = query[:return].present? ? query[:return].to_s : 'card'
case retrn
when 'card'
rows.map do |row|
card=
if query[:prepend] || query[:append]
cardname = [query[:prepend], row['name'], query[:append]].compact.join('+')
Card.fetch cardname, :new=>{}
else
Card[ row['name'] ]
end
card.nil? ? Card.find_by_name_and_trash(row['name'],false).repair_key : card
end
when 'count'
rows.first['count'].to_i
when 'raw'
rows
else
integer = ( retrn =~ /id$/ )
rows.map do |row|
integer ? row[retrn].to_i : row[retrn]
end
end
end
|
24
25
26
|
# File 'lib/card/query.rb', line 24
def sql
@sql ||= @card_clause.to_sql
end
|