plausible_api 0.2 → 0.3
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/Gemfile.lock +1 -1
- data/README.md +12 -0
- data/lib/plausible_api/client.rb +3 -4
- data/lib/plausible_api/configuration.rb +26 -0
- data/lib/plausible_api/stats/aggregate.rb +2 -2
- data/lib/plausible_api/stats/breakdown.rb +2 -2
- data/lib/plausible_api/stats/timeseries.rb +2 -2
- data/lib/plausible_api/version.rb +1 -1
- data/lib/plausible_api.rb +13 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3164447cd3eac3c7a7cbf0c7e7cccd36eaf2bd195966283fc0da4ad023b7b21e
|
4
|
+
data.tar.gz: 34acbb3e21f80bd3537d4273b6555dea0da7e4fdb5cf3dcbf8bede5d477e8ce0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03273d140652347b6b282d94ff0c6294746fc7bd410dcaa1feab54a627d80ed64fa8eb1c9c56c0a3a0e3e2a95cb9cda755501987f46a3b795cb9dc2862aa1e01
|
7
|
+
data.tar.gz: b6e84673b3763918a28488c717e3be089107571ecb1b357b4d7e2b1ded589b68eade9d65f615e70a6655b4571a73c7bf767a0af3363b6ca90631cd0810ea91e8
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -87,6 +87,18 @@ c.event({
|
|
87
87
|
})
|
88
88
|
```
|
89
89
|
|
90
|
+
|
91
|
+
### Self-hosted Plausible instances
|
92
|
+
|
93
|
+
If you are using a self-hosted Plausible instance, you can set the `base_url` before initializing the client. On a Ruby on Rails app, you can add this to an initializer like `config/initializers/plausible.rb`
|
94
|
+
|
95
|
+
```rb
|
96
|
+
# Do not include a trailing slash
|
97
|
+
PlausibleApi.configure do |config|
|
98
|
+
config.base_url = "https://your-plausible-instance.com"
|
99
|
+
end
|
100
|
+
```
|
101
|
+
|
90
102
|
## Development
|
91
103
|
|
92
104
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/plausible_api/client.rb
CHANGED
@@ -15,8 +15,6 @@ require "cgi"
|
|
15
15
|
|
16
16
|
module PlausibleApi
|
17
17
|
class Client
|
18
|
-
BASE_URL = "https://plausible.io"
|
19
|
-
|
20
18
|
def initialize(site_id, token)
|
21
19
|
@site_id = site_id.to_s
|
22
20
|
@token = token.to_s
|
@@ -54,9 +52,10 @@ module PlausibleApi
|
|
54
52
|
SUCCESS_CODES = %w[200 202].freeze
|
55
53
|
|
56
54
|
def call(api)
|
57
|
-
raise
|
55
|
+
raise Error, api.errors unless api.valid?
|
56
|
+
raise ConfigurationError, PlausibleApi.configuration.errors unless PlausibleApi.configuration.valid?
|
58
57
|
|
59
|
-
url = "#{
|
58
|
+
url = "#{PlausibleApi.configuration.base_url}#{api.request_url.gsub("$SITE_ID", @site_id)}"
|
60
59
|
uri = URI.parse(url)
|
61
60
|
|
62
61
|
req = api.request_class.new(uri.request_uri)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module PlausibleApi
|
2
|
+
class Configuration
|
3
|
+
attr_accessor :base_url
|
4
|
+
|
5
|
+
# Setting up default values
|
6
|
+
def initialize
|
7
|
+
@base_url = "https://plausible.io"
|
8
|
+
end
|
9
|
+
|
10
|
+
def valid?
|
11
|
+
errors.empty?
|
12
|
+
end
|
13
|
+
|
14
|
+
def errors
|
15
|
+
errors = []
|
16
|
+
if base_url.nil? || base_url.empty?
|
17
|
+
errors.push(base_url: "base_url is required")
|
18
|
+
elsif !(URI.parse base_url).is_a? URI::HTTP
|
19
|
+
errors.push(base_url: "base_url is not a valid URL")
|
20
|
+
elsif base_url.end_with?("/")
|
21
|
+
errors.push(base_url: "base_url should not end with a trailing slash")
|
22
|
+
end
|
23
|
+
errors
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -5,11 +5,11 @@ module PlausibleApi
|
|
5
5
|
class Aggregate < Base
|
6
6
|
|
7
7
|
def initialize(options = {})
|
8
|
-
super({ period: '30d',
|
8
|
+
super({ period: '30d',
|
9
9
|
metrics: 'visitors,visits,pageviews,views_per_visit,bounce_rate,visit_duration,events' }
|
10
10
|
.merge(options))
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def request_url_base
|
14
14
|
"/api/v1/stats/aggregate?site_id=$SITE_ID"
|
15
15
|
end
|
@@ -7,7 +7,7 @@ module PlausibleApi
|
|
7
7
|
def initialize(options = {})
|
8
8
|
super({ period: '30d', property: 'event:page' }.merge(options))
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def request_url_base
|
12
12
|
"/api/v1/stats/breakdown?site_id=$SITE_ID"
|
13
13
|
end
|
@@ -17,4 +17,4 @@ module PlausibleApi
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
20
|
-
end
|
20
|
+
end
|
@@ -7,7 +7,7 @@ module PlausibleApi
|
|
7
7
|
def initialize(options = {})
|
8
8
|
super({ period: '30d' }.merge(options))
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def request_url_base
|
12
12
|
"/api/v1/stats/timeseries?site_id=$SITE_ID"
|
13
13
|
end
|
@@ -17,4 +17,4 @@ module PlausibleApi
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
20
|
-
end
|
20
|
+
end
|
data/lib/plausible_api.rb
CHANGED
@@ -1,7 +1,20 @@
|
|
1
1
|
require "plausible_api/version"
|
2
2
|
require "plausible_api/client"
|
3
|
+
require "plausible_api/configuration"
|
3
4
|
|
4
5
|
module PlausibleApi
|
5
6
|
class Error < StandardError; end
|
7
|
+
|
8
|
+
class ConfigurationError < StandardError; end
|
9
|
+
|
6
10
|
# Your code goes here...
|
11
|
+
class << self
|
12
|
+
def configuration
|
13
|
+
@configuration ||= Configuration.new
|
14
|
+
end
|
15
|
+
|
16
|
+
def configure
|
17
|
+
yield(configuration)
|
18
|
+
end
|
19
|
+
end
|
7
20
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plausible_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.3'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gustavo Garcia
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A very humble wrapper for the new API by Plausible
|
14
14
|
email:
|
@@ -30,6 +30,7 @@ files:
|
|
30
30
|
- examples/event.rb
|
31
31
|
- lib/plausible_api.rb
|
32
32
|
- lib/plausible_api/client.rb
|
33
|
+
- lib/plausible_api/configuration.rb
|
33
34
|
- lib/plausible_api/event/base.rb
|
34
35
|
- lib/plausible_api/event/post.rb
|
35
36
|
- lib/plausible_api/stats/aggregate.rb
|