Class: Exwiw::QueryAst::JoinClause
- Inherits:
-
Object
- Object
- Exwiw::QueryAst::JoinClause
- Defined in:
- lib/exwiw/query_ast.rb
Instance Attribute Summary collapse
-
#base_table_name ⇒ Object
readonly
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対して コンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元 テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へ polymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル 側に存在するケースのために使う。.
-
#base_where_clauses ⇒ Object
readonly
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対して コンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元 テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へ polymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル 側に存在するケースのために使う。.
-
#foreign_key ⇒ Object
readonly
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対して コンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元 テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へ polymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル 側に存在するケースのために使う。.
-
#join_table_name ⇒ Object
readonly
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対して コンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元 テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へ polymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル 側に存在するケースのために使う。.
-
#primary_key ⇒ Object
readonly
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対して コンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元 テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へ polymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル 側に存在するケースのために使う。.
-
#where_clauses ⇒ Object
readonly
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対して コンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元 テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へ polymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル 側に存在するケースのために使う。.
Instance Method Summary collapse
-
#initialize(base_table_name:, foreign_key:, join_table_name:, primary_key:, where_clauses: [], base_where_clauses: []) ⇒ JoinClause
constructor
A new instance of JoinClause.
- #to_h ⇒ Object
Constructor Details
#initialize(base_table_name:, foreign_key:, join_table_name:, primary_key:, where_clauses: [], base_where_clauses: []) ⇒ JoinClause
Returns a new instance of JoinClause.
13 14 15 16 17 18 19 20 |
# File 'lib/exwiw/query_ast.rb', line 13 def initialize(base_table_name:, foreign_key:, join_table_name:, primary_key:, where_clauses: [], base_where_clauses: []) @base_table_name = base_table_name @foreign_key = foreign_key @join_table_name = join_table_name @primary_key = primary_key @where_clauses = where_clauses @base_where_clauses = base_where_clauses end |
Instance Attribute Details
#base_table_name ⇒ Object (readonly)
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対してコンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へpolymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル側に存在するケースのために使う。
11 12 13 |
# File 'lib/exwiw/query_ast.rb', line 11 def base_table_name @base_table_name end |
#base_where_clauses ⇒ Object (readonly)
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対してコンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へpolymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル側に存在するケースのために使う。
11 12 13 |
# File 'lib/exwiw/query_ast.rb', line 11 def base_where_clauses @base_where_clauses end |
#foreign_key ⇒ Object (readonly)
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対してコンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へpolymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル側に存在するケースのために使う。
11 12 13 |
# File 'lib/exwiw/query_ast.rb', line 11 def foreign_key @foreign_key end |
#join_table_name ⇒ Object (readonly)
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対してコンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へpolymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル側に存在するケースのために使う。
11 12 13 |
# File 'lib/exwiw/query_ast.rb', line 11 def join_table_name @join_table_name end |
#primary_key ⇒ Object (readonly)
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対してコンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へpolymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル側に存在するケースのために使う。
11 12 13 |
# File 'lib/exwiw/query_ast.rb', line 11 def primary_key @primary_key end |
#where_clauses ⇒ Object (readonly)
‘where_clauses` はこの join の join_table_name (= 結合先テーブル) に対してコンパイルされる。一方 `base_where_clauses` は base_table_name (= 結合元テーブル) に対してコンパイルされる。後者は、結合元テーブルが結合先へpolymorphic belongs_to していて型カラム (foreign_type) が結合元テーブル側に存在するケースのために使う。
11 12 13 |
# File 'lib/exwiw/query_ast.rb', line 11 def where_clauses @where_clauses end |
Instance Method Details
#to_h ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/exwiw/query_ast.rb', line 22 def to_h hash = { base_table_name: base_table_name, foreign_key: foreign_key, join_table_name: join_table_name, primary_key: primary_key, } if where_clauses.size.positive? hash[:where_clauses] = where_clauses.map { |wc| wc.is_a?(String) ? wc : wc.to_h } end if base_where_clauses.size.positive? hash[:base_where_clauses] = base_where_clauses.map { |wc| wc.is_a?(String) ? wc : wc.to_h } end hash end |