shortener 0.7.2 → 0.8.0
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ff66256668eb71d5b42010c191233c7346c2651
|
4
|
+
data.tar.gz: f4cf3ffadd4b4f74ae6076be7f9fa13edf55b5ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c88fd4cda719d6759af9f1faa5fc70829f18ff99662f77dc10ae33f20e9debcfabd051c5fe7157a75b505f45d164752cd40ead26ed110be6c09c1427e81e382e
|
7
|
+
data.tar.gz: 0e4ae113ede69db12a0b9901747bb20bb0ed4a72e51817e619524c166cc8cf1a8159f69c0352af843a48650773c3aa98e62d92a44f5e5ffcbcfd083265a0c629
|
data/README.rdoc
CHANGED
@@ -60,17 +60,16 @@ migration:
|
|
60
60
|
* A unique alphanumeric code of generated for each shortened link, this means that we can get more unique combinations than if we just used numbers;
|
61
61
|
* The link records a count of how many times it has been “un-shortened”;
|
62
62
|
* The link can be associated with a user, this allows for stats of the link usage for a particular user and other interesting things;
|
63
|
-
* The controller spawns a new thread to record information to the database, allowing the redirect to happen as quickly as possible;
|
64
63
|
|
65
64
|
=== Future improvements:
|
66
65
|
|
67
66
|
* There has not been an attempt to remove ambiguous characters (i.e. 1 l and capital i, or 0 and O etc.) from the unique key generated for the link. This means people might copy the link incorrectly if copying the link by hand;
|
68
67
|
* The system could pre-generate unique keys in advance, avoiding the database penalty when checking that a newly generated key is unique;
|
69
|
-
* The system could store the shortened URL if the url is to be continually rendered;
|
68
|
+
* The system could store/cache the shortened URL if the url is to be continually rendered;
|
70
69
|
|
71
70
|
== Installation
|
72
71
|
|
73
|
-
Shortener is compatible with Rails v3
|
72
|
+
Shortener is compatible with Rails v3, v4 & v5. To install, add to your Gemfile:
|
74
73
|
|
75
74
|
gem 'shortener'
|
76
75
|
|
@@ -7,7 +7,12 @@ class Shortener::ShortenedUrl < ActiveRecord::Base
|
|
7
7
|
before_create :generate_unique_key
|
8
8
|
|
9
9
|
# allows the shortened link to be associated with a user
|
10
|
-
|
10
|
+
if ActiveRecord::VERSION::MAJOR >= 5
|
11
|
+
# adds rails 5 compatibility to have nil values as owner
|
12
|
+
belongs_to :owner, polymorphic: true, optional: true
|
13
|
+
else
|
14
|
+
belongs_to :owner, polymorphic: true
|
15
|
+
end
|
11
16
|
|
12
17
|
# exclude records in which expiration time is set and expiration time is greater than current time
|
13
18
|
scope :unexpired, -> { where(arel_table[:expires_at].eq(nil).or(arel_table[:expires_at].gt(::Time.current.to_s(:db)))) }
|
data/lib/shortener/version.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
# This file extends the new Rails (aka version 5) framework default initializers.
|
2
|
+
# It sets the application defaults therefore and because of this dummy application
|
3
|
+
# supports new version should contain this file.
|
4
|
+
# It isn't adding all defaults as the rails 5 does because of 5.1 and 5.2
|
5
|
+
# contains different settings, therefore, it is scoping the settings that this gem
|
6
|
+
# requires.
|
7
|
+
if ActiveRecord::VERSION::MAJOR >= 5
|
8
|
+
# Require `belongs_to` associations by default. Previous versions had false.
|
9
|
+
Rails.application.config.active_record.belongs_to_required_by_default = true
|
10
|
+
end
|
11
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shortener
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James P. McGrath
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-07-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: voight_kampff
|
@@ -174,6 +174,7 @@ files:
|
|
174
174
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
175
175
|
- spec/dummy/config/initializers/inflections.rb
|
176
176
|
- spec/dummy/config/initializers/mime_types.rb
|
177
|
+
- spec/dummy/config/initializers/new_framework_default.rb
|
177
178
|
- spec/dummy/config/initializers/secret_token.rb
|
178
179
|
- spec/dummy/config/initializers/session_store.rb
|
179
180
|
- spec/dummy/config/locales/en.yml
|