rails-flog 1.3.3 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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