url_signer 0.1 → 0.2

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: 49fa2bf8648727c23d178c1e56fe48292ad9072f
4
- data.tar.gz: 838502de43dea1e2811b34d84c5f45c3855980d7
3
+ metadata.gz: 56366ad2bd9634d9a762f6e0759dba5738656f18
4
+ data.tar.gz: 9917576c556cfe739a5c4a90a3a126041f86a665
5
5
  SHA512:
6
- metadata.gz: af6a065fff64fcc206865a2efd0811dbd7e70ccb559ba2ac59afc6fbf8c9311c32fbb9e9135b3e7b911edba5b20c29a77c54fea1828255e4fb0ce2779299eaa4
7
- data.tar.gz: 8b12be5dafbde8ae03e3ec96c515a543b807b0283d551335502724168427b21fe38cb744d462b5225c4273032fa7484f4b68cb1c6d2b0460c92a60e58fc8c1d9
6
+ metadata.gz: d38f39b64abaf780b9d366c399b359487772083a0c5f02b6b93c108c6414c233d11f824cc2a6ef4c536a36cbaa092a4f1102715ca3e5ad6d355968420f4d4c9d
7
+ data.tar.gz: 7f0c6eb90f44434f807c363048f686fb0d5a12343898111f3fbf010dad6a5b62614b4a3972c2fcf853f38d5998f0a5c2b2815b2e7a0869730d7028c36bdd184c
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.2
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # UrlSign
2
+ [![Build Status](https://travis-ci.org/ushu/url_signer.svg?branch=master)](https://travis-ci.org/ushu/url_signer)
3
+ [![Code Climate](https://codeclimate.com/github/ushu/url_signer/badges/gpa.svg)](https://codeclimate.com/github/ushu/url_signer)
2
4
 
3
5
  Quickly generate and verify signed urls.
4
6
 
@@ -39,6 +41,22 @@ Given a signed URL, you can check its authenticity by calling `UrlSigner.valid?`
39
41
  true
40
42
  ```
41
43
 
44
+ ### helper methods
45
+
46
+ The gem adds helper methods to <tt>String</tt> and <tt>URI</tt> classes:
47
+
48
+ ```ruby
49
+ # to generate a signed uri directly form a string
50
+ signed_url = 'http://google.fr'.to_signed_uri(key: 'test')
51
+
52
+ # or if we have a URI insance already
53
+ url = URI.parse('http://google.fr')
54
+ signed_url = url.signed(key: 'test')
55
+
56
+ # finally to check for signature authenticity
57
+ signed_url.signature_valid?(key: 'test')
58
+ ```
59
+
42
60
  ## Contributing
43
61
 
44
62
  1. Fork it ( https://github.com/[my-github-username]/url_sign/fork )
data/Rakefile CHANGED
@@ -1,2 +1,10 @@
1
1
  require "bundler/gem_tasks"
2
2
 
3
+ begin
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
8
+ rescue LoadError
9
+ end
10
+
@@ -0,0 +1,13 @@
1
+ require 'uri'
2
+ require 'url_signer'
3
+
4
+ class String
5
+
6
+ # Return a signed <tt>URI</tt> form the current <tt>String</tt>.
7
+ #
8
+ # 'http://google.fr'.to_signed_uri # => <URI::HTTP...>
9
+ def to_signed_uri(*options)
10
+ UrlSigner.sign(self, *options)
11
+ end
12
+
13
+ end
@@ -0,0 +1,24 @@
1
+ require 'uri'
2
+ require 'url_signer'
3
+
4
+ module URI
5
+ class Generic
6
+
7
+ # Return a signed version of the <tt>URI</tt>.
8
+ #
9
+ # url = URI.parse('http://google.fr')
10
+ # signed_url = url.signed
11
+ def signed(*options)
12
+ UrlSigner.sign(self, *options)
13
+ end
14
+
15
+ # Checks the validity of the current <tt>URI</tt> signature.
16
+ #
17
+ # signed_url = URI.parse('http://google.fr').signed
18
+ # signed_url.signature_valid? # => true
19
+ def signature_valid?(*options)
20
+ UrlSigner.valid?(self, *options)
21
+ end
22
+
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module UrlSigner
2
- VERSION = "0.1"
2
+ VERSION = "0.2"
3
3
  end
data/lib/url_signer.rb CHANGED
@@ -42,3 +42,8 @@ module UrlSigner
42
42
  end
43
43
 
44
44
  end
45
+
46
+ # Insert helpers in URI
47
+ require 'url_signer/extensions/uri'
48
+ # Insert helpers in String
49
+ require 'url_signer/extensions/string'
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe "String extension" do
4
+ let(:url_string) { 'http://google.fr' }
5
+ let(:url) { URI.parse(url_string) }
6
+ let(:signed_url) { UrlSigner.sign(url, key: 'toto') }
7
+
8
+ describe "#to_signed_uri" do
9
+ it "returns a signed version of the URI" do
10
+ expect(url_string.to_signed_uri(key: 'toto')).to eq(signed_url)
11
+ end
12
+ end
13
+
14
+ end # URI extension
data/spec/uri_spec.rb ADDED
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe "URI extension" do
4
+ let(:url) { URI.parse('http://google.fr') }
5
+ let(:signed_url) { UrlSigner.sign(url, key: 'toto') }
6
+
7
+ describe "#signed" do
8
+ it "returns a signed version of the URI" do
9
+ expect(url.signed(key: 'toto')).to eq(signed_url)
10
+ end
11
+ end
12
+
13
+ describe "#valid" do
14
+ it "returns true if the current url is signed" do
15
+ expect(signed_url.signature_valid?(key: 'toto')).to eq(true)
16
+ end
17
+ end
18
+
19
+ end # URI extension
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: url_signer
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.1'
4
+ version: '0.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aurélien Noce
@@ -14,42 +14,42 @@ dependencies:
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.1'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.1'
55
55
  description: Simple solution (2 methods) to sign URLs and verify the generated URLs.
@@ -60,19 +60,24 @@ executables: []
60
60
  extensions: []
61
61
  extra_rdoc_files: []
62
62
  files:
63
- - .gitignore
63
+ - ".gitignore"
64
+ - ".travis.yml"
64
65
  - Gemfile
65
66
  - LICENSE.txt
66
67
  - README.md
67
68
  - Rakefile
68
69
  - lib/url_signer.rb
69
70
  - lib/url_signer/base.rb
71
+ - lib/url_signer/extensions/string.rb
72
+ - lib/url_signer/extensions/uri.rb
70
73
  - lib/url_signer/signer.rb
71
74
  - lib/url_signer/verifier.rb
72
75
  - lib/url_signer/version.rb
73
76
  - spec/base_spec.rb
74
77
  - spec/signer_spec.rb
75
78
  - spec/spec_helper.rb
79
+ - spec/string_spec.rb
80
+ - spec/uri_spec.rb
76
81
  - spec/url_signer_spec.rb
77
82
  - spec/verifier_spec.rb
78
83
  - url_signer.gemspec
@@ -86,17 +91,17 @@ require_paths:
86
91
  - lib
87
92
  required_ruby_version: !ruby/object:Gem::Requirement
88
93
  requirements:
89
- - - '>='
94
+ - - ">="
90
95
  - !ruby/object:Gem::Version
91
96
  version: '0'
92
97
  required_rubygems_version: !ruby/object:Gem::Requirement
93
98
  requirements:
94
- - - '>='
99
+ - - ">="
95
100
  - !ruby/object:Gem::Version
96
101
  version: '0'
97
102
  requirements: []
98
103
  rubyforge_project:
99
- rubygems_version: 2.0.14
104
+ rubygems_version: 2.2.2
100
105
  signing_key:
101
106
  specification_version: 4
102
107
  summary: Sign and verify URLs
@@ -104,6 +109,7 @@ test_files:
104
109
  - spec/base_spec.rb
105
110
  - spec/signer_spec.rb
106
111
  - spec/spec_helper.rb
112
+ - spec/string_spec.rb
113
+ - spec/uri_spec.rb
107
114
  - spec/url_signer_spec.rb
108
115
  - spec/verifier_spec.rb
109
- has_rdoc: