matey 0.1.4 → 0.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12a21ea4053dc459c4b23e8e3d2aba0f1214929392c281d40d7055e5a4de26e0
4
- data.tar.gz: c2784dda2825209d14dfe8ee9bac7963236caf786a440d980ca1c40d66fcd3e2
3
+ metadata.gz: 81ed3e6b62f68768a94051796aa20b432002bc811d841b546e7632952816437e
4
+ data.tar.gz: 99e0970e24a51e1d6b438a8111591dc4c836d336a17e35089b98fba789c7687e
5
5
  SHA512:
6
- metadata.gz: 02a283bbedef06f95cdbdfe30b00c803b35bd0e94f163921166eb82ab3cd53273fe3ac91776c0596d06c83f7c70a19687cd8611e183bb601bbb23811bdb60e57
7
- data.tar.gz: b4488783a6edbf40c39b1eea8e181a7bad5788eb7246586f44a81a4f4dbdd88e3b9988be3de78b2b37806981422eff0e3a45510a7b2f8835fcf2b8639ac6e161
6
+ metadata.gz: 84b86437df09f3ffa853dbda7da8f21adb36de0c68695855ca1b24330d61ec156002d1295aed604f4fcbb9fee131bcc9cee1d0a168622d92cfc8a5ed1e8853ab
7
+ data.tar.gz: 4739f02fea2fe779525a2ff14c0ed83cfde865e4f4d91a4f7757100eaeddf5764d145ec5e9ce1922aa26409128e2f284ce647f07057fd9bac560d7ef93e6d7d7
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- matey (0.1.4)
4
+ matey (0.1.5)
5
5
  ahoy_matey (~> 4.0)
6
+ groupdate (~> 6.4.0)
6
7
  view_component (~> 2.74)
7
8
 
8
9
  GEM
@@ -95,6 +96,8 @@ GEM
95
96
  railties (>= 5.0.0)
96
97
  globalid (1.1.0)
97
98
  activesupport (>= 5.0)
99
+ groupdate (6.4.0)
100
+ activesupport (>= 6.1)
98
101
  i18n (1.14.1)
99
102
  concurrent-ruby (~> 1.0)
100
103
  io-console (0.6.0)
@@ -1,8 +1,8 @@
1
1
  <div class="card <%= @color_scheme %>">
2
2
  <div class="card-header">
3
3
  <h5>Visits By Day of Week since <%= time_ago_in_words(@time_window.ago).titleize %> Ago (<%= @time_window.ago.strftime("%m/%d/%Y") %>) </h5>
4
- <% if @exclude_days %>
5
- <p>Excluding <%= @exclude_days%>
4
+ <% if @exclude_days.any? %>
5
+ <p>Excluding <%= @exclude_days.join(', ') %></p>
6
6
  <% end %>
7
7
  </div>
8
8
  <div class="card-body">
@@ -14,7 +14,7 @@
14
14
  </tr>
15
15
  </thead>
16
16
  <tbody class="text-dark border-dark">
17
- <% @visits_by_day_of_week.each do |day_of_week, count| %>
17
+ <% visits_by_day_of_week.each do |day_of_week, count| %>
18
18
  <tr>
19
19
  <td><%= day_of_week %></td>
20
20
  <td class="text-end"><%= count %></td>
@@ -1,24 +1,17 @@
1
1
  require "ahoy_matey"
2
+ require "groupdate"
2
3
 
3
4
  class Matey::VisitsByDayOfWeekComponent < Matey::ApplicationComponent
4
- def initialize(visits:, time_window: 1.month, limit: 10, exclude_days: [], color_scheme: "neutral")
5
+ def initialize(visits:, time_window: 1.month, exclude_days: [], color_scheme: "neutral")
6
+ @visits = visits
5
7
  @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
-
8
+ @exclude_days = exclude_days
22
9
  @color_scheme = color_scheme(scheme: color_scheme)
23
10
  end
11
+
12
+ # group visits by day in provided time window
13
+ def visits_by_day_of_week
14
+ visits_by_day_of_week = @visits.group_by_day_of_week(:started_at, format: "%A", range: @time_window.ago..).count
15
+ visits_by_day_of_week.except!(*@exclude_days) if @exclude_days.any?
16
+ end
24
17
  end
data/lib/matey/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Matey
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.5"
5
5
  end
data/matey.gemspec CHANGED
@@ -36,6 +36,7 @@ Gem::Specification.new do |spec|
36
36
 
37
37
  spec.add_dependency "view_component", "~> 2.74"
38
38
  spec.add_dependency "ahoy_matey", "~> 4.0"
39
+ spec.add_dependency "groupdate", "~> 6.4.0"
39
40
 
40
41
  spec.add_development_dependency "rspec-rails", "~> 5.0"
41
42
  spec.add_development_dependency "factory_bot_rails", "~> 6.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: matey
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Loos
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-06-21 00:00:00.000000000 Z
12
+ date: 2023-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: view_component
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '4.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: groupdate
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 6.4.0
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 6.4.0
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: rspec-rails
44
58
  requirement: !ruby/object:Gem::Requirement