tanshuku 0.0.4 → 0.0.6

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: b935f7a46118c55114ef0c1184f3fa8c0cfcad12dc37dca002e114135c01f76a
4
- data.tar.gz: c9fc7e2849422c97a1c124988761f6d30a9742de9d7337b8d7c4200b02817f08
3
+ metadata.gz: 797579e31bb1b82be39ee3e1e9b47cab79bd93db8088ef07f2a442c0f843b71b
4
+ data.tar.gz: 96fde025c079c4253338bc58bd487075f93b50262247e1349eb2c56d3fc26a16
5
5
  SHA512:
6
- metadata.gz: a0d637cd54daf6b86cd00cb3e2ddad4d200d72b6fbaf90c7e98883f58d29ad364103c75d114b6ce8c646c157fd86a0bd7f815733db20e0533dd757e2d6fad4a0
7
- data.tar.gz: 498c19b75c5024095f12ba4966ca8f9c36b24f3b8ea973ba0679b2ff2524809aee3622774e39b518073b5131cac730b6cbb11e81370ed48adee13fda7f0fb8f6
6
+ metadata.gz: 32be6ddbfd71a34393bb100f8a5382ef456e3c856598f5b9947a8fa8aa292b6578e4150cda40aec4125c022ad8a55449b71df00916a0b1c9c42a5aac8fe578ab
7
+ data.tar.gz: 5becf84144a9a733310fd8d7a871f7e66921d6ef9f84400c618ee1a3c6ad43413693f30090f80ecca293dabe513927f3f81638dc98066d03a46ff1d0ebd512c6
@@ -28,7 +28,7 @@ module Tanshuku
28
28
  r.attributes = { url:, key: generate_key }
29
29
  end
30
30
 
31
- Tanshuku::Engine.routes.url_for(controller: "tanshuku/urls", action: :show, key: record.key)
31
+ record.shortened_url
32
32
  rescue ActiveRecord::RecordNotUnique => e
33
33
  if retries < 10
34
34
  shorten(url, retries: retries + 1)
@@ -41,6 +41,13 @@ module Tanshuku
41
41
  original_url
42
42
  end
43
43
 
44
+ def self.find_by_url(url)
45
+ normalized_url = normalize_url(url)
46
+ hashed_url = hash_url(normalized_url)
47
+
48
+ find_by(hashed_url:)
49
+ end
50
+
44
51
  # Normalize a trailing slash, `?` for an empty query, and so on, and sort query keys.
45
52
  def self.normalize_url(url)
46
53
  parsed_url = Addressable::URI.parse(url)
@@ -59,5 +66,9 @@ module Tanshuku
59
66
  def self.report_exception(exception:, original_url:)
60
67
  logger.warn("Tanshuku - Failed to shorten a URL: #{exception.inspect} for #{original_url.inspect}")
61
68
  end
69
+
70
+ def shortened_url
71
+ Tanshuku::Engine.routes.url_for(controller: "tanshuku/urls", action: :show, key:)
72
+ end
62
73
  end
63
74
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tanshuku
4
- VERSION = "0.0.4"
4
+ VERSION = "0.0.6"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tanshuku
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - kg8m
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-20 00:00:00.000000000 Z
11
+ date: 2023-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable