Module: Spree::Report::QueryFragments
- Defined in:
- app/reports/spree/report/query_fragments.rb
Class Method Summary collapse
- .day(column, as = 'day') ⇒ Object
- .extract_from_date(part, column, as) ⇒ Object
- .from_join(subquery1, subquery2, join_expr) ⇒ Object
- .from_subquery(subquery, as: 'results') ⇒ Object
- .from_union(subquery1, subquery2, as: 'results') ⇒ Object
- .hour(column, as = 'hour') ⇒ Object
- .if_null(val, default_val) ⇒ Object
- .month(column, as = 'month') ⇒ Object
- .sum(node) ⇒ Object
- .week(column, as = 'week') ⇒ Object
- .year(column, as = 'year') ⇒ Object
Class Method Details
.day(column, as = 'day') ⇒ Object
26 27 28 |
# File 'app/reports/spree/report/query_fragments.rb', line 26 def self.day(column, as='day') extract_from_date(:day, column, as) end |
.extract_from_date(part, column, as) ⇒ Object
34 35 36 |
# File 'app/reports/spree/report/query_fragments.rb', line 34 def self.extract_from_date(part, column, as) "EXTRACT(#{ part } from #{ column }) AS #{ as }" end |
.from_join(subquery1, subquery2, join_expr) ⇒ Object
6 7 8 |
# File 'app/reports/spree/report/query_fragments.rb', line 6 def self.from_join(subquery1, subquery2, join_expr) Arel::SelectManager.new(Arel.sql("((#{ subquery1.to_sql }) as q1 JOIN (#{ subquery2.to_sql }) as q2 ON #{ join_expr })")) end |
.from_subquery(subquery, as: 'results') ⇒ Object
2 3 4 |
# File 'app/reports/spree/report/query_fragments.rb', line 2 def self.from_subquery(subquery, as: 'results') Arel::SelectManager.new(Arel.sql("(#{subquery.to_sql}) as #{ as }")) end |
.from_union(subquery1, subquery2, as: 'results') ⇒ Object
10 11 12 |
# File 'app/reports/spree/report/query_fragments.rb', line 10 def self.from_union(subquery1, subquery2, as: 'results') Arel::SelectManager.new(Arel.sql("((#{ subquery1.to_sql }) UNION (#{ subquery2.to_sql })) as #{ as }")) end |
.hour(column, as = 'hour') ⇒ Object
30 31 32 |
# File 'app/reports/spree/report/query_fragments.rb', line 30 def self.hour(column, as='hour') extract_from_date(:hour, column, as) end |
.if_null(val, default_val) ⇒ Object
38 39 40 |
# File 'app/reports/spree/report/query_fragments.rb', line 38 def self.if_null(val, default_val) Arel::Nodes::NamedFunction.new('COALESCE', [val, default_val]) end |
.month(column, as = 'month') ⇒ Object
18 19 20 |
# File 'app/reports/spree/report/query_fragments.rb', line 18 def self.month(column, as='month') extract_from_date(:month, column, as) end |
.sum(node) ⇒ Object
42 43 44 |
# File 'app/reports/spree/report/query_fragments.rb', line 42 def self.sum(node) Arel::Nodes::NamedFunction.new('SUM', [node]) end |
.week(column, as = 'week') ⇒ Object
22 23 24 |
# File 'app/reports/spree/report/query_fragments.rb', line 22 def self.week(column, as='week') extract_from_date(:week, column, as) end |
.year(column, as = 'year') ⇒ Object
14 15 16 |
# File 'app/reports/spree/report/query_fragments.rb', line 14 def self.year(column, as='year') extract_from_date(:year, column, as) end |