guillotine 1.3.0 → 1.4.0
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/guillotine.gemspec +2 -2
- data/lib/guillotine.rb +1 -1
- data/lib/guillotine/adapters/active_record_adapter.rb +9 -0
- data/lib/guillotine/adapters/cassandra_adapter.rb +17 -2
- data/lib/guillotine/adapters/memory_adapter.rb +11 -0
- data/lib/guillotine/adapters/mongo_adapter.rb +9 -0
- data/lib/guillotine/adapters/redis_adapter.rb +17 -2
- data/lib/guillotine/adapters/riak_adapter.rb +12 -0
- data/lib/guillotine/adapters/sequel_adapter.rb +9 -0
- data/lib/guillotine/service.rb +1 -1
- metadata +64 -70
data/guillotine.gemspec
CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
|
|
13
13
|
## If your rubyforge_project name is different, then edit it and comment out
|
14
14
|
## the sub! line in the Rakefile
|
15
15
|
s.name = 'guillotine'
|
16
|
-
s.version = '1.
|
17
|
-
s.date = '2012-
|
16
|
+
s.version = '1.4.0'
|
17
|
+
s.date = '2012-12-30'
|
18
18
|
s.rubyforge_project = 'guillotine'
|
19
19
|
|
20
20
|
## Make sure your summary is short. The description may be as long
|
data/lib/guillotine.rb
CHANGED
@@ -60,6 +60,15 @@ module Guillotine
|
|
60
60
|
Url.where(:url => url).delete_all
|
61
61
|
end
|
62
62
|
|
63
|
+
# Public: Removes the assigned short code.
|
64
|
+
#
|
65
|
+
# code - The String code to remove.
|
66
|
+
#
|
67
|
+
# Returns nothing.
|
68
|
+
def clear_code(code)
|
69
|
+
Url.where(:code => code).delete_all
|
70
|
+
end
|
71
|
+
|
63
72
|
def setup
|
64
73
|
conn = Url.connection
|
65
74
|
conn.create_table :urls do |t|
|
@@ -59,9 +59,24 @@ module Guillotine
|
|
59
59
|
# Returns nothing.
|
60
60
|
def clear(url)
|
61
61
|
if code = code_for(url)
|
62
|
-
|
63
|
-
@cassandra.remove("codes", code)
|
62
|
+
purge(code, url)
|
64
63
|
end
|
65
64
|
end
|
65
|
+
|
66
|
+
# Public: Removes the assigned short code.
|
67
|
+
#
|
68
|
+
# code - The String code to remove.
|
69
|
+
#
|
70
|
+
# Returns nothing.
|
71
|
+
def clear_code(url)
|
72
|
+
if url = find(code)
|
73
|
+
purge(code, url)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def purge(code, url)
|
78
|
+
@cassandra.remove("urls", url)
|
79
|
+
@cassandra.remove("codes", code)
|
80
|
+
end
|
66
81
|
end
|
67
82
|
end
|
@@ -58,6 +58,17 @@ module Guillotine
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
|
+
# Public: Removes the assigned short code.
|
62
|
+
#
|
63
|
+
# code - The String code to remove.
|
64
|
+
#
|
65
|
+
# Returns nothing.
|
66
|
+
def clear_code(code)
|
67
|
+
if url = @hash.delete(code)
|
68
|
+
@urls.delete(url)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
61
72
|
def reset
|
62
73
|
@hash = {}
|
63
74
|
@urls = {}
|
@@ -53,6 +53,15 @@ module Guillotine
|
|
53
53
|
@collection.remove(:url => url)
|
54
54
|
end
|
55
55
|
|
56
|
+
# Public: Removes the assigned short code.
|
57
|
+
#
|
58
|
+
# code - The String code to remove.
|
59
|
+
#
|
60
|
+
# Returns nothing.
|
61
|
+
def clear_code(code)
|
62
|
+
@collection.remove(:_id => code)
|
63
|
+
end
|
64
|
+
|
56
65
|
def select(field, query)
|
57
66
|
@collection.find_one(query, {:transformer => @transformers[field]})
|
58
67
|
end
|
@@ -55,11 +55,26 @@ module Guillotine
|
|
55
55
|
# Returns nothing.
|
56
56
|
def clear(url)
|
57
57
|
if code = @redis.get(url_key(url))
|
58
|
-
|
59
|
-
@redis.del code_key(code)
|
58
|
+
purge(code, url)
|
60
59
|
end
|
61
60
|
end
|
62
61
|
|
62
|
+
# Public: Removes the assigned short code.
|
63
|
+
#
|
64
|
+
# code - The String code to remove.
|
65
|
+
#
|
66
|
+
# Returns nothing.
|
67
|
+
def clear_code(code)
|
68
|
+
if url = find(code)
|
69
|
+
purge(code, url)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def purge(code, url)
|
74
|
+
@redis.del url_key(url)
|
75
|
+
@redis.del code_key(code)
|
76
|
+
end
|
77
|
+
|
63
78
|
def code_key(code)
|
64
79
|
"guillotine:hash:#{code}"
|
65
80
|
end
|
@@ -84,6 +84,18 @@ module Guillotine
|
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
|
+
# Public: Removes the assigned short code.
|
88
|
+
#
|
89
|
+
# code - The String code to remove.
|
90
|
+
#
|
91
|
+
# Returns nothing.
|
92
|
+
def clear_code(code)
|
93
|
+
if url_obj = url_object(code)
|
94
|
+
@url_bucket.delete url_key(url_obj.data)
|
95
|
+
@code_bucket.delete url_obj.key
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
87
99
|
# Retrieves a URL riak value from the code.
|
88
100
|
#
|
89
101
|
# code - The String code to lookup the URL.
|
@@ -58,6 +58,15 @@ module Guillotine
|
|
58
58
|
@table.where(:url => url).delete
|
59
59
|
end
|
60
60
|
|
61
|
+
# Public: Removes the assigned short code.
|
62
|
+
#
|
63
|
+
# code - The String code to remove.
|
64
|
+
#
|
65
|
+
# Returns nothing.
|
66
|
+
def clear_code(code)
|
67
|
+
@table.where(:code => code).delete
|
68
|
+
end
|
69
|
+
|
61
70
|
def setup
|
62
71
|
@db.create_table :urls do
|
63
72
|
String :url
|
data/lib/guillotine/service.rb
CHANGED
metadata
CHANGED
@@ -1,71 +1,70 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: guillotine
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 1
|
7
|
-
- 3
|
8
|
-
- 0
|
9
|
-
version: 1.3.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.4.0
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Rick Olson
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
requirements:
|
12
|
+
date: 2012-12-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sinatra
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
24
19
|
- - ~>
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
segments:
|
27
|
-
- 1
|
28
|
-
- 2
|
29
|
-
- 6
|
20
|
+
- !ruby/object:Gem::Version
|
30
21
|
version: 1.2.6
|
31
|
-
name: sinatra
|
32
|
-
requirement: *id001
|
33
|
-
prerelease: false
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
22
|
type: :runtime
|
36
|
-
|
37
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
38
27
|
- - ~>
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
|
41
|
-
|
42
|
-
- 2
|
43
|
-
- 6
|
44
|
-
version: 2.2.6
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.2.6
|
30
|
+
- !ruby/object:Gem::Dependency
|
45
31
|
name: addressable
|
46
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 2.2.6
|
38
|
+
type: :runtime
|
47
39
|
prerelease: false
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
- 0
|
56
|
-
version: "0"
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.2.6
|
46
|
+
- !ruby/object:Gem::Dependency
|
57
47
|
name: rack-test
|
58
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
59
55
|
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
60
62
|
description: Adaptable private URL shortener
|
61
63
|
email: technoweenie@gmail.com
|
62
64
|
executables: []
|
63
|
-
|
64
65
|
extensions: []
|
65
|
-
|
66
66
|
extra_rdoc_files: []
|
67
|
-
|
68
|
-
files:
|
67
|
+
files:
|
69
68
|
- CHANGELOG.md
|
70
69
|
- Gemfile
|
71
70
|
- LICENSE
|
@@ -98,37 +97,31 @@ files:
|
|
98
97
|
- test/riak_adapter_test.rb
|
99
98
|
- test/sequel_adapter_test.rb
|
100
99
|
- test/service_test.rb
|
101
|
-
has_rdoc: true
|
102
100
|
homepage: https://github.com/technoweenie/gitio
|
103
101
|
licenses: []
|
104
|
-
|
105
102
|
post_install_message:
|
106
103
|
rdoc_options: []
|
107
|
-
|
108
|
-
require_paths:
|
104
|
+
require_paths:
|
109
105
|
- lib
|
110
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
requirements:
|
119
|
-
- -
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
|
122
|
-
- 0
|
123
|
-
version: "0"
|
106
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
124
118
|
requirements: []
|
125
|
-
|
126
119
|
rubyforge_project: guillotine
|
127
|
-
rubygems_version: 1.
|
120
|
+
rubygems_version: 1.8.23
|
128
121
|
signing_key:
|
129
122
|
specification_version: 2
|
130
123
|
summary: Adaptable private URL shortener
|
131
|
-
test_files:
|
124
|
+
test_files:
|
132
125
|
- test/active_record_adapter_test.rb
|
133
126
|
- test/app_test.rb
|
134
127
|
- test/cassandra_adapter_test.rb
|
@@ -140,3 +133,4 @@ test_files:
|
|
140
133
|
- test/riak_adapter_test.rb
|
141
134
|
- test/sequel_adapter_test.rb
|
142
135
|
- test/service_test.rb
|
136
|
+
has_rdoc:
|