Class: MR::ReadModel::JoinSubquery
- Inherits:
-
Object
- Object
- MR::ReadModel::JoinSubquery
- Includes:
- AliasSubquery
- Defined in:
- lib/mr/read_model/subquery.rb
Constant Summary collapse
- DEFAULT_JOIN_SQL =
'JOIN'.freeze
- JOIN_SQL =
Hash.new(DEFAULT_JOIN_SQL).tap do |h| h[:inner] = 'INNER JOIN'.freeze h[:left] = 'LEFT OUTER JOIN'.freeze h[:right] = 'RIGHT OUTER JOIN'.freeze h[:full] = 'FULL OUTER JOIN'.freeze end.freeze
Instance Attribute Summary collapse
-
#join_sql ⇒ Object
readonly
Returns the value of attribute join_sql.
Attributes included from Subquery
Instance Method Summary collapse
- #build_sql(params = nil) ⇒ Object
- #conditions_sql ⇒ Object
-
#initialize(type, &block) ⇒ JoinSubquery
constructor
A new instance of JoinSubquery.
- #on(conditions) ⇒ Object
Methods included from AliasSubquery
Methods included from Subquery
Constructor Details
#initialize(type, &block) ⇒ JoinSubquery
Returns a new instance of JoinSubquery.
77 78 79 80 |
# File 'lib/mr/read_model/subquery.rb', line 77 def initialize(type, &block) @join_sql = JOIN_SQL[type] super(&block) end |
Instance Attribute Details
#join_sql ⇒ Object (readonly)
Returns the value of attribute join_sql.
75 76 77 |
# File 'lib/mr/read_model/subquery.rb', line 75 def join_sql @join_sql end |
Instance Method Details
#build_sql(params = nil) ⇒ Object
90 91 92 |
# File 'lib/mr/read_model/subquery.rb', line 90 def build_sql(params = nil) "#{self.join_sql} #{super} #{self.conditions_sql}".strip end |
#conditions_sql ⇒ Object
82 83 84 |
# File 'lib/mr/read_model/subquery.rb', line 82 def conditions_sql @conditions_sql ||= "" end |
#on(conditions) ⇒ Object
86 87 88 |
# File 'lib/mr/read_model/subquery.rb', line 86 def on(conditions) @conditions_sql = "ON #{conditions}" end |