Class: Arel::Middleware::ToSqlMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/arel/middleware/to_sql_middleware.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type) ⇒ ToSqlMiddleware

Returns a new instance of ToSqlMiddleware.



6
7
8
9
10
# File 'lib/arel/middleware/to_sql_middleware.rb', line 6

def initialize(type)
  @sql = []
  @type = type
  @query_class = class_from_type
end

Instance Attribute Details

#query_classObject (readonly)

Returns the value of attribute query_class.



4
5
6
# File 'lib/arel/middleware/to_sql_middleware.rb', line 4

def query_class
  @query_class
end

#sqlObject (readonly)

Returns the value of attribute sql.



4
5
6
# File 'lib/arel/middleware/to_sql_middleware.rb', line 4

def sql
  @sql
end

#typeObject (readonly)

Returns the value of attribute type.



4
5
6
# File 'lib/arel/middleware/to_sql_middleware.rb', line 4

def type
  @type
end

Instance Method Details

#call(next_arel, next_middleware) ⇒ Object



12
13
14
15
# File 'lib/arel/middleware/to_sql_middleware.rb', line 12

def call(next_arel, next_middleware)
  sql << next_arel.to_sql unless next_arel.query(class: query_class).empty?
  next_middleware.call(next_arel)
end