rails-flog 1.0.0 → 1.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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/README.md +9 -6
- data/gemfiles/{activemodel_3_2_x.gemfile → rails_3_2_x.gemfile} +0 -0
- data/gemfiles/{activemodel_4_0_x.gemfile → rails_4_0_x.gemfile} +0 -0
- data/lib/flog.rb +1 -0
- data/lib/flog/params_formattable.rb +4 -1
- data/lib/flog/payload_value_shuntable.rb +15 -13
- data/lib/flog/sql_formattable.rb +3 -1
- data/lib/flog/status.rb +14 -0
- data/lib/flog/version.rb +1 -1
- data/rails-flog.gemspec +1 -0
- data/test/test_helper.rb +1 -0
- data/test/unit/params_formattable_test.rb +8 -0
- data/test/unit/payload_value_shuntable_test.rb +1 -1
- data/test/unit/sql_formattable_test.rb +8 -0
- data/test/unit/status_test.rb +41 -0
- metadata +23 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57c68ce2bbb1cb74f3bde72f9f9226ecb4ddd8d3
|
4
|
+
data.tar.gz: 8981369d077b93a3d63a4fff554e01f7b8869487
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 026b7737f8ec98e1f1e3749dd00e00eb728728473ba771f836d8cdc2dbb978442ddc2ac691df88be0ec7d5d0749eefe069784b6a85f9761d2777ba5edcce869a
|
7
|
+
data.tar.gz: 081eda06508831663a0874bb5b2be931428e55bb95afec2781ee0be8c41e97d10978851ed9016cc2c4d26a60d6e8076a03ad396ed7c97e830ac82dd6c8d50533
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -13,7 +13,7 @@ rails-flog provides feature that formats parameters Hash and SQL in Rails log fi
|
|
13
13
|
# Parameters
|
14
14
|
Processing by IssuesController#create as HTML
|
15
15
|
Parameters: {"utf8"=>"✓", "authenticity_token"=>"VYCWAsE+aAN+zSZq2H3ONNqaU8rlyfbnXLfbwDY1i10=", "issue"=>{"is_private"=>"0", "tracker_id"=>"1", "subject"=>"test ticket", "description"=>"test ticket description", "status_id"=>"1", "priority_id"=>"2", "assigned_to_id"=>"1", "parent_issue_id"=>"", "start_date"=>"2013-11-28", "due_date"=>"2013-11-29", "estimated_hours"=>"5", "done_ratio"=>"10"}, "commit"=>"Create", "project_id"=>"test"}
|
16
|
-
|
16
|
+
|
17
17
|
# SQL
|
18
18
|
IssueCustomField Load (0.0ms) SELECT "custom_fields".* FROM "custom_fields" WHERE "custom_fields"."type" IN ('IssueCustomField') AND (is_for_all = 't' OR id IN (SELECT DISTINCT cfp.custom_field_id FROM custom_fields_projects cfp WHERE cfp.project_id = 1)) ORDER BY custom_fields.position ASC
|
19
19
|
```
|
@@ -46,7 +46,7 @@ Processing by IssuesController#create as HTML
|
|
46
46
|
}
|
47
47
|
|
48
48
|
# SQL
|
49
|
-
IssueCustomField Load (0.0ms)
|
49
|
+
IssueCustomField Load (0.0ms)
|
50
50
|
SELECT
|
51
51
|
"custom_fields" . *
|
52
52
|
FROM
|
@@ -87,6 +87,10 @@ Or install it yourself as:
|
|
87
87
|
|
88
88
|
Just install.
|
89
89
|
|
90
|
+
## Disable temporary
|
91
|
+
|
92
|
+
If you put a file named `no-flog.txt` to `<rails_app>/tmp` direcotry, `rails-flog` will disable format.
|
93
|
+
|
90
94
|
## Supported versions
|
91
95
|
|
92
96
|
- Ruby: 1.9.3, 2.0.0
|
@@ -100,8 +104,7 @@ Just install.
|
|
100
104
|
4. Push to the branch (`git push origin my-new-feature`)
|
101
105
|
5. Create new Pull Request
|
102
106
|
|
103
|
-
##
|
107
|
+
## Changelog
|
104
108
|
|
105
|
-
-
|
106
|
-
-
|
107
|
-
- [yuroyoro](http://yuroyoro.hatenablog.com/entry/2013/04/12/141648) : Inspired
|
109
|
+
- v1.0.0 (2013-11-28 JST): First release
|
110
|
+
- v1.1.0 (2013-12-02 JST): Add feature that disables format by no-flog.txt
|
File without changes
|
File without changes
|
data/lib/flog.rb
CHANGED
@@ -2,13 +2,16 @@
|
|
2
2
|
require "action_controller/log_subscriber"
|
3
3
|
require "awesome_print"
|
4
4
|
require "flog/payload_value_shuntable"
|
5
|
+
require "flog/status"
|
5
6
|
|
6
7
|
class ActionController::LogSubscriber
|
7
|
-
include PayloadValueShuntable
|
8
|
+
include Flog::PayloadValueShuntable
|
8
9
|
|
9
10
|
alias :original_start_processing :start_processing
|
10
11
|
|
11
12
|
def start_processing(event)
|
13
|
+
return original_start_processing(event) unless Flog::Status.enabled?
|
14
|
+
|
12
15
|
replaced = replace_params(event.payload[:params])
|
13
16
|
|
14
17
|
shunt_payload_value(event.payload, :params, replaced) do
|
@@ -1,18 +1,20 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
module
|
3
|
-
|
4
|
-
|
2
|
+
module Flog
|
3
|
+
module PayloadValueShuntable
|
4
|
+
def shunt_payload_value(payload, key, temp_value, &block)
|
5
|
+
return unless block
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
7
|
+
key_exists = payload.key?(key)
|
8
|
+
base_value = payload[key]
|
9
|
+
begin
|
10
|
+
payload[key] = temp_value
|
11
|
+
block.call
|
12
|
+
ensure
|
13
|
+
if key_exists
|
14
|
+
payload[key] = base_value
|
15
|
+
else
|
16
|
+
payload.delete(key)
|
17
|
+
end
|
16
18
|
end
|
17
19
|
end
|
18
20
|
end
|
data/lib/flog/sql_formattable.rb
CHANGED
@@ -3,11 +3,13 @@ require "active_record/log_subscriber"
|
|
3
3
|
require "flog/payload_value_shuntable"
|
4
4
|
|
5
5
|
class ActiveRecord::LogSubscriber
|
6
|
-
include PayloadValueShuntable
|
6
|
+
include Flog::PayloadValueShuntable
|
7
7
|
|
8
8
|
alias :original_sql :sql
|
9
9
|
|
10
10
|
def sql(event)
|
11
|
+
return original_sql(event) unless Flog::Status.enabled?
|
12
|
+
|
11
13
|
formatted = format_sql(event.payload[:sql])
|
12
14
|
|
13
15
|
shunt_payload_value(event.payload, :sql, "\n\t#{formatted}") do
|
data/lib/flog/status.rb
ADDED
data/lib/flog/version.rb
CHANGED
data/rails-flog.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
spec.add_development_dependency "sqlite3"
|
24
24
|
spec.add_development_dependency "coveralls"
|
25
|
+
spec.add_development_dependency "mocha"
|
25
26
|
|
26
27
|
spec.add_dependency "rails", ">=3.2.0"
|
27
28
|
spec.add_dependency "anbt-sql-formatter"
|
data/test/test_helper.rb
CHANGED
@@ -61,6 +61,14 @@ class ParamsFormattableTest < ActionController::TestCase
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
+
def test_parameters_log_is_not_formatted_when_enabled_is_false
|
65
|
+
Flog::Status.expects(:enabled?).returns(false)
|
66
|
+
get :show, foo: "foo_value", bar: "bar_value"
|
67
|
+
assert_logger do |logger|
|
68
|
+
assert logger.infos[1].include?(%(Parameters: {"foo"=>"foo_value", "bar"=>"bar_value"}))
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
64
72
|
private
|
65
73
|
def assert_logger(&block)
|
66
74
|
if ActionController::Base.logger.errors.present?
|
@@ -52,6 +52,14 @@ class SqlFormattableTest < ActiveSupport::TestCase
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
+
def test_sql_is_not_formatted_when_enabled_is_false
|
56
|
+
Flog::Status.expects(:enabled?).returns(false)
|
57
|
+
Book.where(category: "comics").to_a
|
58
|
+
assert_logger do |logger|
|
59
|
+
assert logger.debugs.first.include?(%(SELECT "books".* FROM "books" WHERE "books"."category" = 'comics'))
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
55
63
|
private
|
56
64
|
def assert_logger(&block)
|
57
65
|
if ActiveRecord::Base.logger.errors.present?
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require "rails"
|
3
|
+
|
4
|
+
class StatusTest < ActiveSupport::TestCase
|
5
|
+
def setup
|
6
|
+
@test_root = Pathname.new(File.expand_path(File.dirname(__FILE__) + "../../"))
|
7
|
+
@switch_file_path = @test_root.join("tmp", Flog::Status::SWITCH_FILE_NAME)
|
8
|
+
end
|
9
|
+
|
10
|
+
def teardown
|
11
|
+
delete_switch_file
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_enabled_is_true_when_switch_file_does_not_exist
|
15
|
+
delete_switch_file
|
16
|
+
assert Flog::Status.enabled?
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_enabled_is_false_when_switch_file_exists
|
20
|
+
Rails.expects(:root).returns(@test_root)
|
21
|
+
create_switch_file
|
22
|
+
assert_equal false, Flog::Status.enabled?
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_enabled_is_true_when_error_is_raised_in_process
|
26
|
+
Rails.expects(:root).returns(nil) # For raise NoMethodError
|
27
|
+
create_switch_file
|
28
|
+
assert Flog::Status.enabled?
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
def create_switch_file
|
33
|
+
File.open(@switch_file_path, "w").close
|
34
|
+
end
|
35
|
+
|
36
|
+
def delete_switch_file
|
37
|
+
if File.exist?(@switch_file_path)
|
38
|
+
File.delete(@switch_file_path)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
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.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pinzolo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mocha
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rails
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,18 +136,21 @@ files:
|
|
122
136
|
- LICENSE.txt
|
123
137
|
- README.md
|
124
138
|
- Rakefile
|
125
|
-
- gemfiles/
|
126
|
-
- gemfiles/
|
139
|
+
- gemfiles/rails_3_2_x.gemfile
|
140
|
+
- gemfiles/rails_4_0_x.gemfile
|
127
141
|
- lib/flog.rb
|
128
142
|
- lib/flog/params_formattable.rb
|
129
143
|
- lib/flog/payload_value_shuntable.rb
|
130
144
|
- lib/flog/sql_formattable.rb
|
145
|
+
- lib/flog/status.rb
|
131
146
|
- lib/flog/version.rb
|
132
147
|
- rails-flog.gemspec
|
133
148
|
- test/test_helper.rb
|
149
|
+
- test/tmp/.gitkeep
|
134
150
|
- test/unit/params_formattable_test.rb
|
135
151
|
- test/unit/payload_value_shuntable_test.rb
|
136
152
|
- test/unit/sql_formattable_test.rb
|
153
|
+
- test/unit/status_test.rb
|
137
154
|
homepage: https://github.com/pinzolo/rails-flog
|
138
155
|
licenses:
|
139
156
|
- MIT
|
@@ -160,6 +177,8 @@ specification_version: 4
|
|
160
177
|
summary: Rails log formatter for parameters and sql
|
161
178
|
test_files:
|
162
179
|
- test/test_helper.rb
|
180
|
+
- test/tmp/.gitkeep
|
163
181
|
- test/unit/params_formattable_test.rb
|
164
182
|
- test/unit/payload_value_shuntable_test.rb
|
165
183
|
- test/unit/sql_formattable_test.rb
|
184
|
+
- test/unit/status_test.rb
|