url_store 0.3.0 → 0.3.1
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.
- data/Gemfile +7 -0
- data/Gemfile.lock +26 -0
- data/Rakefile +4 -4
- data/{README.markdown → Readme.md} +13 -3
- data/VERSION +1 -1
- data/lib/url_store.rb +2 -2
- data/spec/url_store_spec.rb +2 -2
- data/url_store.gemspec +18 -21
- metadata +25 -11
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
diff-lcs (1.1.2)
|
5
|
+
git (1.2.5)
|
6
|
+
jeweler (1.5.2)
|
7
|
+
bundler (~> 1.0.0)
|
8
|
+
git (>= 1.2.5)
|
9
|
+
rake
|
10
|
+
rake (0.8.7)
|
11
|
+
rspec (2.5.0)
|
12
|
+
rspec-core (~> 2.5.0)
|
13
|
+
rspec-expectations (~> 2.5.0)
|
14
|
+
rspec-mocks (~> 2.5.0)
|
15
|
+
rspec-core (2.5.1)
|
16
|
+
rspec-expectations (2.5.0)
|
17
|
+
diff-lcs (~> 1.1.2)
|
18
|
+
rspec-mocks (2.5.0)
|
19
|
+
|
20
|
+
PLATFORMS
|
21
|
+
ruby
|
22
|
+
|
23
|
+
DEPENDENCIES
|
24
|
+
jeweler
|
25
|
+
rake
|
26
|
+
rspec (~> 2)
|
data/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
task :default
|
2
|
-
|
3
|
-
|
1
|
+
task :default do
|
2
|
+
sh "rspec spec/"
|
3
|
+
end
|
4
4
|
|
5
5
|
begin
|
6
6
|
require 'jeweler'
|
@@ -16,4 +16,4 @@ begin
|
|
16
16
|
Jeweler::GemcutterTasks.new
|
17
17
|
rescue LoadError
|
18
18
|
puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install jeweler"
|
19
|
-
end
|
19
|
+
end
|
@@ -5,11 +5,19 @@ Data securely stored in urls.
|
|
5
5
|
- serializing through __:marshal__ :yaml
|
6
6
|
- hashing through DSS DSS1 MD2 MD4 MD5 MDC2 RIPEMD160 SHA __SHA1__ SHA224 SHA256 SHA384 SHA512
|
7
7
|
|
8
|
+
Great for:
|
9
|
+
|
10
|
+
- password reset links
|
11
|
+
- email unsubscribe links
|
12
|
+
- click tracking
|
13
|
+
- access control
|
14
|
+
- ...
|
15
|
+
|
8
16
|
|
9
17
|
Install
|
10
18
|
=======
|
11
19
|
- As gem: ` sudo gem install url_store `
|
12
|
-
- As Rails plugin: `
|
20
|
+
- As Rails plugin: ` rails plugin install git://github.com/grosser/url_store.git `
|
13
21
|
|
14
22
|
Usage
|
15
23
|
=====
|
@@ -34,9 +42,11 @@ Usage
|
|
34
42
|
### Tips
|
35
43
|
- If you need multiple UrlStores, just use ` UrlStore.new(:secret => 'sadasd', ...) `
|
36
44
|
- As long as you stay under 2k chars there should be no problems. [max url lengths per browser/server](http://www.boutell.com/newfaq/misc/urllength.html)
|
45
|
+
- Data is not (yet) encrypted, users could read(but not change) the encoded data
|
46
|
+
- Replay attacks are possible <-> add a timestamp to check the freshness of the encoded data
|
37
47
|
|
38
48
|
Author
|
39
49
|
=======
|
40
|
-
[Michael Grosser](http://
|
41
|
-
|
50
|
+
[Michael Grosser](http://grosser.it)<br/>
|
51
|
+
michael@grosser.it<br/>
|
42
52
|
Hereby placed under public domain, do what you want, just do not hold me accountable...
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/lib/url_store.rb
CHANGED
@@ -39,8 +39,8 @@ class UrlStore
|
|
39
39
|
def encoder
|
40
40
|
options = {:secret => SECRET}.merge(@options)
|
41
41
|
if options[:secret] == SECRET
|
42
|
-
warn "WARNING:
|
42
|
+
warn "WARNING: You are using the default secret! Set your own with UrlStore.defaults = {:secret => 'something'}"
|
43
43
|
end
|
44
44
|
UrlStore::CompactEncoder.new(options)
|
45
45
|
end
|
46
|
-
end
|
46
|
+
end
|
data/spec/url_store_spec.rb
CHANGED
@@ -22,7 +22,7 @@ describe UrlStore do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "uses a lot of different chars" do
|
25
|
-
UrlStore.encode(@data).split('').uniq.size.should >=
|
25
|
+
UrlStore.encode(@data).split('').uniq.size.should >= 61
|
26
26
|
end
|
27
27
|
|
28
28
|
it "uses url-save characters" do
|
@@ -62,4 +62,4 @@ describe UrlStore do
|
|
62
62
|
it "has a VERSION" do
|
63
63
|
UrlStore::VERSION.should =~ /^\d+\.\d+\.\d+$/
|
64
64
|
end
|
65
|
-
end
|
65
|
+
end
|
data/url_store.gemspec
CHANGED
@@ -1,47 +1,44 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{url_store}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Grosser"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-03-28}
|
13
13
|
s.description = %q{Data securely stored in urls.}
|
14
14
|
s.email = %q{grosser.michael@gmail.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"README.markdown"
|
17
|
-
]
|
18
15
|
s.files = [
|
19
|
-
"
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
16
|
+
"Gemfile",
|
17
|
+
"Gemfile.lock",
|
18
|
+
"Rakefile",
|
19
|
+
"Readme.md",
|
20
|
+
"VERSION",
|
21
|
+
"lib/url_store.rb",
|
22
|
+
"lib/url_store/compact_encoder.rb",
|
23
|
+
"spec/spec_helper.rb",
|
24
|
+
"spec/url_store/compact_encoder_spec.rb",
|
25
|
+
"spec/url_store_spec.rb",
|
26
|
+
"url_store.gemspec"
|
28
27
|
]
|
29
28
|
s.homepage = %q{http://github.com/grosser/url_store}
|
30
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
31
29
|
s.require_paths = ["lib"]
|
32
|
-
s.rubygems_version = %q{1.
|
30
|
+
s.rubygems_version = %q{1.4.2}
|
33
31
|
s.summary = %q{Data securely stored in urls.}
|
34
32
|
s.test_files = [
|
35
33
|
"spec/spec_helper.rb",
|
36
|
-
|
37
|
-
|
34
|
+
"spec/url_store/compact_encoder_spec.rb",
|
35
|
+
"spec/url_store_spec.rb"
|
38
36
|
]
|
39
37
|
|
40
38
|
if s.respond_to? :specification_version then
|
41
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
42
39
|
s.specification_version = 3
|
43
40
|
|
44
|
-
if Gem::Version.new(Gem::
|
41
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
45
42
|
else
|
46
43
|
end
|
47
44
|
else
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: url_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Michael Grosser
|
@@ -9,7 +15,7 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
18
|
+
date: 2011-03-28 00:00:00 +02:00
|
13
19
|
default_executable:
|
14
20
|
dependencies: []
|
15
21
|
|
@@ -19,11 +25,13 @@ executables: []
|
|
19
25
|
|
20
26
|
extensions: []
|
21
27
|
|
22
|
-
extra_rdoc_files:
|
23
|
-
|
28
|
+
extra_rdoc_files: []
|
29
|
+
|
24
30
|
files:
|
25
|
-
-
|
31
|
+
- Gemfile
|
32
|
+
- Gemfile.lock
|
26
33
|
- Rakefile
|
34
|
+
- Readme.md
|
27
35
|
- VERSION
|
28
36
|
- lib/url_store.rb
|
29
37
|
- lib/url_store/compact_encoder.rb
|
@@ -36,30 +44,36 @@ homepage: http://github.com/grosser/url_store
|
|
36
44
|
licenses: []
|
37
45
|
|
38
46
|
post_install_message:
|
39
|
-
rdoc_options:
|
40
|
-
|
47
|
+
rdoc_options: []
|
48
|
+
|
41
49
|
require_paths:
|
42
50
|
- lib
|
43
51
|
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
44
53
|
requirements:
|
45
54
|
- - ">="
|
46
55
|
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
47
59
|
version: "0"
|
48
|
-
version:
|
49
60
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
50
62
|
requirements:
|
51
63
|
- - ">="
|
52
64
|
- !ruby/object:Gem::Version
|
65
|
+
hash: 3
|
66
|
+
segments:
|
67
|
+
- 0
|
53
68
|
version: "0"
|
54
|
-
version:
|
55
69
|
requirements: []
|
56
70
|
|
57
71
|
rubyforge_project:
|
58
|
-
rubygems_version: 1.
|
72
|
+
rubygems_version: 1.4.2
|
59
73
|
signing_key:
|
60
74
|
specification_version: 3
|
61
75
|
summary: Data securely stored in urls.
|
62
76
|
test_files:
|
63
77
|
- spec/spec_helper.rb
|
64
|
-
- spec/url_store_spec.rb
|
65
78
|
- spec/url_store/compact_encoder_spec.rb
|
79
|
+
- spec/url_store_spec.rb
|