Skip to content

Commit 72aeca1

Browse files
committed
Extract controller concern for analytics event method
1 parent afa5e47 commit 72aeca1

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

app/controllers/concerns/analytics.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module Analytics
2+
extend ActiveSupport::Concern
3+
4+
def plausible_event(name, props: {})
5+
Analytics::PlausibleEventJob.perform_later(
6+
name: name,
7+
url: request.original_url,
8+
props: props,
9+
referrer: request.referer,
10+
headers: {
11+
"User-Agent" => request.user_agent,
12+
"X-Forwarded-For" => request.remote_ip
13+
}
14+
)
15+
end
16+
end

spec/controllers/analytics_spec.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
require "rails_helper"
2+
3+
RSpec.describe "Analytics", type: :controller do
4+
controller do
5+
include Analytics
6+
7+
after_action do
8+
plausible_event "Something Happened", props: {value: 42}
9+
end
10+
11+
def index
12+
render plain: "Hello, World!"
13+
end
14+
end
15+
16+
it "sends a plausible event" do
17+
plausible_request = stub_request(:post, "https://plausible.io/api/event")
18+
19+
get :index
20+
21+
perform_enqueued_jobs
22+
23+
expect(plausible_request).to have_been_requested
24+
end
25+
end

0 commit comments

Comments
 (0)