pirsch_api 0.0.1 → 0.0.2

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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +9 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +35 -3
  5. data/lib/pirsch_api/client.rb +45 -12
  6. data/lib/pirsch_api/error.rb +4 -0
  7. data/lib/pirsch_api/object.rb +19 -0
  8. data/lib/pirsch_api/objects/active.rb +4 -0
  9. data/lib/pirsch_api/objects/domain.rb +4 -0
  10. data/lib/pirsch_api/objects/event.rb +4 -0
  11. data/lib/pirsch_api/objects/growth.rb +4 -0
  12. data/lib/pirsch_api/objects/page.rb +4 -0
  13. data/lib/pirsch_api/objects/referrer.rb +4 -0
  14. data/lib/pirsch_api/objects/token.rb +4 -0
  15. data/lib/pirsch_api/objects/utm_campaign.rb +4 -0
  16. data/lib/pirsch_api/objects/utm_medium.rb +4 -0
  17. data/lib/pirsch_api/objects/utm_source.rb +4 -0
  18. data/lib/pirsch_api/objects/visitor.rb +4 -0
  19. data/lib/pirsch_api/resources/base.rb +57 -0
  20. data/lib/pirsch_api/resources/domain.rb +11 -0
  21. data/lib/pirsch_api/resources/statistics/active.rb +11 -0
  22. data/lib/pirsch_api/resources/statistics/event.rb +10 -0
  23. data/lib/pirsch_api/resources/statistics/growth.rb +11 -0
  24. data/lib/pirsch_api/resources/statistics/page.rb +11 -0
  25. data/lib/pirsch_api/resources/statistics/referrer.rb +11 -0
  26. data/lib/pirsch_api/resources/statistics/utm_campaign.rb +11 -0
  27. data/lib/pirsch_api/resources/statistics/utm_medium.rb +11 -0
  28. data/lib/pirsch_api/resources/statistics/utm_source.rb +11 -0
  29. data/lib/pirsch_api/resources/statistics/visitor.rb +11 -0
  30. data/lib/pirsch_api/{token.rb → resources/token.rb} +8 -6
  31. data/lib/pirsch_api/version.rb +1 -1
  32. data/lib/pirsch_api.rb +33 -2
  33. metadata +28 -6
  34. data/pkg/plausible_api-0.1.0.gem +0 -0
  35. data/pkg/plausible_api-0.1.7.gem +0 -0
  36. data/pkg/plausible_api-0.1.8.gem +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe170bae8684aadfe97a08ea60a306b3d04d049b993a463f957431479c5139b9
4
- data.tar.gz: 303cf49a7ddc8a1e85cf5566e6302b461828769e87cf627355371deba5a9c8a4
3
+ metadata.gz: f23f5623a3fd98b5f09a7190b83e86a9f8a7fe4f4403ba3da9387f2fe98cc3a1
4
+ data.tar.gz: 6137f3417cd67bffbe7be5d48fc5cfcd963d5b650f0998a1ce75da3c8547f285
5
5
  SHA512:
6
- metadata.gz: d203d84c0edea9a28b7d919ef1a6ad1f2fa6696d58fec2dff3bfe69c26ad47891a4d733f7299694483415a21cb492e22b6ca4815b59e0bcbc0f608df12677480
7
- data.tar.gz: eaf65a16668affd4db442b338a3eb63e612f8ac0430ee18ca89d879698aa74ca4bdd88b8b230a5dc955ab589c260bb7aeabb1980f66c69702036e2532196d930
6
+ metadata.gz: 0755236fcf745ccf413778bddb08e14c71330dddfbc1f1cb98991e29d708a1ec5d4a714516d452fc42d5cc032a662eb1ad1ff90fc4d74abd98ef40c0a3f1583b
7
+ data.tar.gz: 889498694ba2e82c6fae0fa31e48e21ce09ef538ee02c25112a8ff8388dfd142ce2b8ac2d534924909f2d99a27c790cab19ab55a15f4366c42682f6bb8f0b7eb
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ *.gem
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pirsch_api (0.0.1)
4
+ pirsch_api (0.0.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -9,14 +9,46 @@ gem 'pirsch_api'
9
9
  ```
10
10
  Then you need to initialize a Client with your `client_id` and the `client_secret`.
11
11
  ```rb
12
- c = PirschApi::Client.new('<client_id>', '<client_secret>')
12
+ c = PirschApi::Client.new(client_id: '<client_id>', client_secret: '<client_secret>')
13
13
 
14
14
  # Test if the credentials are valid
15
15
  c.valid?
16
16
  => true
17
17
 
18
- # Get a new Access Token
19
- c.token
18
+ # Get /domains
19
+ c.domains
20
+ => [#<PirschApi::Domain id="0D3a...", user_id="0D3a...", hostname="pirsch.io", subdomain="pirsch", ... >]
21
+ c.domains.first.hostname
22
+ => "pirsch.io"
23
+
24
+ # You will need one domain for all the following requests
25
+ d = c.domains.first
26
+
27
+ # All the following methods require a `domain` and can receive a `filters` hash
28
+
29
+ # Get /statistics/visitor
30
+ c.visitors(domain: d)
31
+ => [#<PirschApi::Visitor day="2021-08-30T00:00:00Z", visitors=87, views=200, sessions=125, bounces=53, bounce_rate=0.6091954022988506>, #<PirschApi::Visitor day="2021-08-31T00:00:00Z", visitors=77, views=159, sessions=113, bounces=49, bounce_rate=0.6363636363636364>, #<PirschApi::Visitor day="2021-09-01T00:00:00Z", visitors=76, views=161, sessions=110, bounces=48, bounce_rate=0.631578947368421>, #<PirschApi::Visitor day="2021-09-02T00:00:00Z", visitors=79, views=152, sessions=130, bounces=52, bounce_rate=0.6582278481012658>, #<PirschApi::Visitor day="2021-09-03T00:00:00Z", visitors=53, views=109, sessions=68, bounces=26, bounce_rate=0.49056603773584906>, #<PirschApi::Visitor day="2021-09-04T00:00:00Z", visitors=54, views=126, sessions=71, bounces=31, bounce_rate=0.5740740740740741>, #<PirschApi::Visitor day="2021-09-05T00:00:00Z", visitors=116, views=202, sessions=131, bounces=84, bounce_rate=0.7241379310344828>, #<PirschApi::Visitor day="2021-09-06T00:00:00Z", visitors=1, views=1, sessions=1, bounces=1, bounce_rate=1>]
32
+ c.visitors(domain: d, filters: { from: '2021-09-01' })
33
+ [#<PirschApi::Visitor day="2021-09-01T00:00:00Z", visitors=76, views=161, sessions=110, bounces=48, bounce_rate=0.631578947368421>, #<PirschApi::Visitor day="2021-09-02T00:00:00Z", visitors=79, views=152, sessions=130, bounces=52, bounce_rate=0.6582278481012658>, #<PirschApi::Visitor day="2021-09-03T00:00:00Z", visitors=53, views=109, sessions=68, bounces=26, bounce_rate=0.49056603773584906>, #<PirschApi::Visitor day="2021-09-04T00:00:00Z", visitors=54, views=126, sessions=71, bounces=31, bounce_rate=0.5740740740740741>, #<PirschApi::Visitor day="2021-09-05T00:00:00Z", visitors=116, views=202, sessions=131, bounces=84, bounce_rate=0.7241379310344828>, #<PirschApi::Visitor day="2021-09-06T00:00:00Z", visitors=1, views=1, sessions=1, bounces=1, bounce_rate=1>]
34
+ c.visitors(domain: d, filters: { from: '2021-09-01' }).first.day
35
+ => "2021-09-01T00:00:00Z"
36
+
37
+ # Get /statistics/active
38
+ c.active(domain: d)
39
+ => #<PirschApi::Active stats=nil, visitors=0>
40
+ c.active(domain: d).visitors
41
+ => 0
42
+
43
+ # Other available methods (Remember that they can all receive a `filters` hash)
44
+ c.pages(domain: d)
45
+ c.referrers(domain: d)
46
+ c.active(domain: d)
47
+ c.growth(domain: d)
48
+ c.events(domain: d)
49
+ c.utm_source(domain: d)
50
+ c.utm_medium(domain: d)
51
+ c.utm_campaign(domain: d)
20
52
  ```
21
53
 
22
54
 
@@ -1,28 +1,61 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pirsch_api/token'
4
-
5
- require 'json'
6
- require "net/http"
7
- require "uri"
8
- require "cgi"
9
-
10
3
  module PirschApi
11
4
  class Client
12
5
 
13
- BASE_URL = 'https://api.pirsch.io'
6
+ BASE_URL = 'https://api.pirsch.io/api/v1'
14
7
 
15
- def initialize(client_id, client_secret)
8
+ def initialize(client_id:, client_secret:)
16
9
  @client_id = client_id.to_s
17
10
  @client_secret = client_secret.to_s
18
11
  end
19
12
 
13
+ def valid?
14
+ true if token rescue false
15
+ end
16
+
20
17
  def token
21
- @token ||= PirschApi::Token.new(@client_id, @client_secret).run
18
+ @token ||= TokenResource.new(@client_id, @client_secret).run
22
19
  end
23
20
 
24
- def valid?
25
- true if token rescue false
21
+ def domains
22
+ DomainResource.new(client: self).run
23
+ end
24
+
25
+ def visitors(filters: {}, domain:)
26
+ VisitorResource.new(client: self, filters: filters, domain: domain).run
27
+ end
28
+
29
+ def pages(filters: {}, domain:)
30
+ PageResource.new(client: self, filters: filters, domain: domain).run
31
+ end
32
+
33
+ def referrers(filters: {}, domain:)
34
+ ReferrerResource.new(client: self, filters: filters, domain: domain).run
35
+ end
36
+
37
+ def active(filters: {}, domain:)
38
+ ActiveResource.new(client: self, filters: filters, domain: domain).run
39
+ end
40
+
41
+ def growth(filters: {}, domain:)
42
+ GrowthResource.new(client: self, filters: filters, domain: domain).run
43
+ end
44
+
45
+ def events(filters: {}, domain:)
46
+ EventResource.new(client: self, filters: filters, domain: domain).run
47
+ end
48
+
49
+ def utm_source(filters: {}, domain:)
50
+ UtmSourceResource.new(client: self, filters: filters, domain: domain).run
51
+ end
52
+
53
+ def utm_medium(filters: {}, domain:)
54
+ UtmMediumResource.new(client: self, filters: filters, domain: domain).run
55
+ end
56
+
57
+ def utm_campaign(filters: {}, domain:)
58
+ UtmCampaignResource.new(client: self, filters: filters, domain: domain).run
26
59
  end
27
60
  end
28
61
  end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class Error < StandardError
3
+ end
4
+ end
@@ -0,0 +1,19 @@
1
+ require "ostruct"
2
+
3
+ module PirschApi
4
+ class Object < OpenStruct
5
+ def initialize(attributes)
6
+ super to_ostruct(attributes)
7
+ end
8
+
9
+ def to_ostruct(obj)
10
+ if obj.is_a?(Hash)
11
+ OpenStruct.new(obj.map { |key, val| [key, to_ostruct(val)] }.to_h)
12
+ elsif obj.is_a?(Array)
13
+ obj.map { |o| to_ostruct(o) }
14
+ else # Assumed to be a primitive value
15
+ obj
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class Active < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class Domain < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class Event < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class Growth < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class Page < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class Referrer < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class Token < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class UtmCampaign < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class UtmMedium < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class UtmSource < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module PirschApi
2
+ class Visitor < Object
3
+ end
4
+ end
@@ -0,0 +1,57 @@
1
+ module PirschApi
2
+ class BaseResource
3
+
4
+ attr_accessor :client, :filters, :domain
5
+
6
+ def initialize(client:, domain: nil, filters: {})
7
+ @client = client
8
+ @filters = filters
9
+ @domain = domain
10
+ @errors = []
11
+ end
12
+
13
+ def request_url
14
+ raise NotImplementedError
15
+ end
16
+
17
+ def parse_response(body)
18
+ raise NotImplementedError
19
+ end
20
+
21
+ def errors
22
+ @errors[:client] = 'client is invalid' unless client.valid?
23
+ @errors
24
+ end
25
+
26
+ def valid?
27
+ errors.empty?
28
+ end
29
+
30
+ def run
31
+ raise PirschApi::Error.new errors unless valid?
32
+
33
+ if domain
34
+ filters[:id] = domain.id
35
+ end
36
+
37
+ url = "#{PirschApi::Client::BASE_URL}/#{request_url}"
38
+ url << "?#{filters.to_a.map { |x| "#{x[0]}=#{x[1]}" }.join("&") }" if filters.any?
39
+
40
+ puts "[Pirsch API] run #{url}"
41
+
42
+ uri = URI.parse url
43
+
44
+ req = Net::HTTP::Get.new(uri.request_uri)
45
+ req.add_field('Authorization', "Bearer #{client.token.access_token}")
46
+
47
+ http = Net::HTTP.new(uri.host, uri.port)
48
+ http.use_ssl = true
49
+
50
+ response = http.request(req)
51
+ raise PirschApi::Error.new "Api request failed (#{response.body})" unless response.code == "200"
52
+ raise PirschApi::Error.new "Api request returned nil (#{response.body})" if response.body.nil?
53
+
54
+ parse_response response.body
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,11 @@
1
+ module PirschApi
2
+ class DomainResource < BaseResource
3
+ def request_url
4
+ "domain"
5
+ end
6
+
7
+ def parse_response(body)
8
+ JSON.parse(body).map{ |o| Domain.new o }
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module PirschApi
2
+ class ActiveResource < BaseResource
3
+ def request_url
4
+ "statistics/active"
5
+ end
6
+
7
+ def parse_response(body)
8
+ Active.new JSON.parse(body)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ module PirschApi
2
+ class EventResource < BaseResource
3
+ def request_url
4
+ "statistics/events"
5
+ end
6
+ def parse_response(body)
7
+ JSON.parse(body).map{ |o| Event.new o }
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module PirschApi
2
+ class GrowthResource < BaseResource
3
+ def request_url
4
+ "statistics/growth"
5
+ end
6
+
7
+ def parse_response(body)
8
+ Growth.new JSON.parse(body)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module PirschApi
2
+ class PageResource < BaseResource
3
+ def request_url
4
+ "statistics/page"
5
+ end
6
+
7
+ def parse_response(body)
8
+ JSON.parse(body).map{ |o| Page.new o }
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module PirschApi
2
+ class ReferrerResource < BaseResource
3
+ def request_url
4
+ "statistics/referrer"
5
+ end
6
+
7
+ def parse_response(body)
8
+ JSON.parse(body).map{ |o| Referrer.new o }
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module PirschApi
2
+ class UtmCampaignResource < BaseResource
3
+ def request_url
4
+ "statistics/utm/campaign"
5
+ end
6
+
7
+ def parse_response(body)
8
+ JSON.parse(body).map{ |o| UtmCampaign.new o }
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module PirschApi
2
+ class UtmMediumResource < BaseResource
3
+ def request_url
4
+ "statistics/utm/medium"
5
+ end
6
+
7
+ def parse_response(body)
8
+ JSON.parse(body).map{ |o| UtmMedium.new o }
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module PirschApi
2
+ class UtmSourceResource < BaseResource
3
+ def request_url
4
+ "statistics/utm/source"
5
+ end
6
+
7
+ def parse_response(body)
8
+ JSON.parse(body).map{ |o| UtmSource.new o }
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module PirschApi
2
+ class VisitorResource < BaseResource
3
+ def request_url
4
+ "statistics/visitor"
5
+ end
6
+
7
+ def parse_response(body)
8
+ JSON.parse(body).map{ |o| Visitor.new o }
9
+ end
10
+ end
11
+ end
@@ -1,6 +1,6 @@
1
1
  module PirschApi
2
2
 
3
- class Token
3
+ class TokenResource
4
4
 
5
5
  def initialize(client_id, client_secret)
6
6
  @client_id = client_id
@@ -8,7 +8,7 @@ module PirschApi
8
8
  end
9
9
 
10
10
  def request_url
11
- "https://api.pirsch.io/api/v1/token"
11
+ "token"
12
12
  end
13
13
 
14
14
  def request_body
@@ -19,12 +19,13 @@ module PirschApi
19
19
  end
20
20
 
21
21
  def parse_response(body)
22
- JSON.parse(body)['access_token']
22
+ puts "[Pirsch API] Token received"
23
+ Token.new JSON.parse(body)
23
24
  end
24
25
 
25
26
  def run
26
- uri = URI.parse request_url
27
-
27
+ uri = URI.parse "#{PirschApi::Client::BASE_URL}/#{request_url}"
28
+ puts "[Pirsch API] Requesting Token..."
28
29
  http = Net::HTTP.new(uri.host, uri.port)
29
30
  http.use_ssl = true
30
31
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
@@ -34,7 +35,8 @@ module PirschApi
34
35
  request.body = request_body
35
36
 
36
37
  response = http.request(request)
37
- raise PirschApi::Error.new "Token request failed. (#{response.body})" unless response.code == "200"
38
+
39
+ raise Error.new "Token request failed. (#{response.body})" unless response.code == "200"
38
40
 
39
41
  parse_response(response.body)
40
42
  end
@@ -1,3 +1,3 @@
1
1
  module PirschApi
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/pirsch_api.rb CHANGED
@@ -1,6 +1,37 @@
1
+ require 'json'
2
+ require "net/http"
3
+ require "uri"
4
+ require "cgi"
5
+
1
6
  require 'pirsch_api/version'
2
- require 'pirsch_api/client'
3
7
 
4
8
  module PirschApi
5
- class Error < StandardError; end
9
+ autoload :Client, "pirsch_api/client"
10
+ autoload :Error, "pirsch_api/error"
11
+
12
+ autoload :BaseResource, "pirsch_api/resources/base"
13
+ autoload :TokenResource, "pirsch_api/resources/token"
14
+ autoload :DomainResource, "pirsch_api/resources/domain"
15
+ autoload :VisitorResource, "pirsch_api/resources/statistics/visitor"
16
+ autoload :PageResource, "pirsch_api/resources/statistics/page"
17
+ autoload :ReferrerResource, "pirsch_api/resources/statistics/referrer"
18
+ autoload :ActiveResource, "pirsch_api/resources/statistics/active"
19
+ autoload :GrowthResource, "pirsch_api/resources/statistics/growth"
20
+ autoload :EventResource, "pirsch_api/resources/statistics/event"
21
+ autoload :UtmSourceResource, "pirsch_api/resources/statistics/utm_source"
22
+ autoload :UtmCampaignResource, "pirsch_api/resources/statistics/utm_campaign"
23
+ autoload :UtmMediumResource, "pirsch_api/resources/statistics/utm_medium"
24
+
25
+ autoload :Object, "pirsch_api/object"
26
+ autoload :Token, "pirsch_api/objects/token"
27
+ autoload :Domain, "pirsch_api/objects/domain"
28
+ autoload :Visitor, "pirsch_api/objects/visitor"
29
+ autoload :Page, "pirsch_api/objects/page"
30
+ autoload :Referrer, "pirsch_api/objects/referrer"
31
+ autoload :Active, "pirsch_api/objects/active"
32
+ autoload :Growth, "pirsch_api/objects/growth"
33
+ autoload :Event, "pirsch_api/objects/event"
34
+ autoload :UtmSource, "pirsch_api/objects/utm_source"
35
+ autoload :UtmCampaign, "pirsch_api/objects/utm_campaign"
36
+ autoload :UtmMedium, "pirsch_api/objects/utm_medium"
6
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pirsch_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gustavo Garcia
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-04 00:00:00.000000000 Z
11
+ date: 2021-09-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A very humble wrapper for the API by Pirsch.io
14
14
  email:
@@ -17,6 +17,7 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - ".gitignore"
20
21
  - CODE_OF_CONDUCT.md
21
22
  - Gemfile
22
23
  - Gemfile.lock
@@ -27,12 +28,33 @@ files:
27
28
  - bin/setup
28
29
  - lib/pirsch_api.rb
29
30
  - lib/pirsch_api/client.rb
30
- - lib/pirsch_api/token.rb
31
+ - lib/pirsch_api/error.rb
32
+ - lib/pirsch_api/object.rb
33
+ - lib/pirsch_api/objects/active.rb
34
+ - lib/pirsch_api/objects/domain.rb
35
+ - lib/pirsch_api/objects/event.rb
36
+ - lib/pirsch_api/objects/growth.rb
37
+ - lib/pirsch_api/objects/page.rb
38
+ - lib/pirsch_api/objects/referrer.rb
39
+ - lib/pirsch_api/objects/token.rb
40
+ - lib/pirsch_api/objects/utm_campaign.rb
41
+ - lib/pirsch_api/objects/utm_medium.rb
42
+ - lib/pirsch_api/objects/utm_source.rb
43
+ - lib/pirsch_api/objects/visitor.rb
44
+ - lib/pirsch_api/resources/base.rb
45
+ - lib/pirsch_api/resources/domain.rb
46
+ - lib/pirsch_api/resources/statistics/active.rb
47
+ - lib/pirsch_api/resources/statistics/event.rb
48
+ - lib/pirsch_api/resources/statistics/growth.rb
49
+ - lib/pirsch_api/resources/statistics/page.rb
50
+ - lib/pirsch_api/resources/statistics/referrer.rb
51
+ - lib/pirsch_api/resources/statistics/utm_campaign.rb
52
+ - lib/pirsch_api/resources/statistics/utm_medium.rb
53
+ - lib/pirsch_api/resources/statistics/utm_source.rb
54
+ - lib/pirsch_api/resources/statistics/visitor.rb
55
+ - lib/pirsch_api/resources/token.rb
31
56
  - lib/pirsch_api/version.rb
32
57
  - pirsch_api.gemspec
33
- - pkg/plausible_api-0.1.0.gem
34
- - pkg/plausible_api-0.1.7.gem
35
- - pkg/plausible_api-0.1.8.gem
36
58
  homepage: https://github.com/dailytics/pirsch_api
37
59
  licenses:
38
60
  - MIT
Binary file
Binary file
Binary file