matey 0.1.1 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.devcontainer/devcontainer.json +1 -1
- data/CHANGELOG.md +1 -1
- data/COLOR_SCHEMES.md +24 -0
- data/COMPONENTS.md +75 -0
- data/Gemfile +2 -13
- data/Gemfile.lock +148 -143
- data/README.md +53 -100
- data/app/components/matey/active_users_component.html.erb +2 -2
- data/app/components/matey/active_users_component.rb +5 -3
- data/app/components/{application_component.rb → matey/application_component.rb} +3 -1
- data/app/components/matey/bounce_rate_component.html.erb +35 -0
- data/app/components/matey/bounce_rate_component.rb +24 -0
- data/app/components/matey/browser_os_breakdown_component.html.erb +38 -0
- data/app/components/matey/browser_os_breakdown_component.rb +11 -0
- data/app/components/matey/daily_active_users_component.html.erb +15 -0
- data/app/components/matey/daily_active_users_component.rb +11 -0
- data/app/components/matey/new_activity_component.html.erb +2 -2
- data/app/components/matey/new_activity_component.rb +5 -3
- data/app/components/matey/new_users_component.html.erb +2 -2
- data/app/components/matey/new_users_component.rb +5 -3
- data/app/components/matey/top_events_component.html.erb +2 -2
- data/app/components/matey/top_events_component.rb +4 -2
- data/app/components/matey/top_visited_pages_table_component.html.erb +2 -2
- data/app/components/matey/top_visited_pages_table_component.rb +4 -2
- data/app/components/matey/user_engagement_component.html.erb +27 -0
- data/app/components/matey/user_engagement_component.rb +12 -0
- data/app/components/matey/visits_by_day_of_week_component.html.erb +26 -0
- data/app/components/matey/visits_by_day_of_week_component.rb +24 -0
- data/docs/CONTRIBUTING.md +22 -0
- data/images/bounceRateComponent.png +0 -0
- data/images/colorSchemeBlue.png +0 -0
- data/images/colorSchemeNeutral.png +0 -0
- data/lib/helpers.rb +12 -0
- data/lib/matey/version.rb +1 -1
- data/lib/matey.rb +7 -2
- data/matey.gemspec +12 -5
- metadata +54 -12
@@ -0,0 +1,24 @@
|
|
1
|
+
require "ahoy_matey"
|
2
|
+
|
3
|
+
class Matey::VisitsByDayOfWeekComponent < Matey::ApplicationComponent
|
4
|
+
def initialize(visits:, time_window: 1.month, limit: 10, exclude_days: [], color_scheme: "neutral")
|
5
|
+
@time_window = time_window
|
6
|
+
|
7
|
+
# query for all the visits
|
8
|
+
all_visits = visits.where(started_at: time_window.ago..)
|
9
|
+
|
10
|
+
visits_by_day_of_week = {}
|
11
|
+
|
12
|
+
# get day of week from each visit. Incrase value of dayOfWeek key by 1 if key is already there else initialize key with value of 1
|
13
|
+
all_visits.each { |visit| visits_by_day_of_week.key?(visit.started_at.strftime("%A")) ? visits_by_day_of_week[(visit.started_at.strftime("%A"))] += 1 : visits_by_day_of_week[visit.started_at.strftime("%A")] = 1 }
|
14
|
+
|
15
|
+
# take out items from visits_by_day_of_week hashmap based on exclude_days parameter
|
16
|
+
if exclude_days.length > 0
|
17
|
+
exclude_days.each { |exclude| visits_by_day_of_week = visits_by_day_of_week.slice!(exclude) }
|
18
|
+
end
|
19
|
+
|
20
|
+
@visits_by_day_of_week = visits_by_day_of_week
|
21
|
+
|
22
|
+
@color_scheme = color_scheme(scheme: color_scheme)
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
## Welcome to Matey's Contribution Guidelines
|
2
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/harled/matey.
|
3
|
+
This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct.](https://github.com/harled/matey/blob/master/CODE_OF_CONDUCT.md)
|
4
|
+
|
5
|
+
### For New Contributors:
|
6
|
+
Be sure to take a look at the [README](https://github.com/harled/matey/blob/main/README.md) to get a sense of what Matey does and how it works
|
7
|
+
|
8
|
+
### Contribution Steps:
|
9
|
+
Want to help us out? Here are some steps to make sure you are contributing according to our guidelines.
|
10
|
+
|
11
|
+
1. Find an issue you like, or create a new issue [here.](https://github.com/harled/matey/issues)
|
12
|
+
|
13
|
+
Please ask if you have any questions or need clarification on creating a new issue, or related to any existing issue! 🤔
|
14
|
+
|
15
|
+
2. Assign yourself to the issue and create a branch , following GitHub Issue's naming scheme. 🛠️
|
16
|
+
The naming scheme should follow `(#issueNumber-issue-name)` ie. `(#10-create-new-component)`
|
17
|
+
|
18
|
+
3. Get on your local machine and [ensure you have the repo cloned.](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) Checkout the branch you just made with `git checkout branch-name` and pull the latest merged changes from the repo with `git pull origin main` to make sure you have the most up-to-date code from the repo. 👩💻
|
19
|
+
4. Add your amazing changes along with any documentation you feel would be useful (ie. Update the README if necessary). Then commit and push your changes. 🌟
|
20
|
+
5. Go back to the repo on GitHub and create a pull request! Then wait for an admin of the repo to get back to your pull request, address any comments, and once you are finally approved, merge your code into _Matey!_ 🎉
|
21
|
+
|
22
|
+
If you want some more tips on contributing to GitHub projects, [check out this resource from Data School](https://www.dataschool.io/how-to-contribute-on-github/)
|
Binary file
|
Binary file
|
Binary file
|
data/lib/helpers.rb
ADDED
data/lib/matey/version.rb
CHANGED
data/lib/matey.rb
CHANGED
@@ -2,12 +2,17 @@
|
|
2
2
|
|
3
3
|
require_relative "matey/version"
|
4
4
|
|
5
|
-
require_relative "../app/components/application_component"
|
5
|
+
require_relative "../app/components/matey/application_component"
|
6
6
|
require_relative "../app/components/matey/active_users_component"
|
7
|
+
require_relative "../app/components/matey/bounce_rate_component"
|
8
|
+
require_relative "../app/components/matey/new_activity_component"
|
7
9
|
require_relative "../app/components/matey/new_users_component"
|
8
10
|
require_relative "../app/components/matey/top_events_component"
|
9
|
-
require_relative "../app/components/matey/new_activity_component"
|
10
11
|
require_relative "../app/components/matey/top_visited_pages_table_component"
|
12
|
+
require_relative "../app/components/matey/user_engagement_component"
|
13
|
+
require_relative "../app/components/matey/daily_active_users_component"
|
14
|
+
require_relative "../app/components/matey/visits_by_day_of_week_component"
|
15
|
+
require_relative "../app/components/matey/browser_os_breakdown_component"
|
11
16
|
|
12
17
|
module Matey
|
13
18
|
class Error < StandardError; end
|
data/matey.gemspec
CHANGED
@@ -3,11 +3,16 @@ require_relative "lib/matey/version"
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "matey"
|
5
5
|
spec.version = Matey::VERSION
|
6
|
-
|
7
|
-
|
6
|
+
|
7
|
+
# Former authors include:
|
8
|
+
# Suvasan Krishnasamy / suvasan@harled.ca
|
9
|
+
# Caitlin Henry / caitlin@harled.ca
|
10
|
+
|
11
|
+
spec.authors = ["Jon Loos", "Chris Young"]
|
12
|
+
spec.email = ["jon@harled.ca", "chris@harled.ca"]
|
8
13
|
|
9
14
|
spec.summary = "Track user engagement using Ahoy and ViewComponents."
|
10
|
-
spec.description = "ViewComponents that helpful in viewing user engagement metrics from Ahoy."
|
15
|
+
spec.description = "ViewComponents that are helpful in viewing user engagement metrics from Ahoy."
|
11
16
|
spec.homepage = "https://github.com/harled/matey"
|
12
17
|
spec.license = "MIT"
|
13
18
|
spec.required_ruby_version = ">= 2.6.0"
|
@@ -29,14 +34,16 @@ Gem::Specification.new do |spec|
|
|
29
34
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
30
35
|
spec.require_paths = ["lib"]
|
31
36
|
|
32
|
-
spec.add_dependency "view_component", "~> 2.
|
37
|
+
spec.add_dependency "view_component", "~> 2.74"
|
33
38
|
spec.add_dependency "ahoy_matey", "~> 4.0"
|
34
39
|
|
35
40
|
spec.add_development_dependency "rspec-rails", "~> 5.0"
|
36
|
-
spec.add_development_dependency "
|
41
|
+
spec.add_development_dependency "factory_bot_rails", "~> 6.0"
|
37
42
|
spec.add_development_dependency "sprockets-rails", "~> 3.2.2"
|
38
43
|
spec.add_development_dependency "sqlite3", "~> 1.0"
|
39
44
|
spec.add_development_dependency "debug", "~> 1.0"
|
45
|
+
spec.add_development_dependency "standard", "~> 1.3"
|
46
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
40
47
|
|
41
48
|
# For more information and examples about making a new gem, check out our
|
42
49
|
# guide at: https://bundler.io/guides/creating_gem.html
|
metadata
CHANGED
@@ -1,17 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: matey
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Suvasan Krishnasamy
|
8
7
|
- Jon Loos
|
9
|
-
- Caitlin Henry
|
10
8
|
- Chris Young
|
11
9
|
autorequire:
|
12
10
|
bindir: exe
|
13
11
|
cert_chain: []
|
14
|
-
date:
|
12
|
+
date: 2023-06-21 00:00:00.000000000 Z
|
15
13
|
dependencies:
|
16
14
|
- !ruby/object:Gem::Dependency
|
17
15
|
name: view_component
|
@@ -19,14 +17,14 @@ dependencies:
|
|
19
17
|
requirements:
|
20
18
|
- - "~>"
|
21
19
|
- !ruby/object:Gem::Version
|
22
|
-
version: '2.
|
20
|
+
version: '2.74'
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
24
|
requirements:
|
27
25
|
- - "~>"
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
version: '2.
|
27
|
+
version: '2.74'
|
30
28
|
- !ruby/object:Gem::Dependency
|
31
29
|
name: ahoy_matey
|
32
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,7 +54,7 @@ dependencies:
|
|
56
54
|
- !ruby/object:Gem::Version
|
57
55
|
version: '5.0'
|
58
56
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
57
|
+
name: factory_bot_rails
|
60
58
|
requirement: !ruby/object:Gem::Requirement
|
61
59
|
requirements:
|
62
60
|
- - "~>"
|
@@ -111,11 +109,38 @@ dependencies:
|
|
111
109
|
- - "~>"
|
112
110
|
- !ruby/object:Gem::Version
|
113
111
|
version: '1.0'
|
114
|
-
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: standard
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '1.3'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '1.3'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rake
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '13.0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '13.0'
|
140
|
+
description: ViewComponents that are helpful in viewing user engagement metrics from
|
141
|
+
Ahoy.
|
115
142
|
email:
|
116
|
-
- suvasan@harled.ca
|
117
143
|
- jon@harled.ca
|
118
|
-
- caitlin@harled.ca
|
119
144
|
- chris@harled.ca
|
120
145
|
executables: []
|
121
146
|
extensions: []
|
@@ -128,14 +153,22 @@ files:
|
|
128
153
|
- ".standard.yml"
|
129
154
|
- CHANGELOG.md
|
130
155
|
- CODE_OF_CONDUCT.md
|
156
|
+
- COLOR_SCHEMES.md
|
157
|
+
- COMPONENTS.md
|
131
158
|
- Gemfile
|
132
159
|
- Gemfile.lock
|
133
160
|
- LICENSE.txt
|
134
161
|
- README.md
|
135
162
|
- Rakefile
|
136
|
-
- app/components/application_component.rb
|
137
163
|
- app/components/matey/active_users_component.html.erb
|
138
164
|
- app/components/matey/active_users_component.rb
|
165
|
+
- app/components/matey/application_component.rb
|
166
|
+
- app/components/matey/bounce_rate_component.html.erb
|
167
|
+
- app/components/matey/bounce_rate_component.rb
|
168
|
+
- app/components/matey/browser_os_breakdown_component.html.erb
|
169
|
+
- app/components/matey/browser_os_breakdown_component.rb
|
170
|
+
- app/components/matey/daily_active_users_component.html.erb
|
171
|
+
- app/components/matey/daily_active_users_component.rb
|
139
172
|
- app/components/matey/new_activity_component.html.erb
|
140
173
|
- app/components/matey/new_activity_component.rb
|
141
174
|
- app/components/matey/new_users_component.html.erb
|
@@ -144,12 +177,21 @@ files:
|
|
144
177
|
- app/components/matey/top_events_component.rb
|
145
178
|
- app/components/matey/top_visited_pages_table_component.html.erb
|
146
179
|
- app/components/matey/top_visited_pages_table_component.rb
|
180
|
+
- app/components/matey/user_engagement_component.html.erb
|
181
|
+
- app/components/matey/user_engagement_component.rb
|
182
|
+
- app/components/matey/visits_by_day_of_week_component.html.erb
|
183
|
+
- app/components/matey/visits_by_day_of_week_component.rb
|
184
|
+
- docs/CONTRIBUTING.md
|
147
185
|
- images/.DS_Store
|
148
186
|
- images/activeUsersComponent.png
|
187
|
+
- images/bounceRateComponent.png
|
188
|
+
- images/colorSchemeBlue.png
|
189
|
+
- images/colorSchemeNeutral.png
|
149
190
|
- images/newActivityComponent.png
|
150
191
|
- images/newUsersComponent.png
|
151
192
|
- images/topEventsComponent.png
|
152
193
|
- images/topVisitedPages.png
|
194
|
+
- lib/helpers.rb
|
153
195
|
- lib/matey.rb
|
154
196
|
- lib/matey/version.rb
|
155
197
|
- matey.gemspec
|
@@ -176,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
218
|
- !ruby/object:Gem::Version
|
177
219
|
version: '0'
|
178
220
|
requirements: []
|
179
|
-
rubygems_version: 3.
|
221
|
+
rubygems_version: 3.4.10
|
180
222
|
signing_key:
|
181
223
|
specification_version: 4
|
182
224
|
summary: Track user engagement using Ahoy and ViewComponents.
|