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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eefb46cddedbe3f232ef038a7f2385b3c2a3121d
4
- data.tar.gz: 8018071c727b482ca8c503951d4b4ad59d2ddd71
3
+ metadata.gz: 0b5132743f6f7bf1ccab83e28c3ae18f822b277a
4
+ data.tar.gz: 58d20decd09055a4a76a21548e66010acac00da5
5
5
  SHA512:
6
- metadata.gz: 68fbe46e207434cb7405d149fef86e7644b05d9f76a6c050d1065f2aeb6b2608c63340b9f7365feb6069b1bf844b33a85060da9eb86265322d581a03d024bf10
7
- data.tar.gz: 180eeff9eaa296bf89ecfaa09ffe626bdd7174c2930b6fbe69f59480b3b81bb487ccf6d78fd2f3e0f27c17ac4b3b90962fb865e622f9e0a6ec352f712dc71092
6
+ metadata.gz: 1f307fff4f9bdb34387849e33c424c109606f1a0abd8c55b769c4b96da08dedbc1da3380748cb8b5ef2ff4c58603878a2c372ce9054a4052dd25d563c7619326
7
+ data.tar.gz: 0c682ae7f3f3ef7fd99020e8ee31e69124f4f1d6bb825962c6eca853afa6db11f1c6027778f4a13f555cae91951977718022bfd3aa2156e12d907f68e78e131a
@@ -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 unqiue key
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 = {})
@@ -1,3 +1,3 @@
1
1
  module Shortener
2
- VERSION = "0.5.4"
2
+ VERSION = '0.5.5'
3
3
  end
@@ -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 { should belong_to :owner }
6
- it { should validate_presence_of :url }
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
 
@@ -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 { should have_many :shortened_urls }
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
@@ -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
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-09-20 00:00:00.000000000 Z
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: '0'
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: '0'
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
- - ".gitignore"
110
- - ".travis.yml"
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.4.5.1
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