Rename Request#enabled_for_controller= to #enabled=
This commit is contained in:
parent
9c99efeef5
commit
e91804afb7
|
@ -1344,14 +1344,14 @@ helper method.
|
||||||
# in test/test_helper.rb
|
# in test/test_helper.rb
|
||||||
def with_versioning
|
def with_versioning
|
||||||
was_enabled = PaperTrail.enabled?
|
was_enabled = PaperTrail.enabled?
|
||||||
was_enabled_for_controller = PaperTrail.enabled_for_controller?
|
was_enabled_for_request = PaperTrail.request.enabled?
|
||||||
PaperTrail.enabled = true
|
PaperTrail.enabled = true
|
||||||
PaperTrail.enabled_for_controller = true
|
PaperTrail.request.enabled = true
|
||||||
begin
|
begin
|
||||||
yield
|
yield
|
||||||
ensure
|
ensure
|
||||||
PaperTrail.enabled = was_enabled
|
PaperTrail.enabled = was_enabled
|
||||||
PaperTrail.enabled_for_controller = was_enabled_for_controller
|
PaperTrail.request.enabled = was_enabled_for_request
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
|
@ -72,20 +72,20 @@ module PaperTrail
|
||||||
def enabled_for_controller=(value)
|
def enabled_for_controller=(value)
|
||||||
::ActiveSupport::Deprecation.warn(
|
::ActiveSupport::Deprecation.warn(
|
||||||
"PaperTrail.enabled_for_controller= is deprecated, " \
|
"PaperTrail.enabled_for_controller= is deprecated, " \
|
||||||
"use PaperTrail.request.enabled_for_controller=",
|
"use PaperTrail.request.enabled=",
|
||||||
caller(1)
|
caller(1)
|
||||||
)
|
)
|
||||||
request.enabled_for_controller = value
|
request.enabled = value
|
||||||
end
|
end
|
||||||
|
|
||||||
# @deprecated
|
# @deprecated
|
||||||
def enabled_for_controller?
|
def enabled_for_controller?
|
||||||
::ActiveSupport::Deprecation.warn(
|
::ActiveSupport::Deprecation.warn(
|
||||||
"PaperTrail.enabled_for_controller? is deprecated, " \
|
"PaperTrail.enabled_for_controller? is deprecated, " \
|
||||||
"use PaperTrail.request.enabled_for_controller?",
|
"use PaperTrail.request.enabled?",
|
||||||
caller(1)
|
caller(1)
|
||||||
)
|
)
|
||||||
request.enabled_for_controller?
|
request.enabled?
|
||||||
end
|
end
|
||||||
|
|
||||||
# @deprecated
|
# @deprecated
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
# before hook for Cucumber
|
# before hook for Cucumber
|
||||||
Before do
|
Before do
|
||||||
PaperTrail.enabled = false
|
PaperTrail.enabled = false
|
||||||
PaperTrail.request.enabled_for_controller = true
|
PaperTrail.request.enabled = true
|
||||||
PaperTrail.request.whodunnit = nil
|
PaperTrail.request.whodunnit = nil
|
||||||
PaperTrail.request.controller_info = {} if defined?(::Rails)
|
PaperTrail.request.controller_info = {} if defined?(::Rails)
|
||||||
end
|
end
|
||||||
|
|
|
@ -4,7 +4,8 @@ module PaperTrail
|
||||||
module Rails
|
module Rails
|
||||||
# Extensions to rails controllers. Provides convenient ways to pass certain
|
# Extensions to rails controllers. Provides convenient ways to pass certain
|
||||||
# information to the model layer, with `controller_info` and `whodunnit`.
|
# information to the model layer, with `controller_info` and `whodunnit`.
|
||||||
# Also includes a convenient on/off switch, `enabled_for_controller`.
|
# Also includes a convenient on/off switch,
|
||||||
|
# `paper_trail_enabled_for_controller`.
|
||||||
module Controller
|
module Controller
|
||||||
def self.included(controller)
|
def self.included(controller)
|
||||||
controller.before_action(
|
controller.before_action(
|
||||||
|
@ -78,14 +79,14 @@ module PaperTrail
|
||||||
#
|
#
|
||||||
# @api public
|
# @api public
|
||||||
def set_paper_trail_enabled_for_controller
|
def set_paper_trail_enabled_for_controller
|
||||||
::PaperTrail.request.enabled_for_controller = paper_trail_enabled_for_controller
|
::PaperTrail.request.enabled = paper_trail_enabled_for_controller
|
||||||
end
|
end
|
||||||
|
|
||||||
# Tells PaperTrail who is responsible for any changes that occur.
|
# Tells PaperTrail who is responsible for any changes that occur.
|
||||||
#
|
#
|
||||||
# @api public
|
# @api public
|
||||||
def set_paper_trail_whodunnit
|
def set_paper_trail_whodunnit
|
||||||
if ::PaperTrail.request.enabled_for_controller?
|
if ::PaperTrail.request.enabled?
|
||||||
::PaperTrail.request.whodunnit = user_for_paper_trail
|
::PaperTrail.request.whodunnit = user_for_paper_trail
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -95,7 +96,7 @@ module PaperTrail
|
||||||
#
|
#
|
||||||
# @api public
|
# @api public
|
||||||
def set_paper_trail_controller_info
|
def set_paper_trail_controller_info
|
||||||
if ::PaperTrail.request.enabled_for_controller?
|
if ::PaperTrail.request.enabled?
|
||||||
::PaperTrail.request.controller_info = info_for_paper_trail
|
::PaperTrail.request.controller_info = info_for_paper_trail
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,7 +10,7 @@ RSpec.configure do |config|
|
||||||
|
|
||||||
config.before(:each) do
|
config.before(:each) do
|
||||||
::PaperTrail.enabled = false
|
::PaperTrail.enabled = false
|
||||||
::PaperTrail.request.enabled_for_controller = true
|
::PaperTrail.request.enabled = true
|
||||||
::PaperTrail.request.whodunnit = nil
|
::PaperTrail.request.whodunnit = nil
|
||||||
::PaperTrail.request.controller_info = {} if defined?(::Rails) && defined?(::RSpec::Rails)
|
::PaperTrail.request.controller_info = {} if defined?(::Rails) && defined?(::RSpec::Rails)
|
||||||
end
|
end
|
||||||
|
|
|
@ -113,7 +113,7 @@ module PaperTrail
|
||||||
# @api private
|
# @api private
|
||||||
def enabled?
|
def enabled?
|
||||||
PaperTrail.enabled? &&
|
PaperTrail.enabled? &&
|
||||||
PaperTrail.request.enabled_for_controller? &&
|
PaperTrail.request.enabled? &&
|
||||||
PaperTrail.request.enabled_for_model?(@record.class)
|
PaperTrail.request.enabled_for_model?(@record.class)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -57,16 +57,15 @@ module PaperTrail
|
||||||
|
|
||||||
# Sets whether PaperTrail is enabled or disabled for the current request.
|
# Sets whether PaperTrail is enabled or disabled for the current request.
|
||||||
# @api public
|
# @api public
|
||||||
def enabled_for_controller=(value)
|
def enabled=(value)
|
||||||
store[:request_enabled_for_controller] = value
|
store[:enabled] = value
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns `true` if PaperTrail is enabled for the request, `false` otherwise.
|
# Returns `true` if PaperTrail is enabled for the request, `false` otherwise.
|
||||||
#
|
|
||||||
# See `PaperTrail::Rails::Controller#paper_trail_enabled_for_controller`.
|
# See `PaperTrail::Rails::Controller#paper_trail_enabled_for_controller`.
|
||||||
# @api public
|
# @api public
|
||||||
def enabled_for_controller?
|
def enabled?
|
||||||
!!store[:request_enabled_for_controller]
|
!!store[:enabled]
|
||||||
end
|
end
|
||||||
|
|
||||||
# Sets whether PaperTrail is enabled or disabled for this model in the
|
# Sets whether PaperTrail is enabled or disabled for this model in the
|
||||||
|
@ -156,7 +155,7 @@ module PaperTrail
|
||||||
# @api private
|
# @api private
|
||||||
def store
|
def store
|
||||||
RequestStore.store[:paper_trail] ||= {
|
RequestStore.store[:paper_trail] ||= {
|
||||||
request_enabled_for_controller: true
|
enabled: true
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -169,7 +168,7 @@ module PaperTrail
|
||||||
case k
|
case k
|
||||||
when :controller_info,
|
when :controller_info,
|
||||||
/enabled_for_/,
|
/enabled_for_/,
|
||||||
:request_enabled_for_controller,
|
:enabled,
|
||||||
:whodunnit
|
:whodunnit
|
||||||
next
|
next
|
||||||
when :transaction_id
|
when :transaction_id
|
||||||
|
|
|
@ -3,16 +3,16 @@
|
||||||
require "spec_helper"
|
require "spec_helper"
|
||||||
|
|
||||||
RSpec.describe ArticlesController, type: :controller do
|
RSpec.describe ArticlesController, type: :controller do
|
||||||
describe "PaperTrail.request.enabled_for_controller?" do
|
describe "PaperTrail.request.enabled?" do
|
||||||
context "PaperTrail.enabled? == true" do
|
context "PaperTrail.enabled? == true" do
|
||||||
before { PaperTrail.enabled = true }
|
before { PaperTrail.enabled = true }
|
||||||
|
|
||||||
it "returns true" do
|
it "returns true" do
|
||||||
assert PaperTrail.enabled?
|
expect(PaperTrail.enabled?).to eq(true)
|
||||||
post :create, params_wrapper(article: { title: "Doh", content: FFaker::Lorem.sentence })
|
post :create, params_wrapper(article: { title: "Doh", content: FFaker::Lorem.sentence })
|
||||||
expect(assigns(:article)).not_to be_nil
|
expect(assigns(:article)).not_to be_nil
|
||||||
assert PaperTrail.request.enabled_for_controller?
|
expect(PaperTrail.request.enabled?).to eq(true)
|
||||||
assert_equal 1, assigns(:article).versions.length
|
expect(assigns(:article).versions.length).to eq(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
after { PaperTrail.enabled = false }
|
after { PaperTrail.enabled = false }
|
||||||
|
@ -20,10 +20,10 @@ RSpec.describe ArticlesController, type: :controller do
|
||||||
|
|
||||||
context "PaperTrail.enabled? == false" do
|
context "PaperTrail.enabled? == false" do
|
||||||
it "returns false" do
|
it "returns false" do
|
||||||
assert !PaperTrail.enabled?
|
expect(PaperTrail.enabled?).to eq(false)
|
||||||
post :create, params_wrapper(article: { title: "Doh", content: FFaker::Lorem.sentence })
|
post :create, params_wrapper(article: { title: "Doh", content: FFaker::Lorem.sentence })
|
||||||
assert !PaperTrail.request.enabled_for_controller?
|
expect(PaperTrail.request.enabled?).to eq(false)
|
||||||
assert_equal 0, assigns(:article).versions.length
|
expect(assigns(:article).versions.length).to eq(0)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -20,7 +20,7 @@ RSpec.describe WidgetsController, type: :controller, versioning: true do
|
||||||
it "controller metadata methods should get evaluated" do
|
it "controller metadata methods should get evaluated" do
|
||||||
request.env["HTTP_USER_AGENT"] = "User-Agent"
|
request.env["HTTP_USER_AGENT"] = "User-Agent"
|
||||||
post :create, params_wrapper(widget: { name: "Flugel" })
|
post :create, params_wrapper(widget: { name: "Flugel" })
|
||||||
expect(PaperTrail.request.enabled_for_controller?).to(eq(true))
|
expect(PaperTrail.request.enabled?).to eq(true)
|
||||||
expect(PaperTrail.request.whodunnit).to(eq(153))
|
expect(PaperTrail.request.whodunnit).to(eq(153))
|
||||||
expect(PaperTrail.request.controller_info.present?).to(eq(true))
|
expect(PaperTrail.request.controller_info.present?).to(eq(true))
|
||||||
expect(PaperTrail.request.controller_info.keys.include?(:ip)).to(eq(true))
|
expect(PaperTrail.request.controller_info.keys.include?(:ip)).to(eq(true))
|
||||||
|
@ -33,7 +33,7 @@ RSpec.describe WidgetsController, type: :controller, versioning: true do
|
||||||
request.env["HTTP_USER_AGENT"] = "Disable User-Agent"
|
request.env["HTTP_USER_AGENT"] = "Disable User-Agent"
|
||||||
post :create, params_wrapper(widget: { name: "Flugel" })
|
post :create, params_wrapper(widget: { name: "Flugel" })
|
||||||
expect(assigns(:widget).versions.length).to(eq(0))
|
expect(assigns(:widget).versions.length).to(eq(0))
|
||||||
expect(PaperTrail.request).not_to be_enabled_for_controller
|
expect(PaperTrail.request.enabled?).to eq(false)
|
||||||
expect(PaperTrail.request.whodunnit).to be_nil
|
expect(PaperTrail.request.whodunnit).to be_nil
|
||||||
expect(PaperTrail.request.controller_info).to eq({})
|
expect(PaperTrail.request.controller_info).to eq({})
|
||||||
end
|
end
|
||||||
|
|
|
@ -35,22 +35,22 @@ module PaperTrail
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe ".enabled_for_controller?" do
|
describe ".enabled?" do
|
||||||
it "returns true" do
|
it "returns true" do
|
||||||
expect(PaperTrail.request.enabled_for_controller?).to eq(true)
|
expect(PaperTrail.request.enabled?).to eq(true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe ".enabled_for_controller=" do
|
describe ".enabled=" do
|
||||||
it "sets enabled_for_controller? to true" do
|
it "sets enabled? to true" do
|
||||||
PaperTrail.request.enabled_for_controller = true
|
PaperTrail.request.enabled = true
|
||||||
expect(PaperTrail.request.enabled_for_controller?).to eq(true)
|
expect(PaperTrail.request.enabled?).to eq(true)
|
||||||
PaperTrail.request.enabled_for_controller = false
|
PaperTrail.request.enabled = false
|
||||||
expect(PaperTrail.request.enabled_for_controller?).to eq(false)
|
expect(PaperTrail.request.enabled?).to eq(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
after do
|
||||||
PaperTrail.request.enabled_for_controller = true
|
PaperTrail.request.enabled = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,6 @@ RSpec.describe PaperTrail do
|
||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like "it delegates to request", :clear_transaction_id, nil
|
it_behaves_like "it delegates to request", :clear_transaction_id, nil
|
||||||
it_behaves_like "it delegates to request", :enabled_for_controller=, [true]
|
|
||||||
it_behaves_like "it delegates to request", :enabled_for_model, [Widget, true]
|
it_behaves_like "it delegates to request", :enabled_for_model, [Widget, true]
|
||||||
it_behaves_like "it delegates to request", :enabled_for_model?, [Widget]
|
it_behaves_like "it delegates to request", :enabled_for_model?, [Widget]
|
||||||
it_behaves_like "it delegates to request", :whodunnit=, [:some_whodunnit]
|
it_behaves_like "it delegates to request", :whodunnit=, [:some_whodunnit]
|
||||||
|
@ -125,6 +124,14 @@ RSpec.describe PaperTrail do
|
||||||
it_behaves_like "it delegates to request", :transaction_id=, 123
|
it_behaves_like "it delegates to request", :transaction_id=, 123
|
||||||
it_behaves_like "it delegates to request", :transaction_id, nil
|
it_behaves_like "it delegates to request", :transaction_id, nil
|
||||||
|
|
||||||
|
describe "#enabled_for_controller=" do
|
||||||
|
it "is deprecated" do
|
||||||
|
allow(::PaperTrail.request).to receive(:enabled=)
|
||||||
|
::PaperTrail.enabled_for_controller = true
|
||||||
|
expect(::PaperTrail.request).to have_received(:enabled=).with(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "whodunnit with block" do
|
describe "whodunnit with block" do
|
||||||
it "delegates to request" do
|
it "delegates to request" do
|
||||||
allow(described_class.request).to receive(:with)
|
allow(described_class.request).to receive(:with)
|
||||||
|
|
|
@ -9,16 +9,11 @@ RSpec.describe "Articles management", type: :request, order: :defined do
|
||||||
specify { expect(PaperTrail).not_to be_enabled }
|
specify { expect(PaperTrail).not_to be_enabled }
|
||||||
|
|
||||||
it "does not create a version" do
|
it "does not create a version" do
|
||||||
expect(PaperTrail.request).to be_enabled_for_controller
|
expect(PaperTrail.request).to be_enabled
|
||||||
expect {
|
expect {
|
||||||
post articles_path, params_wrapper(valid_params)
|
post articles_path, params_wrapper(valid_params)
|
||||||
}.not_to change(PaperTrail::Version, :count)
|
}.not_to change(PaperTrail::Version, :count)
|
||||||
end
|
end
|
||||||
|
|
||||||
it "does not leak the state of the `PaperTrail.request.enabled_for_controller?` \
|
|
||||||
into the next test" do
|
|
||||||
expect(PaperTrail.request).to be_enabled_for_controller
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
with_versioning do
|
with_versioning do
|
||||||
|
|
Loading…
Reference in New Issue