rails-flog 1.3.3 → 1.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6650571abd225e7e4de159b193338aa05d1e33da
4
- data.tar.gz: 286f33b58393fa72e15228392f0ef93c8d2387e2
3
+ metadata.gz: ea548e225007f44c586d46f6eb80e223a8e3811b
4
+ data.tar.gz: a75ec850a8e3791b4f2f989751d2e50995a16def
5
5
  SHA512:
6
- metadata.gz: 49ce57b4524083e836d98b099d3032bed05da5e12b113a9bc67fab3230109002e4dbabbcb1152b0e01956abcfc2bd96cec60e8e1550009801f09f1aa2dcb0d72
7
- data.tar.gz: d6b9cdda04e030a197d70bb13b8e47687b5005605ef9af121012bea7182dd4b18d0bc76adf163795340c903603af6c0f3475a1f9de3c8f55741364b9787d3bae
6
+ metadata.gz: 7493abeb100a8b089fca0431e99fbb7e0e9b57ab5781cf7bb2d575ed0ae709add8f70c9c24be1e18cb3f857f18299129a3bcb7db1248840358af4160886bf978
7
+ data.tar.gz: 83f43ad891a50b08948aae9cdee9c4874abbc3c9951fa6ac01051d663a2d8245b9e50c3907f71e60d5f9caa16bb48058671b64eebc48a28df420672f4e7c6ea7
@@ -1,11 +1,25 @@
1
1
  language: ruby
2
+ sudo: false
2
3
  rvm:
3
- - 1.9.3
4
4
  - 2.0
5
5
  - 2.1
6
6
  - 2.2
7
+ - 2.3
8
+ - 2.4
7
9
  gemfile:
8
10
  - gemfiles/rails_3_2_x.gemfile
9
11
  - gemfiles/rails_4_0_x.gemfile
10
12
  - gemfiles/rails_4_1_x.gemfile
11
13
  - gemfiles/rails_4_2_x.gemfile
14
+ - gemfiles/rails_5_0_x.gemfile
15
+ - gemfiles/rails_5_1_x.gemfile
16
+ matrix:
17
+ exclude:
18
+ - gemfile: gemfiles/rails_5_0_x.gemfile
19
+ rvm: 2.0
20
+ - gemfile: gemfiles/rails_5_0_x.gemfile
21
+ rvm: 2.1
22
+ - gemfile: gemfiles/rails_5_1_x.gemfile
23
+ rvm: 2.0
24
+ - gemfile: gemfiles/rails_5_1_x.gemfile
25
+ rvm: 2.1
data/README.md CHANGED
@@ -126,7 +126,7 @@ Priority of this feature is higher than configurations.
126
126
 
127
127
  ## Supported versions
128
128
 
129
- - Ruby: 1.9.3, 2.0.x, 2.1.x, 2.2.x
129
+ - Ruby: 2.0.x, 2.1.x, 2.2.x
130
130
  - Rails: 3.2.x, 4.0.x, 4.1.x, 4.2.x
131
131
 
132
132
  ## Contributing
@@ -147,3 +147,4 @@ Priority of this feature is higher than configurations.
147
147
  - v1.3.1 (2014-01-27 JST): Refactored
148
148
  - v1.3.2 (2014-04-28 JST): Confirm with Rails 4.1
149
149
  - v1.3.3 (2015-11-16 JST): Confirm with Rails 4.2
150
+ - v1.4.0 (2017-10-01 JST): Compatible for Rails 5.0 and Rails 5.1, and dropped Ruby 1.9.3 support
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "rails", "~>5.0.0"
4
+
5
+ gemspec :path => "../"
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "rails", "~>5.1.0"
4
+
5
+ gemspec :path => "../"
@@ -1,7 +1,5 @@
1
- # coding: utf-8
2
1
  require "flog/version"
3
2
  require "flog/status"
4
3
  require "flog/configuration"
5
4
  require "flog/sql_formattable"
6
5
  require "flog/params_formattable"
7
-
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  module Flog
3
2
  class Configuration
4
3
  attr_writer :ignore_cached_query, :force_on_nested_params
@@ -1,21 +1,18 @@
1
- # coding: utf-8
2
1
  require "action_controller/log_subscriber"
3
2
  require "awesome_print"
4
3
  require "flog/payload_value_shuntable"
5
4
 
6
- class ActionController::LogSubscriber
5
+ module Flog::ParamsFormattable
7
6
  include Flog::PayloadValueShuntable
8
-
9
- def start_processing_with_flog(event)
10
- return start_processing_without_flog(event) unless formattable?(event)
7
+ def start_processing(event)
8
+ return super(event) unless formattable?(event)
11
9
 
12
10
  replaced = replace_params(event.payload[:params])
13
11
 
14
12
  shunt_payload_value(event.payload, :params, replaced) do
15
- start_processing_without_flog(event)
13
+ super(event)
16
14
  end
17
15
  end
18
- alias_method_chain :start_processing, :flog
19
16
 
20
17
  private
21
18
  def replace_params(params)
@@ -54,7 +51,11 @@ class ActionController::LogSubscriber
54
51
 
55
52
  def key_count_over?(event)
56
53
  threshold = Flog.config.params_key_count_threshold.to_i
57
- params = event.payload[:params].except(*INTERNAL_PARAMS)
54
+ params = event.payload[:params].except(*ActionController::LogSubscriber::INTERNAL_PARAMS)
58
55
  params.keys.size > threshold
59
56
  end
60
57
  end
58
+
59
+ class ActionController::LogSubscriber
60
+ prepend Flog::ParamsFormattable
61
+ end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  module Flog
3
2
  module PayloadValueShuntable
4
3
  def shunt_payload_value(payload, key, temp_value, &block)
@@ -1,20 +1,18 @@
1
- # coding: utf-8
2
1
  require "active_record/log_subscriber"
3
2
  require "flog/payload_value_shuntable"
4
3
 
5
- class ActiveRecord::LogSubscriber
4
+ module Flog::SqlFormattable
6
5
  include Flog::PayloadValueShuntable
7
6
 
8
- def sql_with_flog(event)
9
- return sql_without_flog(event) unless formattable?(event)
7
+ def sql(event)
8
+ return super(event) unless formattable?(event)
10
9
 
11
10
  formatted = format_sql(event.payload[:sql])
12
11
 
13
12
  shunt_payload_value(event.payload, :sql, "\n\t#{formatted}") do
14
- sql_without_flog(event)
13
+ super(event)
15
14
  end
16
15
  end
17
- alias_method_chain :sql, :flog
18
16
 
19
17
  private
20
18
  def format_sql(sql)
@@ -39,10 +37,14 @@ class ActiveRecord::LogSubscriber
39
37
  end
40
38
 
41
39
  def ignore_by_cached_query?(event)
42
- event.payload[:name] == "CACHE" && Flog.config.ignore_cached_query?
40
+ (event.payload[:name] == "CACHE" || event.payload[:cached]) && Flog.config.ignore_cached_query?
43
41
  end
44
42
 
45
43
  def duration_over?(event)
46
44
  event.duration >= Flog.config.query_duration_threshold.to_f
47
45
  end
48
46
  end
47
+
48
+ class ActiveRecord::LogSubscriber
49
+ prepend Flog::SqlFormattable
50
+ end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require "rails"
3
2
 
4
3
  module Flog
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  module Flog
3
- VERSION = "1.3.3"
2
+ VERSION = "1.4.0"
4
3
  end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require "coveralls"
3
2
  require "simplecov"
4
3
  SimpleCov.formatter = Coveralls::SimpleCov::Formatter
@@ -10,32 +9,46 @@ end
10
9
  require "flog"
11
10
  require "minitest/autorun"
12
11
 
13
- class TestLogger
14
- attr_accessor :debugs, :infos, :errors
12
+ unless defined?(TestLogger)
13
+ class TestLogger
14
+ attr_accessor :debugs, :infos, :errors
15
15
 
16
- def initialize
17
- @debugs = []
18
- @infos = []
19
- @errors = []
20
- end
16
+ def initialize
17
+ @debugs = []
18
+ @infos = []
19
+ @errors = []
20
+ end
21
21
 
22
- def debug?
23
- true
24
- end
22
+ def debug?
23
+ true
24
+ end
25
25
 
26
- def info?
27
- true
28
- end
26
+ def info?
27
+ true
28
+ end
29
+
30
+ def debug(message)
31
+ @debugs += message.split("\n") if message
32
+ end
29
33
 
30
- def debug(message)
31
- @debugs += message.split("\n") if message
34
+ def info(message)
35
+ @infos += message.split("\n") if message
36
+ end
37
+
38
+ def error(message)
39
+ @errors += message.split("\n") if message
40
+ end
32
41
  end
42
+ end
43
+
44
+ unless defined?(COLOR_SEQ_REGEX)
45
+ COLOR_SEQ_REGEX = /\e\[(\d+;)*\d+m/
33
46
 
34
- def info(message)
35
- @infos += message.split("\n") if message
47
+ def remove_color_seq(log)
48
+ log.gsub(COLOR_SEQ_REGEX, "")
36
49
  end
37
50
 
38
- def error(message)
39
- @errors += message.split("\n") if message
51
+ def match_color_seq(log)
52
+ COLOR_SEQ_REGEX.match(log)
40
53
  end
41
54
  end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require "action_controller"
3
2
  require "test_helper"
4
3
 
@@ -12,7 +11,7 @@ class TestController < ActionController::Base
12
11
  end
13
12
 
14
13
  def show
15
- render nothing: true
14
+ head :not_found
16
15
  end
17
16
  end
18
17
 
@@ -41,48 +40,51 @@ class ParamsFormattableTest < ActionController::TestCase
41
40
  end
42
41
 
43
42
  def test_parameters_log_is_formatted
44
- get :show, foo: "foo_value", bar: "bar_value"
43
+ get_show foo: "foo_value", bar: "bar_value"
45
44
  assert_logger do |logger|
46
- logs = logger.infos.map { |log| log.gsub(/\e\[(\d+;)*\d+m/, "") }
47
- assert_equal %( Parameters: ) , logs[1]
48
- assert_equal %({) , logs[2]
49
- assert_equal %( "foo" => "foo_value",), logs[3]
50
- assert_equal %( "bar" => "bar_value") , logs[4]
51
- assert_equal %(}) , logs[5]
45
+ logs = logger.infos.map { |log| remove_color_seq(log) }
46
+ assert_equal " Parameters: ", logs[1]
47
+ hash = hash_from_logs(logs, 2, 5)
48
+ assert_equal hash["foo"], "foo_value"
49
+ assert_equal hash["bar"], "bar_value"
52
50
  end
53
51
  end
54
52
 
55
53
  def test_colorized_on_colorize_loggin_is_true
56
54
  ActiveSupport::LogSubscriber.colorize_logging = true
57
- get :show, foo: "foo_value", bar: "bar_value"
55
+ get_show foo: "foo_value", bar: "bar_value"
58
56
  assert_logger do |logger|
59
- assert /\e\[(\d+;)*\d+m/.match(logger.infos.join())
57
+ assert match_color_seq(logger.infos.join())
60
58
  end
61
59
  end
62
60
 
63
61
  def test_not_colorized_on_colorize_loggin_is_false
64
62
  Flog::Status.stub(:enabled?, true) do
65
- get :show, foo: "foo_value", bar: "bar_value"
63
+ get_show foo: "foo_value", bar: "bar_value"
66
64
  assert_logger do |logger|
67
- assert_nil /\e\[(\d+;)*\d+m/.match(logger.infos.join())
65
+ assert_nil match_color_seq(logger.infos.join())
68
66
  end
69
67
  end
70
68
  end
71
69
 
72
70
  def test_parameters_log_is_not_formatted_when_enabled_is_false
73
71
  Flog::Status.stub(:enabled?, false) do
74
- get :show, foo: "foo_value", bar: "bar_value"
72
+ get_show foo: "foo_value", bar: "bar_value"
75
73
  assert_logger do |logger|
76
- assert logger.infos[1].include?(%(Parameters: {"foo"=>"foo_value", "bar"=>"bar_value"}))
74
+ assert logger.infos[1].include?("Parameters: {")
75
+ assert logger.infos[1].include?(%("foo"=>"foo_value"))
76
+ assert logger.infos[1].include?(%("bar"=>"bar_value"))
77
77
  end
78
78
  end
79
79
  end
80
80
 
81
81
  def test_parameters_log_is_not_formatted_when_params_formattable_is_false
82
82
  Flog::Status.stub(:params_formattable?, false) do
83
- get :show, foo: "foo_value", bar: "bar_value"
83
+ get_show foo: "foo_value", bar: "bar_value"
84
84
  assert_logger do |logger|
85
- assert logger.infos[1].include?(%(Parameters: {"foo"=>"foo_value", "bar"=>"bar_value"}))
85
+ assert logger.infos[1].include?("Parameters: {")
86
+ assert logger.infos[1].include?(%("foo"=>"foo_value"))
87
+ assert logger.infos[1].include?(%("bar"=>"bar_value"))
86
88
  end
87
89
  end
88
90
  end
@@ -91,9 +93,11 @@ class ParamsFormattableTest < ActionController::TestCase
91
93
  Flog.configure do |config|
92
94
  config.params_key_count_threshold = 2
93
95
  end
94
- get :show, foo: "foo_value", bar: "bar_value"
96
+ get_show foo: "foo_value", bar: "bar_value"
95
97
  assert_logger do |logger|
96
- assert logger.infos[1].include?(%(Parameters: {"foo"=>"foo_value", "bar"=>"bar_value"}))
98
+ assert logger.infos[1].include?("Parameters: {")
99
+ assert logger.infos[1].include?(%("foo"=>"foo_value"))
100
+ assert logger.infos[1].include?(%("bar"=>"bar_value"))
97
101
  end
98
102
  end
99
103
 
@@ -101,9 +105,11 @@ class ParamsFormattableTest < ActionController::TestCase
101
105
  Flog.configure do |config|
102
106
  config.params_key_count_threshold = 3
103
107
  end
104
- get :show, foo: "foo_value", bar: "bar_value"
108
+ get_show foo: "foo_value", bar: "bar_value"
105
109
  assert_logger do |logger|
106
- assert logger.infos[1].include?(%(Parameters: {"foo"=>"foo_value", "bar"=>"bar_value"}))
110
+ assert logger.infos[1].include?("Parameters: {")
111
+ assert logger.infos[1].include?(%("foo"=>"foo_value"))
112
+ assert logger.infos[1].include?(%("bar"=>"bar_value"))
107
113
  end
108
114
  end
109
115
 
@@ -111,17 +117,14 @@ class ParamsFormattableTest < ActionController::TestCase
111
117
  Flog.configure do |config|
112
118
  config.params_key_count_threshold = 3
113
119
  end
114
- get :show, foo: "foo_value", bar: { prop: "prop_value", attr: "attr_value" }
120
+ get_show foo: "foo_value", bar: { prop: "prop_value", attr: "attr_value" }
115
121
  assert_logger do |logger|
116
- logs = logger.infos.map { |log| log.gsub(/\e\[(\d+;)*\d+m/, "") }
117
- assert_equal %( Parameters: ) , logs[1]
118
- assert_equal %({) , logs[2]
119
- assert_equal %( "foo" => "foo_value",) , logs[3]
120
- assert_equal %( "bar" => {) , logs[4]
121
- assert_equal %( "prop" => "prop_value",), logs[5]
122
- assert_equal %( "attr" => "attr_value") , logs[6]
123
- assert_equal %( }) , logs[7]
124
- assert_equal %(}) , logs[8]
122
+ logs = logger.infos.map { |log| remove_color_seq(log) }
123
+ assert_equal " Parameters: ", logs[1]
124
+ hash = hash_from_logs(logs, 2, 8)
125
+ assert_equal hash["foo"], "foo_value"
126
+ assert_equal hash["bar"]["prop"], "prop_value"
127
+ assert_equal hash["bar"]["attr"], "attr_value"
125
128
  end
126
129
  end
127
130
 
@@ -133,4 +136,16 @@ class ParamsFormattableTest < ActionController::TestCase
133
136
  block.call(ActionController::Base.logger)
134
137
  end
135
138
  end
139
+
140
+ def get_show(params)
141
+ if Gem::Version.new(Rails.version) >= Gem::Version.new("5.0.0")
142
+ get :show, params: params
143
+ else
144
+ get :show, params
145
+ end
146
+ end
147
+
148
+ def hash_from_logs(logs, start, finish)
149
+ eval(start.upto(finish).reduce("") { |s, n| s + logs[n] })
150
+ end
136
151
  end
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require "test_helper"
3
2
 
4
3
  class TestClass
@@ -36,7 +35,7 @@ class PayloadValueShuntableTest < ActiveSupport::TestCase
36
35
  @tester.shunt_payload_value(@payload, :foo, "new_value") do
37
36
  raise "error"
38
37
  end
39
- rescue => ex
38
+ rescue
40
39
  error_raised = true
41
40
  end
42
41
  assert error_raised
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require "active_record"
3
2
  require "test_helper"
4
3
 
@@ -47,14 +46,14 @@ class SqlFormattableTest < ActiveSupport::TestCase
47
46
  ActiveSupport::LogSubscriber.colorize_logging = true
48
47
  Book.where(category: "comics").to_a
49
48
  assert_logger do |logger|
50
- assert /\e\[(\d+;)*\d+m/.match(logger.debugs.join())
49
+ assert match_color_seq(logger.debugs.join())
51
50
  end
52
51
  end
53
52
 
54
53
  def test_not_colorized_on_colorize_loggin_is_false
55
54
  Book.where(category: "comics").to_a
56
55
  assert_logger do |logger|
57
- assert_nil /\e\[(\d+;)*\d+m/.match(logger.debugs.join())
56
+ assert_nil match_color_seq(logger.debugs.join())
58
57
  end
59
58
  end
60
59
 
@@ -1,4 +1,3 @@
1
- # coding: utf-8
2
1
  require "rails"
3
2
  require "test_helper"
4
3
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-flog
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - pinzolo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-16 00:00:00.000000000 Z
11
+ date: 2017-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -140,6 +140,8 @@ files:
140
140
  - gemfiles/rails_4_0_x.gemfile
141
141
  - gemfiles/rails_4_1_x.gemfile
142
142
  - gemfiles/rails_4_2_x.gemfile
143
+ - gemfiles/rails_5_0_x.gemfile
144
+ - gemfiles/rails_5_1_x.gemfile
143
145
  - lib/flog.rb
144
146
  - lib/flog/configuration.rb
145
147
  - lib/flog/params_formattable.rb
@@ -174,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
176
  version: '0'
175
177
  requirements: []
176
178
  rubyforge_project:
177
- rubygems_version: 2.4.5
179
+ rubygems_version: 2.6.13
178
180
  signing_key:
179
181
  specification_version: 4
180
182
  summary: Rails log formatter for parameters and sql