rails-footnotes 7.0.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,24 +1,24 @@
1
+ require "active_record"
2
+
1
3
  module Footnotes
2
4
  module Notes
3
5
  class AssignsNote < AbstractNote
4
- @@ignored_assigns = [
5
- :@real_format,
6
- :@before_filter_chain_aborted,
7
- :@performed_redirect,
8
- :@performed_render,
9
- :@_params,
10
- :@_response,
11
- :@url,
12
- :@template,
13
- :@_request,
14
- :@db_rt_before_render,
15
- :@db_rt_after_render,
16
- :@view_runtime,
17
- :@marked_for_same_origin_verification
18
- ]
19
- cattr_accessor :ignored_assigns, :instance_writer => false
20
- @@ignored_assigns_pattern = /^@_/
21
- cattr_accessor :ignored_assigns_pattern, :instance_writer => false
6
+ thread_cattr_accessor :ignored_assigns, instance_writer: false, default: [
7
+ :@real_format,
8
+ :@before_filter_chain_aborted,
9
+ :@performed_redirect,
10
+ :@performed_render,
11
+ :@_params,
12
+ :@_response,
13
+ :@url,
14
+ :@template,
15
+ :@_request,
16
+ :@db_rt_before_render,
17
+ :@db_rt_after_render,
18
+ :@view_runtime,
19
+ :@marked_for_same_origin_verification
20
+ ]
21
+ thread_cattr_accessor :ignored_assigns_pattern, instance_writer: false, default: /^@_/
22
22
 
23
23
  def initialize(controller)
24
24
  @controller = controller
@@ -40,8 +40,11 @@ module Footnotes
40
40
  def to_table
41
41
  table = assigns.inject([]) do |rr, var|
42
42
  class_name = assigned_value(var).class.name
43
- var_name = var.to_s
44
- rr << ["<strong>#{var.to_s}</strong>" + "<br /><em>#{class_name}</em>", escape(assigned_value(var).inspect)]
43
+ var_value = assigned_value(var)
44
+ if var_value.is_a?(ActiveRecord::Relation) && var_value.limit_value.nil?
45
+ var_value = var_value.limit(Footnotes::Filter.default_limit)
46
+ end
47
+ rr << ["<strong>#{var.to_s}</strong>" + "<br /><em>#{class_name}</em>", escape(var_value.inspect)]
45
48
  end
46
49
 
47
50
  table.unshift(['Name', 'Value'])
@@ -23,7 +23,7 @@ module Footnotes
23
23
  end
24
24
 
25
25
  def controller_filename
26
- @controller_filename ||= Gem.find_files(controller_path).first # tnx https://github.com/MasterLambaster
26
+ @controller_filename ||= Gem.find_files(controller_path).first
27
27
  end
28
28
 
29
29
  def controller_text
@@ -15,44 +15,6 @@ module Footnotes
15
15
  formatter = @formatter || Logger::Formatter.new
16
16
  @logs << formatter.call(format_severity(severity), Time.now, message, progname)
17
17
  end
18
-
19
- ## Backport from rails 4 for handling logging broadcast, should be removed when rails 3 is deprecated :
20
-
21
- # Broadcasts logs to multiple loggers.
22
- def self.broadcast(logger) # :nodoc:
23
- Module.new do
24
- define_method(:add) do |*args, &block|
25
- logger.add(*args, &block)
26
- super(*args, &block)
27
- end
28
-
29
- define_method(:<<) do |x|
30
- logger << x
31
- super(x)
32
- end
33
-
34
- define_method(:close) do
35
- logger.close
36
- super()
37
- end
38
-
39
- define_method(:progname=) do |name|
40
- logger.progname = name
41
- super(name)
42
- end
43
-
44
- define_method(:formatter=) do |formatter|
45
- logger.formatter = formatter
46
- super(formatter)
47
- end
48
-
49
- define_method(:level=) do |level|
50
- logger.level = level
51
- super(level)
52
- end
53
- end
54
- end
55
-
56
18
  end
57
19
  end
58
20
  end
@@ -4,8 +4,8 @@ module Footnotes
4
4
 
5
5
  autoload :NoteLogger, 'rails-footnotes/notes/log_note/note_logger'
6
6
 
7
- cattr_accessor :logs
8
- cattr_accessor :original_logger
7
+ thread_cattr_accessor :logs
8
+ thread_cattr_accessor :original_logger
9
9
 
10
10
  def self.start!(controller)
11
11
  self.logs = []
@@ -18,9 +18,12 @@ module Footnotes
18
18
  else
19
19
  defined?(ActiveSupport::Logger) ? ActiveSupport::Logger::SimpleFormatter.new : Logger::SimpleFormatter.new
20
20
  end
21
- # Rails 3 don't have ActiveSupport::Logger#broadcast so we backported it
22
- extend_module = defined?(ActiveSupport::Logger) ? ActiveSupport::Logger.broadcast(note_logger) : NoteLogger.broadcast(note_logger)
23
- Rails.logger = self.original_logger.clone.extend(extend_module)
21
+
22
+ if ::Rails::VERSION::STRING < "7.1"
23
+ ::Rails.logger.extend(::ActiveSupport::Logger.broadcast(note_logger))
24
+ else
25
+ ::Rails.logger = ::ActiveSupport::BroadcastLogger.new(::Rails.logger, note_logger)
26
+ end
24
27
  end
25
28
 
26
29
  def title
@@ -2,12 +2,12 @@ module Footnotes
2
2
  module Notes
3
3
  class PartialsNote < AbstractNote
4
4
 
5
- cattr_accessor :partials
5
+ thread_cattr_accessor :partials
6
6
 
7
7
  def self.start!(controller)
8
8
  self.partials = []
9
9
  @subscriber ||= ActiveSupport::Notifications.subscribe('render_partial.action_view') do |*args|
10
- event = ActiveSupport::Notifications::Event.new *args
10
+ event = ActiveSupport::Notifications::Event.new(*args)
11
11
  self.partials << {:file => event.payload[:identifier], :duration => event.duration}
12
12
  end
13
13
  end
@@ -1,12 +1,10 @@
1
1
  module Footnotes
2
2
  module Notes
3
3
  class QueriesNote < AbstractNote
4
- cattr_accessor :alert_db_time, :alert_sql_number, :orm, :ignored_regexps, :instance_writer => false
5
- @@alert_db_time = 16.0
6
- @@alert_sql_number = 8
7
- @@query_subscriber = nil
8
- @@orm = [:active_record, :data_mapper]
9
- @@ignored_regexps = [%r{(pg_table|pg_attribute|pg_namespace|show\stables|pragma|sqlite_master)}i]
4
+ thread_cattr_accessor :alert_db_time, default: 16.0, instance_writer: false
5
+ thread_cattr_accessor :alert_sql_number, default: 8, instance_writer: false
6
+ thread_cattr_accessor :orm, default: [:active_record, :data_mapper], instance_writer: false
7
+ thread_cattr_accessor :ignored_regexps, default: [%r{(pg_table|pg_attribute|pg_namespace|show\stables|pragma|sqlite_master)}i], instance_writer: false
10
8
 
11
9
  def self.start!(controller)
12
10
  self.query_subscriber.reset!
@@ -1,11 +1,11 @@
1
1
  module Footnotes
2
2
  module Notes
3
3
  class ViewNote < AbstractNote
4
- cattr_accessor :template
4
+ thread_cattr_accessor :template
5
5
 
6
6
  def self.start!(controller)
7
7
  @subscriber ||= ActiveSupport::Notifications.subscribe('render_template.action_view') do |*args|
8
- event = ActiveSupport::Notifications::Event.new *args
8
+ event = ActiveSupport::Notifications::Event.new(*args)
9
9
  self.template = {:file => event.payload[:identifier], :duration => event.duration}
10
10
  end
11
11
  end
@@ -19,7 +19,7 @@ module Footnotes
19
19
  end
20
20
 
21
21
  def title
22
- "View (#{"%.3f" % self.template[:duration]}ms)"
22
+ "View (#{"%.3f" % template[:duration]}ms)"
23
23
  end
24
24
 
25
25
  def link
@@ -34,7 +34,7 @@ module Footnotes
34
34
 
35
35
  def filename
36
36
  return @filename if defined?(@filename)
37
- @filename = self.class.template.try(:[], :file)
37
+ @filename = template.try(:[], :file)
38
38
  end
39
39
 
40
40
  end
@@ -1,3 +1,3 @@
1
1
  module Footnotes
2
- VERSION = "7.0.0"
2
+ VERSION = "7.1.0"
3
3
  end
@@ -1,5 +1,6 @@
1
1
  require 'rails'
2
2
  require 'action_controller'
3
+ require 'active_support/core_ext/module/attribute_accessors_per_thread'
3
4
  require 'rails-footnotes/abstract_note'
4
5
  require 'rails-footnotes/each_with_rescue'
5
6
  require 'rails-footnotes/filter'
@@ -7,14 +8,9 @@ require 'rails-footnotes/notes/all'
7
8
  require 'rails-footnotes/extension'
8
9
 
9
10
  module Footnotes
10
- mattr_accessor :before_hooks
11
- @@before_hooks = []
12
-
13
- mattr_accessor :after_hooks
14
- @@after_hooks = []
15
-
16
- mattr_accessor :enabled
17
- @@enabled = false
11
+ thread_mattr_accessor :before_hooks
12
+ thread_mattr_accessor :after_hooks
13
+ thread_mattr_accessor :enabled, default: false
18
14
 
19
15
  class << self
20
16
  delegate :notes, :to => Filter
@@ -34,25 +30,28 @@ module Footnotes
34
30
 
35
31
  delegate :font_size, :to => Filter
36
32
  delegate :font_size=, :to => Filter
33
+
34
+ delegate :default_limit, :to => Filter
35
+ delegate :default_limit=, :to => Filter
37
36
  end
38
37
 
39
38
  def self.before(&block)
40
- @@before_hooks << block
39
+ before_hooks << block
41
40
  end
42
41
 
43
42
  def self.after(&block)
44
- @@after_hooks << block
43
+ after_hooks << block
45
44
  end
46
45
 
47
46
  def self.enabled?(controller)
48
- if @@enabled.is_a? Proc
49
- if @@enabled.arity == 1
50
- @@enabled.call(controller)
47
+ if enabled.is_a? Proc
48
+ if enabled.arity == 1
49
+ enabled.call(controller)
51
50
  else
52
- @@enabled.call
51
+ enabled.call
53
52
  end
54
53
  else
55
- !!@@enabled
54
+ !!enabled
56
55
  end
57
56
  end
58
57
 
@@ -61,8 +60,11 @@ module Footnotes
61
60
  end
62
61
  end
63
62
 
63
+ Footnotes.before_hooks = []
64
+ Footnotes.after_hooks = []
65
+
64
66
  ActiveSupport.on_load(:action_controller) do
65
67
  ActionController::Base.send(:include, Footnotes::RailsFootnotesExtension)
66
68
  end
67
69
 
68
- load Rails.root.join('.rails_footnotes') if Rails.root && Rails.root.join('.rails_footnotes').exist?
70
+ load Rails.root.join('.rails_footnotes') if Rails.root&.join('.rails_footnotes')&.exist?
@@ -1,6 +1,4 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "rails-footnotes/version"
1
+ require_relative "./lib/rails-footnotes/version"
4
2
 
5
3
  Gem::Specification.new do |s|
6
4
  s.name = "rails-footnotes"