Generated by [trace_location](https://github.com/yhirano55/trace_location) at 2019-06-08 01:37:49 +0900
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:43
##### ActionController::Instrumentation#render
```ruby
def render(*args)
render_output = nil
self.view_runtime = cleanup_view_runtime do
Benchmark.ms { render_output = super }
end
render_output
end
# called from app/controllers/books_controller.rb:9
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/railties/controller_runtime.rb:27
##### ActiveRecord::Railties::ControllerRuntime#cleanup_view_runtime
```ruby
def cleanup_view_runtime
if logger && logger.info? && ActiveRecord::Base.connected?
db_rt_before_render = ActiveRecord::LogSubscriber.reset_runtime
self.db_runtime = (db_runtime || 0) + db_rt_before_render
runtime = super
db_rt_after_render = ActiveRecord::LogSubscriber.reset_runtime
self.db_runtime += db_rt_after_render
runtime - db_rt_after_render
else
super
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:45
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:122
##### ActiveRecord::ConnectionHandling.connected?
```ruby
def connected?
connection_handler.connected?(connection_specification_name)
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/railties/controller_runtime.rb:28
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/core.rb:130
##### ActiveRecord::Base.connection_handler
```ruby
def self.connection_handler
ActiveRecord::RuntimeRegistry.connection_handler || default_connection_handler
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:123
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/runtime_registry.rb:20
##### ActiveRecord::RuntimeRegistry.connection_handler
```ruby
class_eval %{ def self.#{val}; instance.#{val}; end }, __FILE__, __LINE__
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/core.rb:131
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:96
##### ActiveRecord::ConnectionHandling.connection_specification_name
```ruby
def connection_specification_name
if !defined?(@connection_specification_name) || @connection_specification_name.nil?
return self == Base ? "primary" : superclass.connection_specification_name
end
@connection_specification_name
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:123
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1019
##### ActiveRecord::ConnectionAdapters::ConnectionHandler#connected?
```ruby
def connected?(spec_name)
conn = retrieve_connection_pool(spec_name)
conn && conn.connected?
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:123
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1039
##### ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection_pool
```ruby
def retrieve_connection_pool(spec_name)
owner_to_pool.fetch(spec_name) do
# Check if a connection was previously established in an ancestor process,
# which may have been forked.
if ancestor_pool = pool_from_any_process_for(spec_name)
# A connection was established in an ancestor process that must have
# subsequently forked. We can't reuse the connection, but we can copy
# the specification and establish a new connection with it.
establish_connection(ancestor_pool.spec.to_hash).tap do |pool|
pool.schema_cache = ancestor_pool.schema_cache if ancestor_pool.schema_cache
end
else
owner_to_pool[spec_name] = nil
end
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1020
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1058
##### ActiveRecord::ConnectionAdapters::ConnectionHandler#owner_to_pool
```ruby
def owner_to_pool
@owner_to_pool[Process.pid]
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1040
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:422
##### ActiveRecord::ConnectionAdapters::ConnectionPool#connected?
```ruby
def connected?
synchronize { @connections.any? }
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1021
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:15
##### ActiveRecord::LogSubscriber.reset_runtime
```ruby
def self.reset_runtime
rt, self.runtime = runtime, 0
rt
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/railties/controller_runtime.rb:29
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:11
##### ActiveRecord::LogSubscriber.runtime
```ruby
def self.runtime
ActiveRecord::RuntimeRegistry.sql_runtime ||= 0
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:16
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/runtime_registry.rb:20
##### ActiveRecord::RuntimeRegistry.sql_runtime
```ruby
class_eval %{ def self.#{val}; instance.#{val}; end }, __FILE__, __LINE__
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:12
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:7
##### ActiveRecord::LogSubscriber.runtime=
```ruby
def self.runtime=(value)
ActiveRecord::RuntimeRegistry.sql_runtime = value
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:16
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/runtime_registry.rb:21
##### ActiveRecord::RuntimeRegistry.sql_runtime=
```ruby
class_eval %{ def self.#{val}=(x); instance.#{val}=x; end }, __FILE__, __LINE__
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:8
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:86
##### ActiveRecord::Railties::ControllerRuntime#cleanup_view_runtime
```ruby
def cleanup_view_runtime
if logger && logger.info? && ActiveRecord::Base.connected?
db_rt_before_render = ActiveRecord::LogSubscriber.reset_runtime
self.db_runtime = (db_runtime || 0) + db_rt_before_render
runtime = super
db_rt_after_render = ActiveRecord::LogSubscriber.reset_runtime
self.db_runtime += db_rt_after_render
runtime - db_rt_after_render
else
super
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/railties/controller_runtime.rb:31
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:34
##### ActionController::Instrumentation#render
```ruby
def render(*args)
render_output = nil
self.view_runtime = cleanup_view_runtime do
Benchmark.ms { render_output = super }
end
render_output
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/instrumentation.rb:46
```
vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:23
##### ActionController::Instrumentation#render
```ruby
def render(*args)
render_output = nil
self.view_runtime = cleanup_view_runtime do
Benchmark.ms { render_output = super }
end
render_output
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:36
```
vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:116
##### AbstractController::Rendering#_normalize_render
```ruby
def _normalize_render(*args, &block) # :nodoc:
options = _normalize_args(*args, &block)
_process_variant(options)
_normalize_options(options)
options
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:24
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:82
##### ActionController::Rendering#_normalize_args
```ruby
def _normalize_args(action = nil, options = {}, &blk)
options = super
options[:update] = blk if block_given?
options
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:117
```
vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:78
##### ActionController::Rendering#_normalize_args
```ruby
def _normalize_args(action = nil, options = {}, &blk)
options = super
options[:update] = blk if block_given?
options
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:83
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:57
##### ActionController::Rendering#_process_variant
```ruby
def _process_variant(options)
if defined?(request) && !request.nil? && request.variant.present?
options[:variant] = request.variant
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:118
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/mime_negotiation.rb:100
##### ActionDispatch::Http::MimeNegotiation#variant
```ruby
def variant
@variant ||= ActiveSupport::ArrayInquirer.new
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:58
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:89
##### ActionController::Rendering#_normalize_options
```ruby
def _normalize_options(options)
_normalize_text(options)
if options[:html]
options[:html] = ERB::Util.html_escape(options[:html])
end
if options[:status]
options[:status] = Rack::Utils.status_code(options[:status])
end
super
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:119
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:103
##### ActionController::Rendering#_normalize_text
```ruby
def _normalize_text(options)
RENDER_FORMATS_IN_PRIORITY.each do |format|
if options.key?(format) && options[format].respond_to?(:to_text)
options[format] = options[format].to_text
end
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:90
```
vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:93
##### ActionController::Rendering#_normalize_options
```ruby
def _normalize_options(options)
_normalize_text(options)
if options[:html]
options[:html] = ERB::Util.html_escape(options[:html])
end
if options[:status]
options[:status] = Rack::Utils.status_code(options[:status])
end
super
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:100
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:141
##### ActionController::Renderers#render_to_body
```ruby
def render_to_body(options)
_render_to_body_with_renderer(options) || super
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:25
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:145
##### ActionController::Renderers#_render_to_body_with_renderer
```ruby
def _render_to_body_with_renderer(options)
_renderers.each do |name|
if options.key?(name)
_process_options(options)
method_name = Renderers._render_with_renderer_method_name(name)
return send(method_name, options.delete(name), options)
end
end
nil
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:142
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:112
##### ActionController::Rendering#_process_options
```ruby
def _process_options(options)
status, content_type, location = options.values_at(:status, :content_type, :location)
self.status = status if status
self.content_type = content_type if content_type
headers["Location"] = url_for(location) if location
super
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:148
```
vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:98
##### ActionController::Rendering#_process_options
```ruby
def _process_options(options)
status, content_type, location = options.values_at(:status, :content_type, :location)
self.status = status if status
self.content_type = content_type if content_type
headers["Location"] = url_for(location) if location
super
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:119
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:91
##### ActionController::Renderers._render_with_renderer_method_name
```ruby
def self._render_with_renderer_method_name(key)
"_render_with_renderer_#{key}"
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:149
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:156
##### ActionController::Renderers#_render_with_renderer_json
```ruby
add :json do |json, options|
json = json.to_json(options) unless json.kind_of?(String)
if options[:callback].present?
if content_type.nil? || content_type == Mime[:json]
self.content_type = Mime[:js]
end
"/**/#{options[:callback]}(#{json})"
else
self.content_type ||= Mime[:json]
json
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:150
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/delegation.rb:71
##### ActiveRecord::Delegation#as_json
```ruby
delegate :to_xml, :encode_with, :length, :each, :uniq, :join,
:[], :&, :|, :+, :-, :sample, :reverse, :rotate, :compact, :in_groups, :in_groups_of,
:to_sentence, :to_formatted_s, :as_json,
:shuffle, :split, :slice, :index, :rindex, to: :records
# called from vendor/bundle/gems/activesupport-5.2.3/lib/active_support/json/encoding.rb:35
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:199
##### ActiveRecord::Relation#records
```ruby
def records # :nodoc:
load
@records
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/delegation.rb:71
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:421
##### ActiveRecord::Relation#load
```ruby
def load(&block)
exec_queries(&block) unless loaded?
self
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:200
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:546
##### ActiveRecord::Relation#exec_queries
```ruby
def exec_queries(&block)
skip_query_cache_if_necessary do
@records =
if eager_loading?
apply_join_dependency do |relation, join_dependency|
if ActiveRecord::NullRelation === relation
[]
else
relation = join_dependency.apply_column_aliases(relation)
rows = connection.select_all(relation.arel, "SQL")
join_dependency.instantiate(rows, &block)
end.freeze
end
else
klass.find_by_sql(arel, &block).freeze
end
preload = preload_values
preload += includes_values unless eager_loading?
preloader = nil
preload.each do |associations|
preloader ||= build_preloader
preloader.preload @records, associations
end
@records.each(&:readonly!) if readonly_value
@loaded = true
@records
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:422
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:578
##### ActiveRecord::Relation#skip_query_cache_if_necessary
```ruby
def skip_query_cache_if_necessary
if skip_query_cache_value
uncached do
yield
end
else
yield
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:547
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#skip_query_cache_value
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:579
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:472
##### ActiveRecord::Relation#eager_loading?
```ruby
def eager_loading?
@should_eager_load ||=
eager_load_values.any? ||
includes_values.any? && (joined_includes_values.any? || references_eager_loaded_tables?)
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:549
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#eager_load_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:474
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#includes_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:475
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:902
##### ActiveRecord::QueryMethods#arel
```ruby
def arel(aliases = nil) # :nodoc:
@arel ||= build_arel(aliases)
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:560
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:926
##### ActiveRecord::QueryMethods#build_arel
```ruby
def build_arel(aliases)
arel = Arel::SelectManager.new(table)
aliases = build_joins(arel, joins_values.flatten, aliases) unless joins_values.empty?
build_left_outer_joins(arel, left_outer_joins_values.flatten, aliases) unless left_outer_joins_values.empty?
arel.where(where_clause.ast) unless where_clause.empty?
arel.having(having_clause.ast) unless having_clause.empty?
if limit_value
limit_attribute = ActiveModel::Attribute.with_cast_value(
"LIMIT".freeze,
connection.sanitize_limit(limit_value),
Type.default_value,
)
arel.take(Arel::Nodes::BindParam.new(limit_attribute))
end
if offset_value
offset_attribute = ActiveModel::Attribute.with_cast_value(
"OFFSET".freeze,
offset_value.to_i,
Type.default_value,
)
arel.skip(Arel::Nodes::BindParam.new(offset_attribute))
end
arel.group(*arel_columns(group_values.uniq.reject(&:blank?))) unless group_values.empty?
build_order(arel)
build_select(arel)
arel.distinct(distinct_value)
arel.from(build_from) unless from_clause.empty?
arel.lock(lock_value) if lock_value
arel
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:903
```
vendor/bundle/gems/arel-9.0.0/lib/arel/select_manager.rb:10
##### Arel::SelectManager#initialize
```ruby
def initialize table = nil
super()
@ast = Nodes::SelectStatement.new
@ctx = @ast.cores.last
from table
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:927
```
vendor/bundle/gems/arel-9.0.0/lib/arel/tree_manager.rb:10
##### Arel::SelectManager#initialize
```ruby
def initialize table = nil
super()
@ast = Nodes::SelectStatement.new
@ctx = @ast.cores.last
from table
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/select_manager.rb:11
```
vendor/bundle/gems/arel-9.0.0/lib/arel/nodes/select_core.rb:8
##### Arel::Nodes::SelectCore#initialize
```ruby
def initialize
super()
@source = JoinSource.new nil
@top = nil
# http://savage.net.au/SQL/sql-92.bnf.html#set%20quantifier
@set_quantifier = nil
@projections = []
@wheres = []
@groups = []
@havings = []
@windows = []
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/nodes/select_statement.rb:8
```
vendor/bundle/gems/arel-9.0.0/lib/arel/nodes/join_source.rb:10
##### Arel::Nodes::JoinSource#initialize
```ruby
def initialize single_source, joinop = []
super
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/nodes/select_core.rb:10
```
vendor/bundle/gems/arel-9.0.0/lib/arel/nodes/binary.rb:7
##### Arel::Nodes::JoinSource#initialize
```ruby
def initialize single_source, joinop = []
super
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/nodes/join_source.rb:11
```
vendor/bundle/gems/arel-9.0.0/lib/arel/nodes/select_statement.rb:8
##### Arel::Nodes::SelectStatement#initialize
```ruby
def initialize cores = [SelectCore.new]
super()
@cores = cores
@orders = []
@limit = nil
@lock = nil
@offset = nil
@with = nil
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/select_manager.rb:12
```
vendor/bundle/gems/arel-9.0.0/lib/arel/select_manager.rb:88
##### Arel::SelectManager#from
```ruby
def from table
table = Nodes::SqlLiteral.new(table) if String === table
case table
when Nodes::Join
@ctx.source.right << table
else
@ctx.source.left = table
end
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/select_manager.rb:14
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#joins_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:929
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#left_outer_joins_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:930
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#where_clause
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:932
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/where_clause.rb:6
##### ActiveRecord::Relation::WhereClause#empty?
```ruby
delegate :any?, :empty?, to: :predicates
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:932
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#having_clause
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:933
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/where_clause.rb:6
##### ActiveRecord::Relation::WhereClause#empty?
```ruby
delegate :any?, :empty?, to: :predicates
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:933
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#limit_value
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:934
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#offset_value
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:942
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#group_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:950
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:1121
##### ActiveRecord::QueryMethods#build_order
```ruby
def build_order(arel)
orders = order_values.uniq
orders.reject!(&:blank?)
arel.order(*orders) unless orders.empty?
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:952
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#order_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:1122
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:1042
##### ActiveRecord::QueryMethods#build_select
```ruby
def build_select(arel)
if select_values.any?
arel.project(*arel_columns(select_values.uniq))
elsif klass.ignored_columns.any?
arel.project(*klass.column_names.map { |field| arel_attribute(field) })
else
arel.project(table[Arel.star])
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:954
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#select_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:1043
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:264
##### ActiveRecord::ModelSchema::ClassMethods.ignored_columns
```ruby
def ignored_columns
if defined?(@ignored_columns)
@ignored_columns
else
superclass.ignored_columns
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:1045
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:264
##### ActiveRecord::ModelSchema::ClassMethods.ignored_columns
```ruby
def ignored_columns
if defined?(@ignored_columns)
@ignored_columns
else
superclass.ignored_columns
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:268
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:264
##### ActiveRecord::ModelSchema::ClassMethods.ignored_columns
```ruby
def ignored_columns
if defined?(@ignored_columns)
@ignored_columns
else
superclass.ignored_columns
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:268
```
vendor/bundle/gems/arel-9.0.0/lib/arel.rb:33
##### Arel.star
```ruby
def self.star
sql '*'
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:1048
```
vendor/bundle/gems/arel-9.0.0/lib/arel.rb:29
##### Arel.sql
```ruby
def self.sql raw_sql
Arel::Nodes::SqlLiteral.new raw_sql
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel.rb:34
```
vendor/bundle/gems/arel-9.0.0/lib/arel/table.rb:80
##### Arel::Table#[]
```ruby
def [] name
::Arel::Attribute.new self, name
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:1048
```
vendor/bundle/gems/arel-9.0.0/lib/arel/select_manager.rb:133
##### Arel::SelectManager#project
```ruby
def project *projections
# FIXME: converting these to SQLLiterals is probably not good, but
# rails tests require it.
@ctx.projections.concat projections.map { |x|
STRING_OR_SYMBOL_CLASS.include?(x.class) ? Nodes::SqlLiteral.new(x.to_s) : x
}
self
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:1048
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#distinct_value
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:956
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/arel-9.0.0/lib/arel/select_manager.rb:150
##### Arel::SelectManager#distinct
```ruby
def distinct(value = true)
if value
@ctx.set_quantifier = Arel::Nodes::Distinct.new
else
@ctx.set_quantifier = nil
end
self
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:956
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#from_clause
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:957
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/from_clause.rb:17
##### ActiveRecord::Relation::FromClause#empty?
```ruby
def empty?
value.nil?
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:957
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#lock_value
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:958
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/querying.rb:40
##### ActiveRecord::Querying.find_by_sql
```ruby
def find_by_sql(sql, binds = [], preparable: nil, &block)
result_set = connection.select_all(sanitize_sql(sql), "#{name} Load", binds, preparable: preparable)
column_types = result_set.column_types.dup
attribute_types.each_key { |k| column_types.delete k }
message_bus = ActiveSupport::Notifications.instrumenter
payload = {
record_count: result_set.length,
class_name: name
}
message_bus.instrument("instantiation.active_record", payload) do
result_set.map { |record| instantiate(record, column_types, &block) }
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:560
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:89
##### ActiveRecord::ConnectionHandling.connection
```ruby
def connection
retrieve_connection
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/querying.rb:41
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:117
##### ActiveRecord::ConnectionHandling.retrieve_connection
```ruby
def retrieve_connection
connection_handler.retrieve_connection(connection_specification_name)
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:90
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/core.rb:130
##### ActiveRecord::Base.connection_handler
```ruby
def self.connection_handler
ActiveRecord::RuntimeRegistry.connection_handler || default_connection_handler
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:118
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/runtime_registry.rb:20
##### ActiveRecord::RuntimeRegistry.connection_handler
```ruby
class_eval %{ def self.#{val}; instance.#{val}; end }, __FILE__, __LINE__
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/core.rb:131
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:96
##### ActiveRecord::ConnectionHandling.connection_specification_name
```ruby
def connection_specification_name
if !defined?(@connection_specification_name) || @connection_specification_name.nil?
return self == Base ? "primary" : superclass.connection_specification_name
end
@connection_specification_name
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:118
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:96
##### ActiveRecord::ConnectionHandling.connection_specification_name
```ruby
def connection_specification_name
if !defined?(@connection_specification_name) || @connection_specification_name.nil?
return self == Base ? "primary" : superclass.connection_specification_name
end
@connection_specification_name
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:98
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:96
##### ActiveRecord::ConnectionHandling.connection_specification_name
```ruby
def connection_specification_name
if !defined?(@connection_specification_name) || @connection_specification_name.nil?
return self == Base ? "primary" : superclass.connection_specification_name
end
@connection_specification_name
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:98
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1011
##### ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection
```ruby
def retrieve_connection(spec_name) #:nodoc:
pool = retrieve_connection_pool(spec_name)
raise ConnectionNotEstablished, "No connection pool with '#{spec_name}' found." unless pool
pool.connection
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:118
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1039
##### ActiveRecord::ConnectionAdapters::ConnectionHandler#retrieve_connection_pool
```ruby
def retrieve_connection_pool(spec_name)
owner_to_pool.fetch(spec_name) do
# Check if a connection was previously established in an ancestor process,
# which may have been forked.
if ancestor_pool = pool_from_any_process_for(spec_name)
# A connection was established in an ancestor process that must have
# subsequently forked. We can't reuse the connection, but we can copy
# the specification and establish a new connection with it.
establish_connection(ancestor_pool.spec.to_hash).tap do |pool|
pool.schema_cache = ancestor_pool.schema_cache if ancestor_pool.schema_cache
end
else
owner_to_pool[spec_name] = nil
end
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1012
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1058
##### ActiveRecord::ConnectionAdapters::ConnectionHandler#owner_to_pool
```ruby
def owner_to_pool
@owner_to_pool[Process.pid]
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1040
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:381
##### ActiveRecord::ConnectionAdapters::ConnectionPool#connection
```ruby
def connection
@thread_cached_conns[connection_cache_key(@lock_thread || Thread.current)] ||= checkout
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1014
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:667
##### ActiveRecord::ConnectionAdapters::ConnectionPool#connection_cache_key
```ruby
def connection_cache_key(thread)
thread
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:382
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/sanitization.rb:22
##### ActiveRecord::Sanitization::ClassMethods.sanitize_sql_for_conditions
```ruby
def sanitize_sql_for_conditions(condition)
return nil if condition.blank?
case condition
when Array; sanitize_sql_array(condition)
else condition
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/querying.rb:41
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:95
##### ActiveRecord::ConnectionAdapters::QueryCache#select_all
```ruby
def select_all(arel, name = nil, binds = [], preparable: nil)
if @query_cache_enabled && !locked?(arel)
arel = arel_from_relation(arel)
sql, binds = to_sql_and_binds(arel, binds)
if preparable.nil?
preparable = prepared_statements ? visitor.preparable : false
end
cache_sql(sql, name, binds) { super(sql, name, binds, preparable: preparable) }
else
super
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/querying.rb:41
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:135
##### ActiveRecord::ConnectionAdapters::QueryCache#locked?
```ruby
def locked?(arel)
arel = arel.arel if arel.is_a?(Relation)
arel.respond_to?(:locked) && arel.locked
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:96
```
vendor/bundle/gems/arel-9.0.0/lib/arel/select_manager.rb:68
##### Arel::SelectManager#locked
```ruby
def locked
@ast.lock
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:137
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:498
##### ActiveRecord::ConnectionAdapters::DatabaseStatements#arel_from_relation
```ruby
def arel_from_relation(relation)
if relation.is_a?(Relation)
relation.arel
else
relation
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:97
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:17
##### ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds
```ruby
def to_sql_and_binds(arel_or_sql_string, binds = []) # :nodoc:
if arel_or_sql_string.respond_to?(:ast)
unless binds.empty?
raise "Passing bind parameters with an arel AST is forbidden. " \
"The values must be stored on the AST directly"
end
if prepared_statements
sql, binds = visitor.accept(arel_or_sql_string.ast, collector).value
if binds.length > bind_params_length
unprepared_statement do
sql, binds = to_sql_and_binds(arel_or_sql_string)
visitor.preparable = false
end
end
else
sql = visitor.accept(arel_or_sql_string.ast, collector).value
end
[sql.freeze, binds]
else
visitor.preparable = false if prepared_statements
[arel_or_sql_string.dup.freeze, binds]
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:98
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:609
##### ActiveRecord::ConnectionAdapters::AbstractAdapter#collector
```ruby
def collector
if prepared_statements
Arel::Collectors::Composite.new(
Arel::Collectors::SQLString.new,
Arel::Collectors::Bind.new,
)
else
Arel::Collectors::SubstituteBinds.new(
self,
Arel::Collectors::SQLString.new,
)
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:25
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/sql_string.rb:8
##### Arel::Collectors::SQLString#initialize
```ruby
def initialize(*)
super
@bind_index = 1
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:612
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/plain_string.rb:5
##### Arel::Collectors::SQLString#initialize
```ruby
def initialize(*)
super
@bind_index = 1
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/sql_string.rb:9
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/bind.rb:6
##### Arel::Collectors::Bind#initialize
```ruby
def initialize
@binds = []
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:613
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:6
##### Arel::Collectors::Composite#initialize
```ruby
def initialize(left, right)
@left = left
@right = right
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:611
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/determine_if_preparable_visitor.rb:8
##### ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#accept
```ruby
def accept(*)
@preparable = true
super
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:25
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:7
##### ActiveRecord::ConnectionAdapters::DetermineIfPreparableVisitor#accept
```ruby
def accept(*)
@preparable = true
super
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/determine_if_preparable_visitor.rb:10
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:13
##### Arel::Visitors::Reduce#visit
```ruby
def visit object, collector
dispatch_method = dispatch[object.class]
send dispatch_method, object, collector
rescue NoMethodError => e
raise e if respond_to?(dispatch_method, true)
superklass = object.class.ancestors.find { |klass|
respond_to?(dispatch[klass], true)
}
raise(TypeError, "Cannot visit #{object.class}") unless superklass
dispatch[object.class] = dispatch[superklass]
retry
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:8
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/visitor.rb:25
##### Arel::Visitors::Visitor#dispatch
```ruby
def dispatch
@dispatch
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:14
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/sqlite.rb:12
##### Arel::Visitors::SQLite#visit_Arel_Nodes_SelectStatement
```ruby
def visit_Arel_Nodes_SelectStatement o, collector
o.limit = Arel::Nodes::Limit.new(-1) if o.offset && !o.limit
super
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:15
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:210
##### Arel::Visitors::SQLite#visit_Arel_Nodes_SelectStatement
```ruby
def visit_Arel_Nodes_SelectStatement o, collector
o.limit = Arel::Nodes::Limit.new(-1) if o.offset && !o.limit
super
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/sqlite.rb:14
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:240
##### Arel::Visitors::ToSql#visit_Arel_Nodes_SelectCore
```ruby
def visit_Arel_Nodes_SelectCore o, collector
collector << "SELECT"
collector = maybe_visit o.top, collector
collector = maybe_visit o.set_quantifier, collector
collect_nodes_for o.projections, collector, SPACE
if o.source && !o.source.empty?
collector << " FROM "
collector = visit o.source, collector
end
collect_nodes_for o.wheres, collector, WHERE, AND
collect_nodes_for o.groups, collector, GROUP_BY
unless o.havings.empty?
collector << " HAVING "
inject_join o.havings, collector, AND
end
collect_nodes_for o.windows, collector, WINDOW
collector
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:217
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:11
##### Arel::Collectors::Composite#<<
```ruby
def << str
left << str
right << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:241
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/plain_string.rb:13
##### Arel::Collectors::PlainString#<<
```ruby
def << str
@str << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:12
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/bind.rb:10
##### Arel::Collectors::Bind#<<
```ruby
def << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:13
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:812
##### Arel::Visitors::ToSql#maybe_visit
```ruby
def maybe_visit thing, collector
return collector unless thing
collector << " "
visit thing, collector
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:243
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:812
##### Arel::Visitors::ToSql#maybe_visit
```ruby
def maybe_visit thing, collector
return collector unless thing
collector << " "
visit thing, collector
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:245
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:265
##### Arel::Visitors::ToSql#collect_nodes_for
```ruby
def collect_nodes_for nodes, collector, spacer, connector = COMMA
unless nodes.empty?
collector << spacer
len = nodes.length - 1
nodes.each_with_index do |x, i|
collector = visit(x, collector)
collector << connector unless len == i
end
end
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:247
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:11
##### Arel::Collectors::Composite#<<
```ruby
def << str
left << str
right << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:267
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/plain_string.rb:13
##### Arel::Collectors::PlainString#<<
```ruby
def << str
@str << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:12
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/bind.rb:10
##### Arel::Collectors::Bind#<<
```ruby
def << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:13
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:13
##### Arel::Visitors::Reduce#visit
```ruby
def visit object, collector
dispatch_method = dispatch[object.class]
send dispatch_method, object, collector
rescue NoMethodError => e
raise e if respond_to?(dispatch_method, true)
superklass = object.class.ancestors.find { |klass|
respond_to?(dispatch[klass], true)
}
raise(TypeError, "Cannot visit #{object.class}") unless superklass
dispatch[object.class] = dispatch[superklass]
retry
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:270
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/visitor.rb:25
##### Arel::Visitors::Visitor#dispatch
```ruby
def dispatch
@dispatch
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:14
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:727
##### Arel::Visitors::ToSql#visit_Arel_Attributes_Attribute
```ruby
def visit_Arel_Attributes_Attribute o, collector
join_name = o.relation.table_alias || o.relation.name
collector << "#{quote_table_name join_name}.#{quote_column_name o.name}"
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:15
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:802
##### Arel::Visitors::ToSql#quote_table_name
```ruby
def quote_table_name name
return name if Arel::Nodes::SqlLiteral === name
@connection.quote_table_name(name)
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:729
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/sqlite3/quoting.rb:15
##### ActiveRecord::ConnectionAdapters::SQLite3::Quoting#quote_table_name
```ruby
def quote_table_name(name)
@quoted_table_names[name] ||= super.gsub(".", "\".\"").freeze
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:804
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:807
##### Arel::Visitors::ToSql#quote_column_name
```ruby
def quote_column_name name
return name if Arel::Nodes::SqlLiteral === name
@connection.quote_column_name(name)
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:729
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:11
##### Arel::Collectors::Composite#<<
```ruby
def << str
left << str
right << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:729
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/plain_string.rb:13
##### Arel::Collectors::PlainString#<<
```ruby
def << str
@str << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:12
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/bind.rb:10
##### Arel::Collectors::Bind#<<
```ruby
def << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:13
```
vendor/bundle/gems/arel-9.0.0/lib/arel/nodes/join_source.rb:14
##### Arel::Nodes::JoinSource#empty?
```ruby
def empty?
!left && right.empty?
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:249
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:11
##### Arel::Collectors::Composite#<<
```ruby
def << str
left << str
right << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:250
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/plain_string.rb:13
##### Arel::Collectors::PlainString#<<
```ruby
def << str
@str << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:12
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/bind.rb:10
##### Arel::Collectors::Bind#<<
```ruby
def << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:13
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:13
##### Arel::Visitors::Reduce#visit
```ruby
def visit object, collector
dispatch_method = dispatch[object.class]
send dispatch_method, object, collector
rescue NoMethodError => e
raise e if respond_to?(dispatch_method, true)
superklass = object.class.ancestors.find { |klass|
respond_to?(dispatch[klass], true)
}
raise(TypeError, "Cannot visit #{object.class}") unless superklass
dispatch[object.class] = dispatch[superklass]
retry
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:251
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/visitor.rb:25
##### Arel::Visitors::Visitor#dispatch
```ruby
def dispatch
@dispatch
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:14
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:544
##### Arel::Visitors::ToSql#visit_Arel_Nodes_JoinSource
```ruby
def visit_Arel_Nodes_JoinSource o, collector
if o.left
collector = visit o.left, collector
end
if o.right.any?
collector << SPACE if o.left
collector = inject_join o.right, collector, SPACE
end
collector
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:15
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:13
##### Arel::Visitors::Reduce#visit
```ruby
def visit object, collector
dispatch_method = dispatch[object.class]
send dispatch_method, object, collector
rescue NoMethodError => e
raise e if respond_to?(dispatch_method, true)
superklass = object.class.ancestors.find { |klass|
respond_to?(dispatch[klass], true)
}
raise(TypeError, "Cannot visit #{object.class}") unless superklass
dispatch[object.class] = dispatch[superklass]
retry
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:546
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/visitor.rb:25
##### Arel::Visitors::Visitor#dispatch
```ruby
def dispatch
@dispatch
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:14
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:609
##### Arel::Visitors::ToSql#visit_Arel_Table
```ruby
def visit_Arel_Table o, collector
if o.table_alias
collector << "#{quote_table_name o.name} #{quote_table_name o.table_alias}"
else
collector << quote_table_name(o.name)
end
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/reduce.rb:15
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:802
##### Arel::Visitors::ToSql#quote_table_name
```ruby
def quote_table_name name
return name if Arel::Nodes::SqlLiteral === name
@connection.quote_table_name(name)
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:613
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/sqlite3/quoting.rb:15
##### ActiveRecord::ConnectionAdapters::SQLite3::Quoting#quote_table_name
```ruby
def quote_table_name(name)
@quoted_table_names[name] ||= super.gsub(".", "\".\"").freeze
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:804
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:11
##### Arel::Collectors::Composite#<<
```ruby
def << str
left << str
right << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:613
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/plain_string.rb:13
##### Arel::Collectors::PlainString#<<
```ruby
def << str
@str << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:12
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/bind.rb:10
##### Arel::Collectors::Bind#<<
```ruby
def << str
self
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:13
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:265
##### Arel::Visitors::ToSql#collect_nodes_for
```ruby
def collect_nodes_for nodes, collector, spacer, connector = COMMA
unless nodes.empty?
collector << spacer
len = nodes.length - 1
nodes.each_with_index do |x, i|
collector = visit(x, collector)
collector << connector unless len == i
end
end
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:254
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:265
##### Arel::Visitors::ToSql#collect_nodes_for
```ruby
def collect_nodes_for nodes, collector, spacer, connector = COMMA
unless nodes.empty?
collector << spacer
len = nodes.length - 1
nodes.each_with_index do |x, i|
collector = visit(x, collector)
collector << connector unless len == i
end
end
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:255
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:265
##### Arel::Visitors::ToSql#collect_nodes_for
```ruby
def collect_nodes_for nodes, collector, spacer, connector = COMMA
unless nodes.empty?
collector << spacer
len = nodes.length - 1
nodes.each_with_index do |x, i|
collector = visit(x, collector)
collector << connector unless len == i
end
end
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:260
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:234
##### Arel::Visitors::ToSql#visit_Arel_Nodes_SelectOptions
```ruby
def visit_Arel_Nodes_SelectOptions o, collector
collector = maybe_visit o.limit, collector
collector = maybe_visit o.offset, collector
collector = maybe_visit o.lock, collector
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:229
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:812
##### Arel::Visitors::ToSql#maybe_visit
```ruby
def maybe_visit thing, collector
return collector unless thing
collector << " "
visit thing, collector
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:235
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:812
##### Arel::Visitors::ToSql#maybe_visit
```ruby
def maybe_visit thing, collector
return collector unless thing
collector << " "
visit thing, collector
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:236
```
vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:812
##### Arel::Visitors::ToSql#maybe_visit
```ruby
def maybe_visit thing, collector
return collector unless thing
collector << " "
visit thing, collector
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/visitors/to_sql.rb:237
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:23
##### Arel::Collectors::Composite#value
```ruby
def value
[left.value, right.value]
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:25
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/plain_string.rb:9
##### Arel::Collectors::PlainString#value
```ruby
def value
@str
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:24
```
vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/bind.rb:19
##### Arel::Collectors::Bind#value
```ruby
def value
@binds
end
# called from vendor/bundle/gems/arel-9.0.0/lib/arel/collectors/composite.rb:24
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_limits.rb:67
##### ActiveRecord::ConnectionAdapters::DatabaseLimits#bind_params_length
```ruby
def bind_params_length
65535
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:27
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:112
##### ActiveRecord::ConnectionAdapters::QueryCache#cache_sql
```ruby
def cache_sql(sql, name, binds)
@lock.synchronize do
result =
if @query_cache[sql].key?(binds)
ActiveSupport::Notifications.instrument(
"sql.active_record",
sql: sql,
binds: binds,
type_casted_binds: -> { type_casted_binds(binds) },
name: name,
connection_id: object_id,
cached: true,
)
@query_cache[sql][binds]
else
@query_cache[sql][binds] = yield
end
result.dup
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:104
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:59
##### ActiveRecord::ConnectionAdapters::QueryCache#select_all
```ruby
def select_all(arel, name = nil, binds = [], preparable: nil)
if @query_cache_enabled && !locked?(arel)
arel = arel_from_relation(arel)
sql, binds = to_sql_and_binds(arel, binds)
if preparable.nil?
preparable = prepared_statements ? visitor.preparable : false
end
cache_sql(sql, name, binds) { super(sql, name, binds, preparable: preparable) }
else
super
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:104
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:498
##### ActiveRecord::ConnectionAdapters::DatabaseStatements#arel_from_relation
```ruby
def arel_from_relation(relation)
if relation.is_a?(Relation)
relation.arel
else
relation
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:60
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:17
##### ActiveRecord::ConnectionAdapters::DatabaseStatements#to_sql_and_binds
```ruby
def to_sql_and_binds(arel_or_sql_string, binds = []) # :nodoc:
if arel_or_sql_string.respond_to?(:ast)
unless binds.empty?
raise "Passing bind parameters with an arel AST is forbidden. " \
"The values must be stored on the AST directly"
end
if prepared_statements
sql, binds = visitor.accept(arel_or_sql_string.ast, collector).value
if binds.length > bind_params_length
unprepared_statement do
sql, binds = to_sql_and_binds(arel_or_sql_string)
visitor.preparable = false
end
end
else
sql = visitor.accept(arel_or_sql_string.ast, collector).value
end
[sql.freeze, binds]
else
visitor.preparable = false if prepared_statements
[arel_or_sql_string.dup.freeze, binds]
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:61
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:481
##### ActiveRecord::ConnectionAdapters::DatabaseStatements#select_prepared
```ruby
def select_prepared(sql, name = nil, binds = [])
exec_query(sql, name, binds, prepare: true)
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:68
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:209
##### ActiveRecord::ConnectionAdapters::SQLite3Adapter#exec_query
```ruby
def exec_query(sql, name = nil, binds = [], prepare: false)
type_casted_binds = type_casted_binds(binds)
log(sql, name, binds, type_casted_binds) do
ActiveSupport::Dependencies.interlock.permit_concurrent_loads do
# Don't cache statements if they are not prepared
unless prepare
stmt = @connection.prepare(sql)
begin
cols = stmt.columns
unless without_prepared_statement?(binds)
stmt.bind_params(type_casted_binds)
end
records = stmt.to_a
ensure
stmt.close
end
else
cache = @statements[sql] ||= {
stmt: @connection.prepare(sql)
}
stmt = cache[:stmt]
cols = cache[:cols] ||= stmt.columns
stmt.reset!
stmt.bind_params(type_casted_binds)
records = stmt.to_a
end
ActiveRecord::Result.new(cols, records)
end
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:482
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/quoting.rb:141
##### ActiveRecord::ConnectionAdapters::Quoting#type_casted_binds
```ruby
def type_casted_binds(binds) # :nodoc:
if binds.first.is_a?(Array)
binds.map { |column, value| type_cast(value, column) }
else
binds.map { |attr| type_cast(attr.value_for_database) }
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:210
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:570
##### ActiveRecord::ConnectionAdapters::AbstractAdapter#log
```ruby
def log(sql, name = "SQL", binds = [], type_casted_binds = [], statement_name = nil) # :doc:
@instrumenter.instrument(
"sql.active_record",
sql: sql,
name: name,
binds: binds,
type_casted_binds: type_casted_binds,
statement_name: statement_name,
connection_id: object_id) do
begin
@lock.synchronize do
yield
end
rescue => e
raise translate_exception_class(e, sql)
end
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:212
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:90
##### ActiveRecord::LogSubscriber#logger
```ruby
def logger
ActiveRecord::Base.logger
end
# called from vendor/bundle/gems/activesupport-5.2.3/lib/active_support/log_subscriber.rb:80
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/explain_subscriber.rb:8
##### ActiveRecord::ExplainSubscriber#start
```ruby
def start(name, id, payload)
# unused
end
# called from vendor/bundle/gems/activesupport-5.2.3/lib/active_support/notifications/fanout.rb:100
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/statement_pool.rb:23
##### ActiveRecord::ConnectionAdapters::StatementPool#[]
```ruby
def [](key)
cache[key]
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:227
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/statement_pool.rb:52
##### ActiveRecord::ConnectionAdapters::StatementPool#cache
```ruby
def cache
@cache[Process.pid]
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/statement_pool.rb:24
```
vendor/bundle/gems/sqlite3-1.4.1/lib/sqlite3/statement.rb:35
##### SQLite3::Statement#bind_params
```ruby
def bind_params( *bind_vars )
index = 1
bind_vars.flatten.each do |var|
if Hash === var
var.each { |key, val| bind_param key, val }
else
bind_param index, var
index += 1
end
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:233
```
vendor/bundle/gems/sqlite3-1.4.1/lib/sqlite3/statement.rb:106
##### SQLite3::Statement#each
```ruby
def each
loop do
val = step
break self if done?
yield val
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:234
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/result.rb:39
##### ActiveRecord::Result#initialize
```ruby
def initialize(columns, rows, column_types = {})
@columns = columns
@rows = rows
@hash_rows = nil
@column_types = column_types
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:237
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:90
##### ActiveRecord::LogSubscriber#logger
```ruby
def logger
ActiveRecord::Base.logger
end
# called from vendor/bundle/gems/activesupport-5.2.3/lib/active_support/log_subscriber.rb:84
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:20
##### ActiveRecord::LogSubscriber#sql
```ruby
def sql(event)
self.class.runtime += event.duration
return unless logger.debug?
payload = event.payload
return if IGNORE_PAYLOAD_NAMES.include?(payload[:name])
name = "#{payload[:name]} (#{event.duration.round(1)}ms)"
name = "CACHE #{name}" if payload[:cached]
sql = payload[:sql]
binds = nil
unless (payload[:binds] || []).empty?
casted_params = type_casted_binds(payload[:type_casted_binds])
binds = " " + payload[:binds].zip(casted_params).map { |attr, value|
render_bind(attr, value)
}.inspect
end
name = colorize_payload_name(name, payload[:name])
sql = color(sql, sql_color(sql), true)
debug " #{name} #{sql}#{binds}"
end
# called from vendor/bundle/gems/activesupport-5.2.3/lib/active_support/subscriber.rb:101
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:11
##### ActiveRecord::LogSubscriber.runtime
```ruby
def self.runtime
ActiveRecord::RuntimeRegistry.sql_runtime ||= 0
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:21
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/runtime_registry.rb:20
##### ActiveRecord::RuntimeRegistry.sql_runtime
```ruby
class_eval %{ def self.#{val}; instance.#{val}; end }, __FILE__, __LINE__
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:12
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:7
##### ActiveRecord::LogSubscriber.runtime=
```ruby
def self.runtime=(value)
ActiveRecord::RuntimeRegistry.sql_runtime = value
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:21
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/runtime_registry.rb:21
##### ActiveRecord::RuntimeRegistry.sql_runtime=
```ruby
class_eval %{ def self.#{val}=(x); instance.#{val}=x; end }, __FILE__, __LINE__
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:8
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:90
##### ActiveRecord::LogSubscriber#logger
```ruby
def logger
ActiveRecord::Base.logger
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:22
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:61
##### ActiveRecord::LogSubscriber#colorize_payload_name
```ruby
def colorize_payload_name(name, payload_name)
if payload_name.blank? || payload_name == "SQL" # SQL vs Model Load/Exists
color(name, MAGENTA, true)
else
color(name, CYAN, true)
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:40
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:69
##### ActiveRecord::LogSubscriber#sql_color
```ruby
def sql_color(sql)
case sql
when /\A\s*rollback/mi
RED
when /select .*for update/mi, /\A\s*lock/mi
WHITE
when /\A\s*select/i
BLUE
when /\A\s*insert/i
GREEN
when /\A\s*update/i
YELLOW
when /\A\s*delete/i
RED
when /transaction\s*\Z/i
CYAN
else
MAGENTA
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:41
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:94
##### ActiveRecord::LogSubscriber#debug
```ruby
def debug(progname = nil, &block)
return unless super
if ActiveRecord::Base.verbose_query_logs
log_query_source
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:43
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:90
##### ActiveRecord::LogSubscriber#logger
```ruby
def logger
ActiveRecord::Base.logger
end
# called from vendor/bundle/gems/activesupport-5.2.3/lib/active_support/log_subscriber.rb:96
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:90
##### ActiveRecord::LogSubscriber#logger
```ruby
def logger
ActiveRecord::Base.logger
end
# called from vendor/bundle/gems/activesupport-5.2.3/lib/active_support/log_subscriber.rb:96
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:102
##### ActiveRecord::LogSubscriber#log_query_source
```ruby
def log_query_source
source_line, line_number = extract_callstack(caller_locations)
if source_line
if defined?(::Rails.root)
app_root = "#{::Rails.root.to_s}/".freeze
source_line = source_line.sub(app_root, "")
end
logger.debug(" ↳ #{ source_line }:#{ line_number }")
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:115
##### ActiveRecord::LogSubscriber#extract_callstack
```ruby
def extract_callstack(callstack)
line = callstack.find do |frame|
frame.absolute_path && !ignored_callstack(frame.absolute_path)
end
offending_line = line || callstack.first
[
offending_line.path,
offending_line.lineno
]
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:103
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:130
##### ActiveRecord::LogSubscriber#ignored_callstack
```ruby
def ignored_callstack(path)
path.start_with?(RAILS_GEM_ROOT) ||
path.start_with?(RbConfig::CONFIG["rubylibdir"])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:117
```
vendor/bundle/gems/railties-5.2.3/lib/rails.rb:63
##### Rails.root
```ruby
def root
application && application.config.root
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:107
```
vendor/bundle/gems/railties-5.2.3/lib/rails.rb:39
##### Rails.application
```ruby
def application
@application ||= (app_class.instance if app_class)
end
# called from vendor/bundle/gems/railties-5.2.3/lib/rails.rb:64
```
vendor/bundle/gems/railties-5.2.3/lib/rails.rb:39
##### Rails.application
```ruby
def application
@application ||= (app_class.instance if app_class)
end
# called from vendor/bundle/gems/railties-5.2.3/lib/rails.rb:64
```
vendor/bundle/gems/railties-5.2.3/lib/rails/application.rb:372
##### Rails::Application#config
```ruby
def config #:nodoc:
@config ||= Application::Configuration.new(self.class.find_root(self.class.called_from))
end
# called from vendor/bundle/gems/railties-5.2.3/lib/rails.rb:64
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:90
##### ActiveRecord::LogSubscriber#logger
```ruby
def logger
ActiveRecord::Base.logger
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:111
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/explain_subscriber.rb:12
##### ActiveRecord::ExplainSubscriber#finish
```ruby
def finish(name, id, payload)
if ExplainRegistry.collect? && !ignore_payload?(payload)
ExplainRegistry.queries << payload.values_at(:sql, :binds)
end
end
# called from vendor/bundle/gems/activesupport-5.2.3/lib/active_support/notifications/fanout.rb:104
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/explain_registry.rb:23
##### ActiveRecord::ExplainRegistry#collect?
```ruby
def collect?
@collect
end
# called from vendor/bundle/gems/activesupport-5.2.3/lib/active_support/per_thread_registry.rb:55
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/result.rb:108
##### ActiveRecord::Result#initialize_copy
```ruby
def initialize_copy(other)
@columns = columns.dup
@rows = rows.dup
@column_types = column_types.dup
@hash_rows = nil
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/query_cache.rb:129
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:345
##### ActiveRecord::ModelSchema::ClassMethods.attribute_types
```ruby
def attribute_types # :nodoc:
load_schema
@attribute_types ||= Hash.new(Type.default_value)
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/querying.rb:43
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:454
##### ActiveRecord::ModelSchema::ClassMethods.load_schema
```ruby
def load_schema
return if schema_loaded?
@load_schema_monitor.synchronize do
return if defined?(@columns_hash) && @columns_hash
load_schema!
@schema_loaded = true
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:346
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:450
##### ActiveRecord::ModelSchema::ClassMethods.schema_loaded?
```ruby
def schema_loaded?
defined?(@schema_loaded) && @schema_loaded
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/model_schema.rb:455
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/result.rb:47
##### ActiveRecord::Result#length
```ruby
def length
@rows.length
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/querying.rb:47
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/result.rb:55
##### ActiveRecord::Result#each
```ruby
def each
if block_given?
hash_rows.each { |row| yield row }
else
hash_rows.to_enum { @rows.size }
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/querying.rb:52
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/result.rb:123
##### ActiveRecord::Result#hash_rows
```ruby
def hash_rows
@hash_rows ||=
begin
# We freeze the strings to prevent them getting duped when
# used as keys in ActiveRecord::Base's @attributes hash
columns = @columns.map { |c| c.dup.freeze }
@rows.map { |row|
# In the past we used Hash[columns.zip(row)]
# though elegant, the verbose way is much more efficient
# both time and memory wise cause it avoids a big array allocation
# this method is called a lot and needs to be micro optimised
hash = {}
index = 0
length = columns.length
while index < length
hash[columns[index]] = row[index]
index += 1
end
hash
}
end
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/result.rb:57
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#preload_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:563
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:472
##### ActiveRecord::Relation#eager_loading?
```ruby
def eager_loading?
@should_eager_load ||=
eager_load_values.any? ||
includes_values.any? && (joined_includes_values.any? || references_eager_loaded_tables?)
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:564
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#eager_load_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:474
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#includes_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:475
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#includes_values
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:564
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:69
##### ActiveRecord::QueryMethods#readonly_value
```ruby
def #{method_name} # def includes_values
get_value(#{name.inspect}) # get_value(:includes)
end # end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation.rb:571
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:907
##### ActiveRecord::QueryMethods#get_value
```ruby
def get_value(name) # :nodoc:
@values.fetch(name, DEFAULT_VALUES[name])
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/relation/query_methods.rb:70
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal.rb:150
##### ActionController::Metal#content_type
```ruby
delegate :headers, :status=, :location=, :content_type=,
:status, :location, :content_type, to: "@_response"
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:166
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:247
##### ActionDispatch::Response#content_type
```ruby
def content_type
parsed_content_type_header.mime_type
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal.rb:150
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:422
##### ActionDispatch::Response#parsed_content_type_header
```ruby
def parsed_content_type_header
parse_content_type(get_header(CONTENT_TYPE))
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:248
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:182
##### ActionDispatch::Response#get_header
```ruby
def get_header(key); headers[key]; end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:423
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:412
##### ActionDispatch::Response#parse_content_type
```ruby
def parse_content_type(content_type)
if content_type && match = CONTENT_TYPE_PARSER.match(content_type)
ContentTypeHeader.new(match[:type], match[:charset])
else
NullContentTypeHeader
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:423
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/mime_type.rb:40
##### Mime.[]
```ruby
def [](type)
return type if type.is_a?(Type)
Type.lookup_by_extension(type)
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:166
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/mime_type.rb:148
##### Mime::Type.lookup_by_extension
```ruby
def lookup_by_extension(extension)
EXTENSION_LOOKUP[extension.to_s]
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/mime_type.rb:42
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal.rb:150
##### ActionController::Metal#content_type=
```ruby
delegate :headers, :status=, :location=, :content_type=,
:status, :location, :content_type, to: "@_response"
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/renderers.rb:166
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:229
##### ActionDispatch::Response#content_type=
```ruby
def content_type=(content_type)
return unless content_type
new_header_info = parse_content_type(content_type.to_s)
prev_header_info = parsed_content_type_header
charset = new_header_info.charset || prev_header_info.charset
charset ||= self.class.default_charset unless prev_header_info.mime_type
set_content_type new_header_info.mime_type, charset
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal.rb:150
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/mime_type.rb:232
##### Mime::Type#to_s
```ruby
def to_s
@string
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:231
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:412
##### ActionDispatch::Response#parse_content_type
```ruby
def parse_content_type(content_type)
if content_type && match = CONTENT_TYPE_PARSER.match(content_type)
ContentTypeHeader.new(match[:type], match[:charset])
else
NullContentTypeHeader
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:231
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:422
##### ActionDispatch::Response#parsed_content_type_header
```ruby
def parsed_content_type_header
parse_content_type(get_header(CONTENT_TYPE))
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:232
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:182
##### ActionDispatch::Response#get_header
```ruby
def get_header(key); headers[key]; end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:423
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:412
##### ActionDispatch::Response#parse_content_type
```ruby
def parse_content_type(content_type)
if content_type && match = CONTENT_TYPE_PARSER.match(content_type)
ContentTypeHeader.new(match[:type], match[:charset])
else
NullContentTypeHeader
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:423
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:426
##### ActionDispatch::Response#set_content_type
```ruby
def set_content_type(content_type, charset)
type = (content_type || "").dup
type << "; charset=#{charset.to_s.downcase}" if charset
set_header CONTENT_TYPE, type
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:235
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:183
##### ActionDispatch::Response#set_header
```ruby
def set_header(key, v); headers[key] = v; end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:429
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:44
##### ActionDispatch::Response::Header#[]=
```ruby
def []=(k, v)
if @response.sending? || @response.sent?
raise ActionDispatch::IllegalStateError, "header already sent"
end
super
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:183
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:219
##### ActionDispatch::Response#sending?
```ruby
def sending?; synchronize { @sending }; end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:45
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:221
##### ActionDispatch::Response#sent?
```ruby
def sent?; synchronize { @sent }; end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:45
```
vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:54
##### AbstractController::Rendering#rendered_format
```ruby
def rendered_format
Mime[:text]
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:29
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/mime_type.rb:40
##### Mime.[]
```ruby
def [](type)
return type if type.is_a?(Type)
Type.lookup_by_extension(type)
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:55
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/mime_type.rb:148
##### Mime::Type.lookup_by_extension
```ruby
def lookup_by_extension(extension)
EXTENSION_LOOKUP[extension.to_s]
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/mime_type.rb:42
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:75
##### ActionController::Rendering#_set_rendered_content_type
```ruby
def _set_rendered_content_type(format)
if format && !response.content_type
self.content_type = format.to_s
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:29
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:247
##### ActionDispatch::Response#content_type
```ruby
def content_type
parsed_content_type_header.mime_type
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal/rendering.rb:76
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:422
##### ActionDispatch::Response#parsed_content_type_header
```ruby
def parsed_content_type_header
parse_content_type(get_header(CONTENT_TYPE))
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:248
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:182
##### ActionDispatch::Response#get_header
```ruby
def get_header(key); headers[key]; end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:423
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:412
##### ActionDispatch::Response#parse_content_type
```ruby
def parse_content_type(content_type)
if content_type && match = CONTENT_TYPE_PARSER.match(content_type)
ContentTypeHeader.new(match[:type], match[:charset])
else
NullContentTypeHeader
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:423
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal.rb:175
##### ActionController::Metal#response_body=
```ruby
def response_body=(body)
body = [body] unless body.nil? || body.respond_to?(:each)
response.reset_body!
return unless body
response.body = body
super
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/abstract_controller/rendering.rb:31
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:352
##### ActionDispatch::Response#reset_body!
```ruby
def reset_body!
@stream = build_buffer(self, [])
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal.rb:177
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:452
##### ActionDispatch::Response#build_buffer
```ruby
def build_buffer(response, body)
Buffer.new response, body
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:353
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:100
##### ActionDispatch::Response::Buffer#initialize
```ruby
def initialize(response, buf)
@response = response
@buf = buf
@closed = false
@str_body = nil
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:453
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:312
##### ActionDispatch::Response#body=
```ruby
def body=(body)
if body.respond_to?(:to_path)
@stream = body
else
synchronize do
@stream = build_buffer self, munge_body_object(body)
end
end
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_controller/metal.rb:179
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:456
##### ActionDispatch::Response#munge_body_object
```ruby
def munge_body_object(body)
body.respond_to?(:each) ? body : [body]
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:317
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:452
##### ActionDispatch::Response#build_buffer
```ruby
def build_buffer(response, body)
Buffer.new response, body
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:317
```
vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:100
##### ActionDispatch::Response::Buffer#initialize
```ruby
def initialize(response, buf)
@response = response
@buf = buf
@closed = false
@str_body = nil
end
# called from vendor/bundle/gems/actionpack-5.2.3/lib/action_dispatch/http/response.rb:453
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:15
##### ActiveRecord::LogSubscriber.reset_runtime
```ruby
def self.reset_runtime
rt, self.runtime = runtime, 0
rt
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/railties/controller_runtime.rb:32
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:11
##### ActiveRecord::LogSubscriber.runtime
```ruby
def self.runtime
ActiveRecord::RuntimeRegistry.sql_runtime ||= 0
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:16
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/runtime_registry.rb:20
##### ActiveRecord::RuntimeRegistry.sql_runtime
```ruby
class_eval %{ def self.#{val}; instance.#{val}; end }, __FILE__, __LINE__
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:12
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:7
##### ActiveRecord::LogSubscriber.runtime=
```ruby
def self.runtime=(value)
ActiveRecord::RuntimeRegistry.sql_runtime = value
end
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:16
```
vendor/bundle/gems/activerecord-5.2.3/lib/active_record/runtime_registry.rb:21
##### ActiveRecord::RuntimeRegistry.sql_runtime=
```ruby
class_eval %{ def self.#{val}=(x); instance.#{val}=x; end }, __FILE__, __LINE__
# called from vendor/bundle/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:8
```