matey 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
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