Skip to content

Instantly share code, notes, and snippets.

@mariash
Created January 31, 2014 18:21
Show Gist options
  • Save mariash/8739151 to your computer and use it in GitHub Desktop.
Save mariash/8739151 to your computer and use it in GitHub Desktop.
rblineprof output when hitting /v2/apps?inline-relations-depth=1
[Rack::Lineprof] ===============================================================
vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/transaction.rb
 | 32 # Return the currently active transaction, or nil.
 | 33 def self.current
 333.3ms 32234 | 34 self.stack.last
 | 35 end
 | 36
 .......
 | 53
 | 54 def self.stack
 224.7ms 32250 | 55 TransactionState.get.current_transaction_stack
 | 56 end
 | 57

vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/stats_engine/stats_hash.rb
 | 44
 | 45 def record(metric_specs, value=nil, aux=nil)
 203.9ms 3586 | 46 Array(metric_specs).each do |metric_spec|
 | 47 stats = nil
 | 48 begin

vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/stats_engine/transactions.rb
 | 102
 | 103 def transaction_stats_hash
 275.3ms 10742 | 104 Transaction.current && Transaction.current.stats_hash
 | 105 end
 | 106

vendor/bundle/ruby/1.9.1/gems/steno-1.2.2/lib/steno/logger.rb
 | 25
 | 26 def define_log_method(name)
 833.0ms 901 | 27 define_method(name) { |*args, &blk| log(name, *args, &blk) }
 | 28 end
 | 29
 .......
 | 129 message = yield if block_given?
 | 130
 213.4ms 901 | 131 callstack = caller
 | 132 loc = parse_record_loc(callstack)
 | 133
 .......
 | 136 record = Steno::Record.new(@name, level_name, message, loc, data)
 | 137
 458.0ms 3604 | 138 @sinks.each { |sink| sink.add_record(record) }
 | 139
 | 140 nil

vendor/bundle/ruby/1.9.1/gems/steno-1.2.2/lib/steno/codec/json.rb
 | 32 }
 | 33
 207.5ms 1802 | 34 Yajl::Encoder.encode(h) + "\n"
 | 35 end
 | 36 end

vendor/bundle/ruby/1.9.1/gems/yajl-ruby-1.1.0/lib/yajl.rb
 | 70 end
 | 71 end if args.any?
 243.9ms 46206 | 72 new(options).encode(obj, io, &block)
 | 73 end
 | 74 end

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/model/base.rb
 | 136 def call(values)
 | 137 o = allocate
 462.7ms 2441 | 138 o.set_values(values)
 | 139 o.after_initialize
 | 140 o
 .......
 | 1054 # If the column isn't in @values, we can't assume it is
 | 1055 # NULL in the database, so assume it has changed.
 200.8ms 2590 | 1056 v = typecast_value(column, value)
 | 1057 vals = @values
 | 1058 if new? || !vals.include?(column) || v != (c = vals[column]) || v.class != c.class

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/dataset/query.rb
 | 990 # # SELECT * FROM items WHERE b GROUP BY a HAVING a
 | 991 def where(*cond, &block)
 243.7ms 842 | 992 _filter(:where, *cond, &block)
 | 993 end
 | 994
 .......
 | 1101 # Internal filter method so it works on either the having or where clauses.
 | 1102 def _filter(clause, *cond, &block)
 313.0ms 1788 | 1103 _filter_or_exclude(false, clause, *cond, &block)
 | 1104 end
 | 1105

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/sql.rb
 | 978 # from_value_pairs(hash, :OR, true)
 | 979 def self.from_value_pairs(pairs, op=:AND, negate=false)
 210.0ms 2881 | 980 pairs = pairs.map{|l,r| from_value_pair(l, r)}
 | 981 pairs.map!{|ce| invert(ce)} if negate
 | 982 pairs.length == 1 ? pairs.at(0) : new(op, *pairs)

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/core.rb
 | 307 DateTime.parse(string, convert_two_digit_years)
 | 308 else
 640.8ms 4245 | 309 datetime_class.parse(string)
 | 310 end
 | 311 rescue => e

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/dataset/actions.rb
 | 55 def all(&block)
 | 56 a = []
 3218.3ms 346 | 57 each{|r| a << r}
 | 58 post_load(a)
 | 59 a.each(&block) if block
 .......
 | 116 aggregate_dataset.get{count(arg).as(count)}
 | 117 else
 520.9ms 606 | 118 aggregate_dataset.get{count(:*){}.as(count)}.to_i
 | 119 end
 | 120 elsif block
 .......
 | 152 graph_each{|r| yield r}
 | 153 elsif row_proc = @row_proc
 7109.3ms 4027 | 154 fetch_rows(select_sql){|r| yield row_proc.call(r)}
 | 155 else
 459.3ms 202 | 156 fetch_rows(select_sql){|r| yield r}
 | 157 end
 | 158 self
 .......
 | 215
 | 216 if args.empty?
 1690.9ms 346 | 217 ds.single_record
 | 218 else
 | 219 args = (args.size == 1) ? args.first : args
 .......
 | 270 end
 | 271 else
 479.6ms 101 | 272 ds.single_value
 | 273 end
 | 274 end
 .......
 | 435 end
 | 436 else
 1724.2ms 200 | 437 super(&block)
 | 438 end
 | 439 end
 .......
 | 634 # this method.
 | 635 def single_record
 2152.5ms 895 | 636 clone(:limit=>1).each{|r| return r}
 | 637 nil
 | 638 end
 .......
 | 642 # +get+ instead of this method.
 | 643 def single_value
 477.9ms 303 | 644 if r = naked.ungraphed.single_record
 | 645 r.values.first
 | 646 end
 .......
 | 858 # :read_only server unless a specific server is set.
 | 859 def execute(sql, opts={}, &block)
 6405.0ms 4473 | 860 @db.execute(sql, {:server=>@opts[:server] || :read_only}.merge(opts), &block)
 | 861 end
 | 862

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/dataset/sql.rb
 | 78 case v
 | 79 when Symbol
 206.5ms 3231 | 80 literal_symbol_append(sql, v)
 | 81 when String
 | 82 case v
 .......
 | 93 literal_hash_append(sql, v)
 | 94 when SQL::Expression
 769.3ms 2537 | 95 literal_expression_append(sql, v)
 | 96 when Float
 | 97 sql << literal_float(v)
 .......
 | 134 def select_sql
 | 135 return static_sql(@opts[:sql]) if @opts[:sql]
 641.1ms 895 | 136 clause_sql(:select)
 | 137 end
 | 138
 .......
 | 883 def clause_sql(type)
 | 884 sql = @opts[:append_sql] || sql_string_origin
 627.7ms 15215 | 885 send("#{type}_clause_methods").each{|x| send(x, sql)}
 | 886 sql
 | 887 end
 .......
 | 1005 end
 | 1006 else
 229.4ms 3229 | 1007 literal_append(sql, v)
 | 1008 end
 | 1009 end
 .......
 | 1141 # SQL fragment for SQL::Expression, result depends on the specific type of expression.
 | 1142 def literal_expression_append(sql, v)
 759.6ms 2537 | 1143 v.to_s_append(self, sql)
 | 1144 end
 | 1145
 .......
 | 1373 if w = @opts[:where]
 | 1374 sql << WHERE
 271.0ms 793 | 1375 literal_append(sql, w)
 | 1376 end
 | 1377 end

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/adapters/shared/postgres.rb
 | 1129 sql << PAREN_CLOSE
 | 1130 else
 389.4ms 1093 | 1131 super
 | 1132 end
 | 1133 end

/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/sql.rb
 | 103 end
 | 104 END
 748.3ms 2537 | 105 class_eval("def to_s_append(ds, sql) ds.#{meth}_append(sql, #{args}) end", __FILE__, __LINE__)
 | 106 end
 | 107 end

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/model/associations.rb
 | 1162 # Adds the association method to the association methods module.
 | 1163 def def_association_method(opts)
 3433.8ms 445 | 1164 association_module_def(opts.association_method, opts){|*dynamic_opts, &block| load_associated_objects(opts, dynamic_opts[0], &block)}
 | 1165 end
 | 1166
 .......
 | 1191 opts[:graph_join_table_join_type] ||= opts[:graph_join_type]
 | 1192 opts[:after_load].unshift(:array_uniq!) if opts[:uniq]
 218.8ms 1984 | 1193 opts[:dataset] ||= proc{opts.associated_dataset.inner_join(join_table, rcks.zip(opts.right_primary_keys) + opts.predicate_keys.zip(lcpks.map{|k| send(k)}), :qualify=>:deep)}
 | 1194
 | 1195 opts[:eager_loader] ||= proc do |eo|
 .......
 | 1549 # (or nil if no associated object).
 | 1550 def _load_associated_object(opts, dynamic_opts)
 1276.6ms 491 | 1551 _load_associated_object_array(opts, dynamic_opts).first
 | 1552 end
 | 1553
 .......
 | 1555 # as an array.
 | 1556 def _load_associated_object_array(opts, dynamic_opts)
 3320.2ms 691 | 1557 _associated_dataset(opts, dynamic_opts).all
 | 1558 end
 | 1559
 .......
 | 1563 if opts.can_have_associated_objects?(self)
 | 1564 if opts.returns_array?
 2046.1ms 100 | 1565 _load_associated_object_array(opts, dynamic_opts)
 | 1566 else
 1278.1ms 245 | 1567 _load_associated_object(opts, dynamic_opts)
 | 1568 end
 | 1569 elsif opts.returns_array?
 .......
 | 1637 associations[name]
 | 1638 else
 3338.2ms 395 | 1639 objs = _load_associated_objects(opts, dynamic_opts)
 | 1640 if opts.set_reciprocal_to_self?
 | 1641 if opts.returns_array?
 .......
 | 1855 end
 | 1856 else
 394.9ms 1093 | 1857 super
 | 1858 end
 | 1859 end

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/adapters/postgres.rb
 | 143 def execute(sql, args=nil)
 | 144 args = args.map{|v| @db.bound_variable_arg(v, self)} if args
 2902.9ms 1786 | 145 q = check_disconnect_errors{execute_query(sql, args)}
 | 146 begin
 | 147 block_given? ? yield(q) : q.cmd_tuples
 .......
 | 156 # sql and args.
 | 157 def execute_query(sql, args)
 3102.5ms 1786 | 158 @db.log_yield(sql, args){args ? async_exec(sql, args) : async_exec(sql)}
 | 159 end
 | 160 end
 .......
 | 277 # Execute the given SQL with the given args on an available connection.
 | 278 def execute(sql, opts={}, &block)
 12709.5ms 2679 | 279 synchronize(opts[:server]){|conn| check_database_errors{_execute(conn, sql, opts, &block)}}
 | 280 end
 | 281
 .......
 | 442 end
 | 443 else
 842.2ms 4245 | 444 super
 | 445 end
 | 446 end
 .......
 | 453 execute_prepared_statement(conn, sql, opts, &block)
 | 454 else
 6309.4ms 893 | 455 conn.execute(sql, opts[:arguments], &block)
 | 456 end
 | 457 end
 .......
 | 596 def fetch_rows(sql)
 | 597 return cursor_fetch_rows(sql){|h| yield h} if @opts[:cursor]
 9800.2ms 2683 | 598 execute(sql){|res| yield_hash_rows(res, fetch_rows_set_cols(res)){|h| yield h}}
 | 599 end
 | 600
 .......
 | 788 # keys and typecasted values.
 | 789 def yield_hash_rows(res, cols)
 3206.9ms 1790 | 790 res.ntuples.times do |recnum|
 | 791 converted_rec = {}
 1473.6ms 2542 | 792 cols.each do |fieldnum, type_proc, fieldsym|
 | 793 value = res.getvalue(recnum, fieldnum)
 1130.1ms 101946 | 794 converted_rec[fieldsym] = (value && type_proc) ? type_proc.call(value) : value
 | 795 end
 | 796 yield converted_rec

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/database/connecting.rb
 | 233 # end
 | 234 def synchronize(server=nil)
 6385.2ms 894 | 235 @pool.hold(server || :default){|conn| yield conn}
 | 236 end
 | 237 else

vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/sequel/extensions/newrelic_instrumentation.rb
 | 40
 | 41 t0 = Time.now
 1148.5ms 893 | 42 rval = super
 | 43 t1 = Time.now
 | 44
 | 45 begin
 | 46 duration = t1 - t0
 905.9ms 895 | 47 record_metrics( sql, args, duration )
 731.4ms 895 | 48 notice_sql( sql, args, t0, t1 )
 | 49 rescue => err
 | 50 NewRelic::Agent.logger.debug "while recording metrics for Sequel", err
 .......
 | 60 engine = NewRelic::Agent.instance.stats_engine
 | 61
 362.3ms 895 | 62 engine.record_metrics( primary_metric, duration, :scoped => true )
 | 63
 | 64 metrics = rollup_metrics_for( primary_metric )
 | 65 metrics << remote_service_metric( *self.opts.values_at(:adapter, :host) ) if self.opts.key?(:adapter)
 | 66
 344.5ms 895 | 67 engine.record_metrics( metrics, duration, :scoped => false )
 | 68 end
 | 69
 .......
 | 77
 | 78 begin
 211.4ms 895 | 79 scope = agent.stats_engine.push_scope( :sequel, start )
 | 80 agent.transaction_sampler.notice_sql( sql, self.opts, duration ) do |*|
 | 81 self[ sql ].explain

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/database/logging.rb
 | 40 raise
 | 41 ensure
 913.8ms 5370 | 42 log_duration(Time.now - start, sql) unless e
 | 43 end
 | 44 end
 .......
 | 62 # warn level if duration is greater than log_warn_duration.
 | 63 def log_duration(duration, message)
 848.4ms 1790 | 64 log_each((lwd = log_warn_duration and duration >= lwd) ? :warn : sql_log_level, "(#{sprintf('%0.6fs', duration)}) #{message}")
 | 65 end
 | 66
 .......
 | 68 # to all loggers.
 | 69 def log_each(level, message)
 839.0ms 1790 | 70 @loggers.each{|logger| logger.send(level, message)}
 | 71 end
 | 72 end

vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.7.1.180/lib/new_relic/agent/stats_engine/metric_stats.rb
 | 26
 | 27 if in_transaction?
 314.5ms 3580 | 28 transaction_stats_hash.record(specs, value, &blk)
 | 29 else
 | 30 with_stats_lock do
 .......
 | 188
 | 189 def in_transaction?
 205.1ms 3580 | 190 !!transaction_stats_hash
 | 191 end
 | 192 end

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/database/misc.rb
 | 275 # the database does not have a timezone.
 | 276 def to_application_timestamp(v)
 816.9ms 8490 | 277 Sequel.convert_timestamp(v, timezone)
 | 278 end
 | 279

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/timezones.rb
 | 73 end
 | 74 else
 762.9ms 8490 | 75 convert_output_timestamp(convert_input_timestamp(v, input_timezone), application_timezone)
 | 76 end
 | 77 rescue InvalidValue
 .......
 | 132 case v
 | 133 when String
 723.0ms 4245 | 134 v2 = Sequel.string_to_datetime(v)
 | 135 if !input_timezone || Date._parse(v).has_key?(:offset)
 | 136 v2

/var/vcap/data/packages/ruby/11.1/lib/ruby/1.9.1/time.rb
 | 263 def parse(date, now=self.now)
 | 264 comp = !block_given?
 408.5ms 59430 | 265 d = Date._parse(date, comp)
 | 266 if !d[:year] && !d[:mon] && !d[:mday] && !d[:hour] && !d[:min] && !d[:sec] && !d[:sec_fraction]
 | 267 raise ArgumentError, "no time information in #{date.inspect}"

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/plugins/dirty.rb
 | 127 def set_values(hash)
 | 128 reset_initial_values
 429.9ms 2441 | 129 super
 | 130 end
 | 131

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/plugins/typecast_on_load.rb
 | 44 # with the current value, so it can be typecasted correctly.
 | 45 def load_typecast
 361.3ms 4882 | 46 model.typecast_on_load_columns.each do |c|
 | 47 if v = values[c]
 332.5ms 5180 | 48 send("#{c}=", v)
 | 49 end
 | 50 end
 .......
 | 57 def set_values(values)
 | 58 ret = super
 394.2ms 2441 | 59 load_typecast
 | 60 ret
 | 61 end

lib/cloud_controller/models.rb
 | 27 def user_visible_relationship_dataset(name, user, admin_override = false)
 | 28 associated_model = self.class.association_reflection(name).associated_class
 2661.0ms 2531 | 29 relationship_dataset(name).filter(associated_model.user_visibility(user, admin_override))
 | 30 end
 | 31 end

lib/cloud_controller/rest_controller/paginator.rb
 | 88 def resources
 | 89 @paginated.all.map do |m|
 6970.0ms 48 | 90 @serialization.to_hash(@controller, m, @opts)
 | 91 end
 | 92 end

vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/plugins/serialization.rb
 | 181 def set_values(hash)
 | 182 @deserialized_values.clear if @deserialized_values
 356.7ms 1950 | 183 super
 | 184 end
 | 185

/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/model/base.rb
 | 767 meth = "#{column}="
 | 768 overridable_methods_module.module_eval("def #{column}; self[:#{column}] end", __FILE__, __LINE__) unless im.include?(column.to_s)
 314.7ms 2590 | 769 overridable_methods_module.module_eval("def #{meth}(v); self[:#{column}] = v end", __FILE__, __LINE__) unless im.include?(meth)
 | 770 end
 | 771 end

lib/sequel_plugins/vcap_normalization.rb
 | 4 def []=(k, v)
 | 5 v = strip_if_needed(k, v)
 252.9ms 2590 | 6 super(k, v)
 | 7 end
 | 8

lib/cloud_controller/rest_controller/object_serialization.rb
 | 53 # @return [Hash] Hash encoding of the object.
 | 54 def self.to_hash(controller, obj, opts, depth=0, parents=[])
 9692.2ms 195 | 55 rel_hash = relations_hash(controller, obj, opts, depth, parents)
 1395.2ms 990 | 56 entity_hash = obj.to_hash.merge(rel_hash)
 | 57
 | 58 metadata_hash = {
 .......
 | 73 max_number_of_associated_objects_to_inline = opts[:max_inline] || MAX_INLINE_DEFAULT
 | 74
 9691.2ms 195 | 75 {}.tap do |res|
 | 76 parents.push(controller)
 4743.7ms 394 | 77 res.merge!(serialize_relationships(controller.to_one_relationships, controller, depth, obj, opts, parents, inline_relations_depth))
 5040.1ms 395 | 78 res.merge!(serialize_relationships(controller.to_many_relationships, controller, depth, obj, opts, parents, inline_relations_depth, max_number_of_associated_objects_to_inline))
 | 79 parents.pop
 | 80 end
 .......
 | 83 def self.serialize_relationships(relationships, controller, depth, obj, opts, parents, inline_relations_depth, max_number_of_associated_objects_to_inline= nil)
 | 84 response = {}
 9781.0ms 393 | 85 (relationships || {}).each do |association_name, association|
 | 86
 | 87 associated_model = get_associated_model_klazz_for(obj, association_name)
 .......
 | 90 associated_controller = get_controller_for(associated_model)
 | 91
 2691.9ms 843 | 92 associated_model_instances = obj.user_visible_relationship_dataset(association_name,
 | 93 VCAP::CloudController::SecurityContext.current_user,
 | 94 VCAP::CloudController::SecurityContext.admin?)
 | 95
 | 96 associated_url = association_endpoint(
 1271.6ms 843 | 97 controller, associated_controller, obj, associated_model_instances, association)
 | 98
 | 99 response["#{association_name}_url"] = associated_url if associated_url
 .......
 | 102 if depth < inline_relations_depth && !parents.include?(associated_controller)
 | 103 if association.is_a?(ControllerDSL::ToOneAttribute)
 448.4ms 100 | 104 associated_model_instance = associated_model_instances.first
 | 105 if associated_model_instance
 2889.2ms 299 | 106 response[association_name.to_s] = to_hash(associated_controller, associated_model_instance, opts, depth + 1, parents)
 | 107 end
 | 108 else
 510.7ms 100 | 109 if associated_model_instances.count <= max_number_of_associated_objects_to_inline
 1725.2ms 300 | 110 response[association_name.to_s] = associated_model_instances.map do |associated_model_instance|
 1211.2ms 48 | 111 to_hash(associated_controller, associated_model_instance, opts, depth + 1, parents)
 | 112 end
 | 113 end
 .......
 | 133 def self.association_endpoint(controller, associated_controller, obj, associated_model_instances, association)
 | 134 if association.is_a?(ControllerDSL::ToOneAttribute)
 1240.2ms 245 | 135 if (associated_model_instance = associated_model_instances.first)
 | 136 associated_controller.url_for_guid(associated_model_instance.guid)
 | 137 end

lib/sequel_plugins/vcap_relations.rb
 | 21 reflection = self.class.association_reflection(association)
 | 22 if (dataset = reflection[:dataset])
 2589.6ms 843 | 23 instance_exec(&dataset)
 | 24 else
 | 25 reflection.associated_class.dataset
 .......
 | 99
 | 100 define_method(guid_attr) do
 1070.4ms 246 | 101 other = send(name)
 | 102 other.guid unless other.nil?
 | 103 end

/var/vcap/packages/cloud_controller_ng/cloud_controller_ng/vendor/bundle/ruby/1.9.1/gems/sequel-3.48.0/lib/sequel/dataset/query.rb
 | 588
 | 589 CONDITIONED_JOIN_TYPES.each do |jtype|
 202.2ms 248 | 590 class_eval("def #{jtype}_join(*args, &block); join_table(:#{jtype}, *args, &block) end", __FILE__, __LINE__)
 | 591 end
 | 592 UNCONDITIONED_JOIN_TYPES.each do |jtype|

app/models/runtime/space.rb
 | 17 one_to_many :managed_service_instances
 | 18 one_to_many :routes
 1896.5ms 100 | 19 one_to_many :app_events, dataset: -> { AppEvent.filter(app: apps) }
 | 20 one_to_many :default_users, class: "VCAP::CloudController::User", key: :default_space_id
 289.8ms 99 | 21 one_to_many :domains, dataset: -> { organization.domains_dataset }
 | 22
 | 23 add_association_dependencies default_users: :nullify, apps: :destroy, service_instances: :destroy, routes: :destroy, events: :nullify

lib/sequel_plugins/vcap_serialization.rb
 | 18 hash = {}
 | 19 attrs = self.class.export_attrs || []
 1390.1ms 198 | 20 attrs.each do |k|
 | 21 if opts[:only].nil? || opts[:only].include?(k)
 1360.9ms 1294 | 22 value = send(k)
 | 23 if value.respond_to?(:nil_object?) && value.nil_object?
 | 24 hash[k.to_s] = nil

app/models/runtime/app.rb
 | 283
 | 284 def system_env_json
 228.8ms 50 | 285 vcap_services
 | 286 end
 | 287
 .......
 | 507 def vcap_services
 | 508 services_hash = {}
 228.4ms 100 | 509 self.service_bindings.each do |sb|
 | 510 binding = ServiceBindingPresenter.new(sb).to_hash
 | 511 service = service_binding_json(binding)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment