shortener 0.5.4 → 0.5.5
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 +4 -4
- data/README.rdoc +13 -2
- data/lib/shortener/shorten_url_interceptor.rb +1 -1
- data/lib/shortener/version.rb +1 -1
- data/shortener.gemspec +2 -2
- data/spec/models/shortened_url_spec.rb +2 -2
- data/spec/models/user_spec.rb +2 -2
- data/spec/shortener/shorten_url_interceptor_spec.rb +2 -1
- data/spec/spec_helper.rb +7 -0
- metadata +21 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b5132743f6f7bf1ccab83e28c3ae18f822b277a
|
4
|
+
data.tar.gz: 58d20decd09055a4a76a21548e66010acac00da5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f307fff4f9bdb34387849e33c424c109606f1a0abd8c55b769c4b96da08dedbc1da3380748cb8b5ef2ff4c58603878a2c372ce9054a4052dd25d563c7619326
|
7
|
+
data.tar.gz: 0c682ae7f3f3ef7fd99020e8ee31e69124f4f1d6bb825962c6eca853afa6db11f1c6027778f4a13f555cae91951977718022bfd3aa2156e12d907f68e78e131a
|
data/README.rdoc
CHANGED
@@ -28,6 +28,17 @@ There have been some breaking changes:
|
|
28
28
|
1. The owner argument is passed into the generator and helper methods as a named parameter.
|
29
29
|
2. Original URLs arguments without a hypertext protocol (http|https) will be assumed to be relative paths.
|
30
30
|
|
31
|
+
=== v0.5.1 to v0.5.2
|
32
|
+
v0.5.2 introduced the ability to set an expiration date for a shortened URL. The expiration dates
|
33
|
+
are stored in a expires_at column in the database, which can be added to your schema with the following
|
34
|
+
migration:
|
35
|
+
|
36
|
+
class AddExpiresAtToShortenedUrl < ActiveRecord::Migration
|
37
|
+
def change
|
38
|
+
add_column :shortened_urls, :expires_at, :datetime
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
31
42
|
=== Some niceities of Shortener:
|
32
43
|
|
33
44
|
* The controller does a 301 redirect, which is the recommended type of redirect for maintaining maximum google juice to the original URL;
|
@@ -113,7 +124,7 @@ And to access those URLs:
|
|
113
124
|
|
114
125
|
user.shortened_urls
|
115
126
|
|
116
|
-
=== Shortened URLs with custom
|
127
|
+
=== Shortened URLs with custom unique key
|
117
128
|
|
118
129
|
You can pass in your own key when generating a shortened URL. This should be unique.
|
119
130
|
|
@@ -198,4 +209,4 @@ To contribute:
|
|
198
209
|
2. Create your feature branch (git checkout -b my-new-feature)
|
199
210
|
3. Commit your changes (git commit -am 'Add some feature')
|
200
211
|
4. Push to the branch (git push origin my-new-feature)
|
201
|
-
5. Create a new Pull Request
|
212
|
+
5. Create a new Pull Request
|
@@ -17,7 +17,7 @@ Usage:
|
|
17
17
|
'cloudfront\.net/' ].map {|r| Regexp.new(r) }
|
18
18
|
DEFAULT_LENGTH_THRESHOLD = 20
|
19
19
|
|
20
|
-
URL_REGEX = /\b((https?):\/\/[\w\.-]+[\.]\w+)([-A-Z0-9+&@#\/%?=~_|$!:,.;]*[-A-Z0-9+&@#\/%=~_|$])?/i
|
20
|
+
URL_REGEX = /\b((https?):\/\/([\w\.-]+[\.]\w+)?)([-A-Z0-9+&@#\/%?=~_|$!:,.;]*[-A-Z0-9+&@#\/%=~_|$])?/i
|
21
21
|
MIME_TYPES = %w(text/plain text/html application/xhtml+xml)
|
22
22
|
|
23
23
|
def initialize(opts = {})
|
data/lib/shortener/version.rb
CHANGED
data/shortener.gemspec
CHANGED
@@ -17,9 +17,9 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.add_dependency "rails", ">= 3.0.7"
|
18
18
|
s.add_development_dependency "sqlite3"
|
19
19
|
s.add_development_dependency "rspec-rails", '~> 3.3.0'
|
20
|
-
s.add_development_dependency "shoulda-matchers"
|
20
|
+
s.add_development_dependency "shoulda-matchers", '~> 3'
|
21
21
|
s.add_development_dependency "faker"
|
22
22
|
s.add_development_dependency "byebug"
|
23
23
|
s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
|
24
24
|
s.require_path = 'lib'
|
25
|
-
end
|
25
|
+
end
|
@@ -2,8 +2,8 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Shortener::ShortenedUrl, type: :model do
|
5
|
-
it {
|
6
|
-
it {
|
5
|
+
it { is_expected.to belong_to :owner }
|
6
|
+
it { is_expected.to validate_presence_of :url }
|
7
7
|
|
8
8
|
describe '#generate!' do
|
9
9
|
|
data/spec/models/user_spec.rb
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
# user defined in dummy app, uses has_shortened_urls
|
5
|
-
describe User do
|
6
|
-
it {
|
5
|
+
describe User, type: :model do
|
6
|
+
it { is_expected.to have_many(:shortened_urls) }
|
7
7
|
|
8
8
|
context 'shortened url created with owner' do
|
9
9
|
let (:user) { User.create }
|
@@ -46,7 +46,8 @@ describe Shortener::ShortenUrlInterceptor do
|
|
46
46
|
"http://client.doorkeeper.jp/events/124-",
|
47
47
|
"http://client.doorkeeper.jp/events/124-title?auth_token=xabagangs",
|
48
48
|
"http://client.doorkeeper.jp/events/124-%E4%F6%A0",
|
49
|
-
"https://www.test-site.com/"
|
49
|
+
"https://www.test-site.com/",
|
50
|
+
"https://test-suite.com/"
|
50
51
|
].each do |url|
|
51
52
|
it_should_behave_like "shortens URL in text", url
|
52
53
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,5 +10,12 @@ require 'faker'
|
|
10
10
|
|
11
11
|
Rails.backtrace_cleaner.remove_silencers!
|
12
12
|
|
13
|
+
Shoulda::Matchers.configure do |config|
|
14
|
+
config.integrate do |with|
|
15
|
+
with.test_framework :rspec
|
16
|
+
with.library :rails
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
13
20
|
# Run any available migration
|
14
21
|
ActiveRecord::Migrator.migrate File.expand_path("../dummy/db/migrate/", __FILE__)
|
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.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James P. McGrath
|
@@ -9,90 +9,90 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-11-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: 3.0.7
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - '>='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 3.0.7
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: sqlite3
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - '>='
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rspec-rails
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ~>
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 3.3.0
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ~>
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 3.3.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: shoulda-matchers
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ~>
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '3'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '3'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: faker
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - '>='
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - '>='
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: byebug
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - '>='
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- -
|
95
|
+
- - '>='
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
description: Shortener is a Rails Engine Gem that makes it easy to create and interpret
|
@@ -106,8 +106,8 @@ executables: []
|
|
106
106
|
extensions: []
|
107
107
|
extra_rdoc_files: []
|
108
108
|
files:
|
109
|
-
-
|
110
|
-
-
|
109
|
+
- .gitignore
|
110
|
+
- .travis.yml
|
111
111
|
- Gemfile
|
112
112
|
- MIT-LICENSE
|
113
113
|
- README.rdoc
|
@@ -167,17 +167,17 @@ require_paths:
|
|
167
167
|
- lib
|
168
168
|
required_ruby_version: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
|
-
- -
|
170
|
+
- - '>='
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: '0'
|
173
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
174
|
requirements:
|
175
|
-
- -
|
175
|
+
- - '>'
|
176
176
|
- !ruby/object:Gem::Version
|
177
177
|
version: 1.3.6
|
178
178
|
requirements: []
|
179
179
|
rubyforge_project: shortener
|
180
|
-
rubygems_version: 2.
|
180
|
+
rubygems_version: 2.0.2
|
181
181
|
signing_key:
|
182
182
|
specification_version: 4
|
183
183
|
summary: Shortener is a Rails Engine that makes it easy to create shortened URLs for
|