rails_event_viewer 0.1.0 → 0.1.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 (30) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +59 -374
  4. data/app/assets/javascripts/rails_event_viewer/application.js +28 -0
  5. data/app/assets/javascripts/rails_event_viewer/chart.umd.min.js +19 -0
  6. data/app/assets/javascripts/rails_event_viewer/chartjs-adapter-date-fns.bundle.min.js +7 -0
  7. data/app/assets/javascripts/rails_event_viewer/chartkick.min.js +2 -0
  8. data/app/assets/stylesheets/rails_event_viewer/application.css +1 -32
  9. data/app/assets/stylesheets/rails_event_viewer/tailwind.css +19 -44
  10. data/app/controllers/rails_event_viewer/application_controller.rb +3 -9
  11. data/app/controllers/rails_event_viewer/event_types_controller.rb +2 -2
  12. data/app/controllers/rails_event_viewer/events_controller.rb +2 -2
  13. data/app/controllers/rails_event_viewer/groups_controller.rb +2 -2
  14. data/app/helpers/rails_event_viewer/application_helper.rb +4 -0
  15. data/app/models/rails_event_viewer/page.rb +35 -0
  16. data/app/views/layouts/rails_event_viewer/application.html.erb +5 -9
  17. data/app/views/rails_event_viewer/analytics/overview.html.erb +3 -3
  18. data/app/views/rails_event_viewer/dashboard/index.html.erb +3 -3
  19. data/app/views/rails_event_viewer/event_types/show.html.erb +3 -3
  20. data/app/views/rails_event_viewer/events/_event_row.html.erb +1 -1
  21. data/app/views/rails_event_viewer/events/index.html.erb +2 -2
  22. data/app/views/rails_event_viewer/events/show.html.erb +1 -1
  23. data/app/views/rails_event_viewer/groups/show.html.erb +1 -1
  24. data/app/views/rails_event_viewer/shared/_pagination.html.erb +13 -13
  25. data/config/routes.rb +2 -2
  26. data/lib/rails_event_viewer/engine.rb +7 -2
  27. data/lib/rails_event_viewer/version.rb +1 -1
  28. data/lib/rails_event_viewer.rb +0 -2
  29. metadata +7 -17
  30. data/lib/rails_event_viewer/pagy_countable.rb +0 -31
@@ -11,7 +11,7 @@
11
11
  <% end %>
12
12
  </h1>
13
13
  <div class="text-sm text-gray-500">
14
- <%= @pagy.count %> total events
14
+ <%= @pagination.count %> total events
15
15
  </div>
16
16
  </div>
17
17
 
@@ -43,7 +43,7 @@
43
43
  </table>
44
44
  </div>
45
45
 
46
- <%= render "rails_event_viewer/shared/pagination", pagy: @pagy %>
46
+ <%= render "rails_event_viewer/shared/pagination", pagination: @pagination %>
47
47
  <% else %>
48
48
  <div class="px-6 py-12 text-center text-gray-500">
49
49
  <svg class="mx-auto h-12 w-12 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
@@ -22,7 +22,7 @@
22
22
  <div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
23
23
  <h3 class="text-lg font-medium text-gray-900">Payload</h3>
24
24
  <button type="button"
25
- onclick="navigator.clipboard.writeText('<%= j event_payload(@event).to_json %>'); this.textContent='Copied!'; setTimeout(() => this.textContent='Copy', 1500)"
25
+ data-event-viewer-copy="<%= event_payload(@event).to_json %>"
26
26
  class="text-indigo-600 hover:text-indigo-500 text-sm font-medium">
27
27
  Copy
28
28
  </button>
@@ -124,7 +124,7 @@
124
124
  </div>
125
125
  </div>
126
126
 
127
- <%= render "rails_event_viewer/shared/pagination", pagy: @pagy %>
127
+ <%= render "rails_event_viewer/shared/pagination", pagination: @pagination %>
128
128
  <% else %>
129
129
  <div class="px-6 py-12 text-center text-gray-500">
130
130
  No events found in this group.
@@ -1,20 +1,20 @@
1
- <% if pagy.pages > 1 %>
1
+ <% if pagination.pages > 1 %>
2
2
  <div class="bg-white px-4 py-3 flex items-center justify-between border-t border-gray-200 sm:px-6">
3
3
  <div class="flex-1 flex items-center justify-between">
4
4
  <div>
5
5
  <p class="text-sm text-gray-700">
6
6
  Showing
7
- <span class="font-medium"><%= pagy.from %></span>
7
+ <span class="font-medium"><%= pagination.from %></span>
8
8
  to
9
- <span class="font-medium"><%= pagy.to %></span>
9
+ <span class="font-medium"><%= pagination.to %></span>
10
10
  of
11
- <span class="font-medium"><%= pagy.count %></span>
11
+ <span class="font-medium"><%= pagination.count %></span>
12
12
  results
13
13
  </p>
14
14
  </div>
15
15
  <nav class="flex items-center space-x-1" aria-label="Pagination">
16
- <% if pagy.previous %>
17
- <%= link_to url_for(page: pagy.previous), class: "relative inline-flex items-center px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50" do %>
16
+ <% if pagination.previous %>
17
+ <%= link_to page_path(pagination.previous), class: "relative inline-flex items-center px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50" do %>
18
18
  <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
19
19
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7" />
20
20
  </svg>
@@ -29,18 +29,18 @@
29
29
  </span>
30
30
  <% end %>
31
31
 
32
- <% (1..pagy.pages).each do |page_num| %>
33
- <% if page_num == pagy.page %>
32
+ <% (1..pagination.pages).each do |page_num| %>
33
+ <% if page_num == pagination.page %>
34
34
  <span class="relative inline-flex items-center px-3 py-2 text-sm font-medium text-white bg-indigo-600 border border-indigo-600 rounded-md"><%= page_num %></span>
35
- <% elsif page_num == 1 || page_num == pagy.pages || (page_num >= pagy.page - 2 && page_num <= pagy.page + 2) %>
36
- <%= link_to page_num, url_for(page: page_num), class: "relative inline-flex items-center px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50" %>
37
- <% elsif page_num == pagy.page - 3 || page_num == pagy.page + 3 %>
35
+ <% elsif page_num == 1 || page_num == pagination.pages || (page_num >= pagination.page - 2 && page_num <= pagination.page + 2) %>
36
+ <%= link_to page_num, page_path(page_num), class: "relative inline-flex items-center px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50" %>
37
+ <% elsif page_num == pagination.page - 3 || page_num == pagination.page + 3 %>
38
38
  <span class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-700">...</span>
39
39
  <% end %>
40
40
  <% end %>
41
41
 
42
- <% if pagy.next %>
43
- <%= link_to url_for(page: pagy.next), class: "relative inline-flex items-center px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50" do %>
42
+ <% if pagination.next %>
43
+ <%= link_to page_path(pagination.next), class: "relative inline-flex items-center px-3 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50" do %>
44
44
  <span class="mr-1">Next</span>
45
45
  <svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
46
46
  <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
data/config/routes.rb CHANGED
@@ -13,6 +13,6 @@ RailsEventViewer::Engine.routes.draw do
13
13
  get :events_by_type
14
14
  end
15
15
 
16
- resources :event_types, only: [:index, :show], param: :name
17
- resources :groups, only: [:index, :show]
16
+ resources :event_types, only: [:index, :show], param: :name, constraints: { name: %r{[^/]+} }
17
+ resources :groups, only: [:index, :show], constraints: { id: %r{[^/]+} }
18
18
  end
@@ -11,8 +11,13 @@ module RailsEventViewer
11
11
 
12
12
  initializer "rails_event_viewer.assets" do |app|
13
13
  if app.config.respond_to?(:assets)
14
- app.config.assets.paths << root.join("app/assets/stylesheets")
15
- app.config.assets.precompile += %w[rails_event_viewer/application.css]
14
+ app.config.assets.precompile += %w[
15
+ rails_event_viewer/application.css
16
+ rails_event_viewer/application.js
17
+ rails_event_viewer/chart.umd.min.js
18
+ rails_event_viewer/chartjs-adapter-date-fns.bundle.min.js
19
+ rails_event_viewer/chartkick.min.js
20
+ ]
16
21
  end
17
22
  end
18
23
 
@@ -1,3 +1,3 @@
1
1
  module RailsEventViewer
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -1,4 +1,3 @@
1
- require "pagy"
2
1
  require "chartkick"
3
2
  require "groupdate"
4
3
 
@@ -118,5 +117,4 @@ require "rails_event_viewer/adapter"
118
117
  require "rails_event_viewer/events_relation"
119
118
  require "rails_event_viewer/subscriber"
120
119
  require "rails_event_viewer/json_query"
121
- require "rails_event_viewer/pagy_countable"
122
120
  require "rails_event_viewer/time_utils"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_event_viewer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keshav Biswa
@@ -23,20 +23,6 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: 8.1.0
26
- - !ruby/object:Gem::Dependency
27
- name: pagy
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: '43.0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '43.0'
40
26
  - !ruby/object:Gem::Dependency
41
27
  name: chartkick
42
28
  requirement: !ruby/object:Gem::Requirement
@@ -78,6 +64,10 @@ files:
78
64
  - MIT-LICENSE
79
65
  - README.md
80
66
  - Rakefile
67
+ - app/assets/javascripts/rails_event_viewer/application.js
68
+ - app/assets/javascripts/rails_event_viewer/chart.umd.min.js
69
+ - app/assets/javascripts/rails_event_viewer/chartjs-adapter-date-fns.bundle.min.js
70
+ - app/assets/javascripts/rails_event_viewer/chartkick.min.js
81
71
  - app/assets/stylesheets/rails_event_viewer/application.css
82
72
  - app/assets/stylesheets/rails_event_viewer/tailwind.css
83
73
  - app/controllers/rails_event_viewer/analytics_controller.rb
@@ -89,6 +79,7 @@ files:
89
79
  - app/helpers/rails_event_viewer/application_helper.rb
90
80
  - app/models/rails_event_viewer/application_record.rb
91
81
  - app/models/rails_event_viewer/entry.rb
82
+ - app/models/rails_event_viewer/page.rb
92
83
  - app/views/layouts/rails_event_viewer/application.html.erb
93
84
  - app/views/rails_event_viewer/analytics/overview.html.erb
94
85
  - app/views/rails_event_viewer/dashboard/index.html.erb
@@ -119,7 +110,6 @@ files:
119
110
  - lib/rails_event_viewer/engine.rb
120
111
  - lib/rails_event_viewer/events_relation.rb
121
112
  - lib/rails_event_viewer/json_query.rb
122
- - lib/rails_event_viewer/pagy_countable.rb
123
113
  - lib/rails_event_viewer/subscriber.rb
124
114
  - lib/rails_event_viewer/time_utils.rb
125
115
  - lib/rails_event_viewer/version.rb
@@ -138,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
138
128
  requirements:
139
129
  - - ">="
140
130
  - !ruby/object:Gem::Version
141
- version: '3.2'
131
+ version: '3.3'
142
132
  required_rubygems_version: !ruby/object:Gem::Requirement
143
133
  requirements:
144
134
  - - ">="
@@ -1,31 +0,0 @@
1
- module RailsEventViewer
2
- class PagyCountable
3
- def initialize(relation)
4
- @relation = relation
5
- end
6
-
7
- def count(*)
8
- @relation.count
9
- end
10
-
11
- def offset(value)
12
- OffsetWrapper.new(@relation, value)
13
- end
14
-
15
- # Intermediate wrapper that captures offset and applies limit
16
- class OffsetWrapper
17
- def initialize(relation, offset_value)
18
- @relation = relation
19
- @offset_value = offset_value
20
- end
21
-
22
- def limit(value)
23
- @relation.offset(@offset_value).limit(value).to_a
24
- end
25
-
26
- def to_a
27
- @relation.offset(@offset_value).to_a
28
- end
29
- end
30
- end
31
- end