searchjoy 1.3.2 → 1.5.0

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: cae1538f158faa15c1daecc15876684dc82b87804fc5335912a08bee9bdb2957
4
- data.tar.gz: 3c9974b3449b534d3e69024d45f931408ecf1838e32aad432338dfb8d6de9a66
3
+ metadata.gz: '029600b3c7cc4ec9d15dab6698dd9874e2b651a38ebdfdf15c2b2a685a9174e8'
4
+ data.tar.gz: 0e8400de4613ba31f23a678f15855bbad718aba61f1ed60deba3a5a4e7163468
5
5
  SHA512:
6
- metadata.gz: 00be5588d518c8bb1ac5591df38d7f5eb020791ef7bf9327740b67862826da209750df018b5ab1292ff0175ce2315ec2a18eeab4d6a0d0c05dabbf073bd0f5a1
7
- data.tar.gz: 98a77ddaaa09957f77a786dbb2be7a6a89582613856ea09399c32e89a7987f6c2df0d09e771f5f3d9f044341c5af68b3102e4b14b0e9739dbd22cce6ba84ea7f
6
+ metadata.gz: 8eab6b10ac86001395011df330926bce444e2f422c166e3bd3543e07fa42c8246dedf4073bee2c1469ce841cf25fe5d72b5473ffbd549a62cbaba8bc896a070d
7
+ data.tar.gz: 7d6c7f8f1ef7a605524cc3068174e130475277b7ca77498c9b99c8d1ac96e7df94c3303d6b643d0ac28aeb88a861067b4a2773af115634ba3f23d4f871618310
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 1.5.0 (2026-04-08)
2
+
3
+ - Fixed error with long queries with MySQL
4
+ - Dropped support for Ruby < 3.3 and Rails < 7.2
5
+
6
+ ## 1.4.0 (2025-04-03)
7
+
8
+ - Dropped support for Ruby < 3.2 and Rails < 7.1
9
+
1
10
  ## 1.3.2 (2024-11-21)
2
11
 
3
12
  - Fixed date range picker for time zones with negative UTC offset
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013-2024 Andrew Kane
1
+ Copyright (c) 2013-2025 Andrew Kane
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -4,7 +4,7 @@ Search analytics made easy
4
4
 
5
5
  [See it in action](https://searchjoy.dokkuapp.com/)
6
6
 
7
- [![Screenshot](https://searchjoy.dokkuapp.com/assets/searchjoy-7be12d922ca8b31b7d7440e618b0c666698a4b15752653a0c5c45e3dd2737142.png)](https://searchjoy.dokkuapp.com/)
7
+ [![Screenshot](https://searchjoy.dokkuapp.com/assets/searchjoy-d0162561.png)](https://searchjoy.dokkuapp.com/)
8
8
 
9
9
  - view searches in real-time
10
10
  - track conversion rate week over week
@@ -178,42 +178,6 @@ Show the conversion name in the live stream
178
178
  Searchjoy.conversion_name = ->(model) { model.name }
179
179
  ```
180
180
 
181
- ## Upgrading
182
-
183
- ### 1.0
184
-
185
- Searchjoy now supports multiple conversions per search :tada:
186
-
187
- Before updating the gem, create a migration with:
188
-
189
- ```ruby
190
- create_table :searchjoy_conversions do |t|
191
- t.references :search
192
- t.references :convertable, polymorphic: true, index: {name: "index_searchjoy_conversions_on_convertable"}
193
- t.datetime :created_at
194
- end
195
- ```
196
-
197
- Deploy and run the migration, then update the gem.
198
-
199
- You can optionally backfill the conversions table
200
-
201
- ```ruby
202
- Searchjoy.backfill_conversions
203
- ```
204
-
205
- And optionally remove `convertable` from searches
206
-
207
- ```ruby
208
- remove_reference :searchjoy_searches, :convertable, polymorphic: true
209
- ```
210
-
211
- You can stay with single conversions (and skip all the previous steps) by creating an initializer with:
212
-
213
- ```ruby
214
- Searchjoy.multiple_conversions = false
215
- ```
216
-
217
181
  ## History
218
182
 
219
183
  View the [changelog](https://github.com/ankane/searchjoy/blob/master/CHANGELOG.md)
@@ -1,17 +1,17 @@
1
1
  module Searchjoy
2
2
  class SearchesController < ActionController::Base
3
- protect_from_forgery with: :exception
4
-
5
- layout "searchjoy/application"
6
-
7
3
  http_basic_authenticate_with name: ENV["SEARCHJOY_USERNAME"], password: ENV["SEARCHJOY_PASSWORD"] if ENV["SEARCHJOY_PASSWORD"]
8
4
 
5
+ protect_from_forgery with: :exception
6
+
9
7
  before_action :set_time_zone
10
8
  before_action :set_search_types
11
9
  before_action :set_search_type, only: [:index, :overview]
12
10
  before_action :set_time_range, only: [:index, :overview]
13
11
  before_action :set_searches, only: [:index, :overview]
14
12
 
13
+ layout "searchjoy/application"
14
+
15
15
  def index
16
16
  if params[:sort] == "conversion_rate"
17
17
  @searches.sort_by! { |s| [s["conversion_rate"].to_f, s["query"]] }
@@ -6,6 +6,7 @@ module Searchjoy
6
6
  belongs_to :user, optional: true
7
7
  has_many :conversions
8
8
 
9
+ before_save :truncate_query
9
10
  before_save :set_normalized_query
10
11
 
11
12
  def convert(convertable = nil)
@@ -41,6 +42,11 @@ module Searchjoy
41
42
 
42
43
  protected
43
44
 
45
+ def truncate_query
46
+ limit = self.class.type_for_attribute(:query).limit rescue nil
47
+ self.query = query.first(limit) if query && limit
48
+ end
49
+
44
50
  def set_normalized_query
45
51
  self.normalized_query = query.downcase if query
46
52
  end
@@ -1,3 +1,3 @@
1
1
  module Searchjoy
2
- VERSION = "1.3.2"
2
+ VERSION = "1.5.0"
3
3
  end
metadata CHANGED
@@ -1,58 +1,56 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: searchjoy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-11-22 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: chartkick
13
+ name: activerecord
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '5'
18
+ version: '7.2'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: '5'
25
+ version: '7.2'
27
26
  - !ruby/object:Gem::Dependency
28
- name: groupdate
27
+ name: chartkick
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '6'
32
+ version: '5'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '6'
39
+ version: '5'
41
40
  - !ruby/object:Gem::Dependency
42
- name: activerecord
41
+ name: groupdate
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: '6.1'
46
+ version: '6'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
- version: '6.1'
55
- description:
53
+ version: '6'
56
54
  email: andrew@ankane.org
57
55
  executables: []
58
56
  extensions: []
@@ -85,7 +83,6 @@ homepage: https://github.com/ankane/searchjoy
85
83
  licenses:
86
84
  - MIT
87
85
  metadata: {}
88
- post_install_message:
89
86
  rdoc_options: []
90
87
  require_paths:
91
88
  - lib
@@ -93,15 +90,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
93
90
  requirements:
94
91
  - - ">="
95
92
  - !ruby/object:Gem::Version
96
- version: '3.1'
93
+ version: '3.3'
97
94
  required_rubygems_version: !ruby/object:Gem::Requirement
98
95
  requirements:
99
96
  - - ">="
100
97
  - !ruby/object:Gem::Version
101
98
  version: '0'
102
99
  requirements: []
103
- rubygems_version: 3.5.22
104
- signing_key:
100
+ rubygems_version: 4.0.10
105
101
  specification_version: 4
106
102
  summary: Search analytics made easy
107
103
  test_files: []