active_permalink 0.5.1 → 0.5.4

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: be401b8e143b37ed86609377d304c2123954f3b3fb07d005b2829db47e714d3d
4
- data.tar.gz: 326c9fb0412cab533ed34195d5132bea543098ee1ba3b51012ac9f7631fde426
3
+ metadata.gz: e2370858cf54caeaed15d46be78c213318d9c694dd8de649f7d6d89831a4b280
4
+ data.tar.gz: b65706ee68b73614c6e339615dadb144ee191750abcfe64bd02d1fc4d58a9fbe
5
5
  SHA512:
6
- metadata.gz: '06038cce4e52ead75b2b2fcbc53ff838a60a83110bb0366ae8cfcdf9543bda607eaf0feffb3efeb4acd03d3f791236c3350ddbbf6e2326f712d614a5f4b67369'
7
- data.tar.gz: e01a3c90ec4470102603e2bc6ac63f6df3c8a32197b90150c61ebb28a892bb8aeceac89aca146b01745227a4af8de3c44ce273a5011178fb361477feb20206b7
6
+ metadata.gz: 7ab38b002cb0e25c9ec6b5687a9afba16506648a8b241dc040af5e9fb334450c5b1e7d673a2a6dff0f61d9459b4a318bca7ed765b3a7af15769ad484ba7f9a3a
7
+ data.tar.gz: 33ec5ef0cea62186ea15122f5c40af26d8814e021f0bd5910db02acab6cad1c1d32fd40d71ebc27072251b9e9989593c85fb76775c1544fa1d6aaf25648f60dc
@@ -1,12 +1,12 @@
1
- require 'stringex_lite'
1
+ require 'any_ascii'
2
2
 
3
3
  module ActivePermalink
4
4
  class Generator
5
5
  class << self
6
- def generate(record, value, locale = nil)
6
+ def generate(record, value, locale = nil, raw: false)
7
7
  return if value.nil? && !record.slug_should_generate?
8
8
 
9
- options = record.permalink_options.merge(locale: locale)
9
+ options = record.permalink_options.merge(locale: locale, raw: raw)
10
10
  generator = Generator.new(record, options)
11
11
  generator.generate(value)
12
12
 
@@ -91,7 +91,12 @@ module ActivePermalink
91
91
  def slug_from_column
92
92
  @slug_from_column ||= begin
93
93
  value = @new_value.presence || @record.send(@field)
94
- value.to_s.to_url
94
+ return if value.blank?
95
+
96
+ return value if @options[:raw] == true
97
+
98
+ value = AnyAscii.transliterate(value)
99
+ value.parameterize
95
100
  end
96
101
  end
97
102
 
@@ -29,8 +29,8 @@ module ActivePermalink
29
29
 
30
30
  private
31
31
 
32
- def _generate_permalink_slug(value)
33
- slug_backend.write(value, I18n.locale)
32
+ def _generate_permalink_slug(value, **options)
33
+ slug_backend.write(value, I18n.locale, **options)
34
34
  end
35
35
  end
36
36
 
@@ -60,9 +60,9 @@ module ActivePermalink
60
60
  find_slug(locale)
61
61
  end
62
62
 
63
- def write(value, locale)
63
+ def write(value, locale, **options)
64
64
  enforce_available_locales!(locale)
65
- update_slug(value, locale)
65
+ update_slug(value, locale, **options)
66
66
  end
67
67
 
68
68
  private
@@ -97,8 +97,8 @@ module ActivePermalink
97
97
  permalink.try(:slug)
98
98
  end
99
99
 
100
- def update_slug(value, locale)
101
- Generator.generate(record, value, locale)
100
+ def update_slug(value, locale, **options)
101
+ Generator.generate(record, value, locale, **options)
102
102
  @permalinks = record.permalinks.to_a
103
103
  end
104
104
  end
@@ -12,6 +12,10 @@ module ActivePermalink
12
12
  on: [:create, :update],
13
13
  if: :slug_needs_generate?
14
14
 
15
+ def raw_slug=(value)
16
+ _generate_permalink_slug(value, raw: true)
17
+ end
18
+
15
19
  def slug=(value)
16
20
  _generate_permalink_slug(value)
17
21
  end
@@ -37,8 +41,8 @@ module ActivePermalink
37
41
  @slug_should_generate = false
38
42
  end
39
43
 
40
- def _generate_permalink_slug(value)
41
- Generator.generate(self, value)
44
+ def _generate_permalink_slug(value, **options)
45
+ Generator.generate(self, value, **options)
42
46
  end
43
47
  end
44
48
  end
@@ -1,3 +1,3 @@
1
1
  module ActivePermalink
2
- VERSION = '0.5.1'
2
+ VERSION = '0.5.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_permalink
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonian Guveli
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-10 00:00:00.000000000 Z
11
+ date: 2022-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.0'
22
+ version: '8'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,35 +29,35 @@ dependencies:
29
29
  version: '5.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.0'
32
+ version: '8'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: active_delegate
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '1.0'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.0'
47
47
  - !ruby/object:Gem::Dependency
48
- name: stringex
48
+ name: any_ascii
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - "~>"
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: '2.0'
53
+ version: '0.1'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '2.0'
60
+ version: '0.1'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: bundler
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -127,7 +127,7 @@ homepage: https://github.com/hardpixel/active-permalink
127
127
  licenses:
128
128
  - MIT
129
129
  metadata: {}
130
- post_install_message:
130
+ post_install_message:
131
131
  rdoc_options: []
132
132
  require_paths:
133
133
  - lib
@@ -142,8 +142,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
142
  - !ruby/object:Gem::Version
143
143
  version: '0'
144
144
  requirements: []
145
- rubygems_version: 3.1.2
146
- signing_key:
145
+ rubygems_version: 3.1.6
146
+ signing_key:
147
147
  specification_version: 4
148
148
  summary: Add permalinks to ActiveRecord models
149
149
  test_files: []