Class: Exwiw::QueryAst::Select
- Inherits:
-
Object
- Object
- Exwiw::QueryAst::Select
- Defined in:
- lib/exwiw/query_ast.rb
Instance Attribute Summary collapse
-
#columns ⇒ Object
readonly
Returns the value of attribute columns.
-
#from_table_name ⇒ Object
readonly
Returns the value of attribute from_table_name.
-
#join_clauses ⇒ Object
readonly
Returns the value of attribute join_clauses.
-
#select_all ⇒ Object
readonly
Returns the value of attribute select_all.
-
#where_clauses ⇒ Object
readonly
Returns the value of attribute where_clauses.
Instance Method Summary collapse
- #from(table) ⇒ Object
-
#initialize ⇒ Select
constructor
A new instance of Select.
- #join(join_clause) ⇒ Object
- #select(columns) ⇒ Object
- #select_all! ⇒ Object
- #to_h ⇒ Object
- #where(where_clause) ⇒ Object
Constructor Details
#initialize ⇒ Select
Returns a new instance of Select.
115 116 117 118 119 120 121 |
# File 'lib/exwiw/query_ast.rb', line 115 def initialize @from_table_name = nil @columns = [] @where_clauses = [] @join_clauses = [] @select_all = false end |
Instance Attribute Details
#columns ⇒ Object (readonly)
Returns the value of attribute columns.
113 114 115 |
# File 'lib/exwiw/query_ast.rb', line 113 def columns @columns end |
#from_table_name ⇒ Object (readonly)
Returns the value of attribute from_table_name.
113 114 115 |
# File 'lib/exwiw/query_ast.rb', line 113 def from_table_name @from_table_name end |
#join_clauses ⇒ Object (readonly)
Returns the value of attribute join_clauses.
113 114 115 |
# File 'lib/exwiw/query_ast.rb', line 113 def join_clauses @join_clauses end |
#select_all ⇒ Object (readonly)
Returns the value of attribute select_all.
113 114 115 |
# File 'lib/exwiw/query_ast.rb', line 113 def select_all @select_all end |
#where_clauses ⇒ Object (readonly)
Returns the value of attribute where_clauses.
113 114 115 |
# File 'lib/exwiw/query_ast.rb', line 113 def where_clauses @where_clauses end |
Instance Method Details
#from(table) ⇒ Object
123 124 125 |
# File 'lib/exwiw/query_ast.rb', line 123 def from(table) @from_table_name = table end |
#join(join_clause) ⇒ Object
139 140 141 |
# File 'lib/exwiw/query_ast.rb', line 139 def join(join_clause) @join_clauses << join_clause end |
#select(columns) ⇒ Object
127 128 129 |
# File 'lib/exwiw/query_ast.rb', line 127 def select(columns) @columns = map_column_value(columns) end |
#select_all! ⇒ Object
131 132 133 |
# File 'lib/exwiw/query_ast.rb', line 131 def select_all! @select_all = true end |
#to_h ⇒ Object
143 144 145 146 147 148 149 150 |
# File 'lib/exwiw/query_ast.rb', line 143 def to_h { from: from_table_name, columns: select_all ? "*" : columns.map { |c| { name: c.name, value: c.value } }, joins: join_clauses.map(&:to_h), where: where_clauses.map { |w| w.is_a?(String) ? w : w.to_h }, } end |
#where(where_clause) ⇒ Object
135 136 137 |
# File 'lib/exwiw/query_ast.rb', line 135 def where(where_clause) @where_clauses << where_clause end |