rewritten 0.11.1 → 0.12.0

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: a8ba08046a15f42633b2dec58e2e247ea7846bf4
4
- data.tar.gz: bca98d1baffa155d808177bd5a39757af51d9d39
3
+ metadata.gz: a4df6b29c36a9d6da1c0cc658f49a3f9d4a9f4d5
4
+ data.tar.gz: 4274875b1c6dd086e738f164c33fbf1184684e7a
5
5
  SHA512:
6
- metadata.gz: 6afd910262c5cb94bc94dc01d2e378c18f4e9e22d1082257beacbafc9f00d8f48f3e380c3cc45b0274c28f5feb148b20e134846672fcc6fbdc8acdd0020eae76
7
- data.tar.gz: d2fcdfb104a789539f788c7ca98300c3618d85d9b233429ca0137e3a0a7c4425dfaf5b6a6ef5f6282b6ffe30beb4e7d78ba87ced5da99f3b9b063e8d595b66b1
6
+ metadata.gz: 2bc012992fd582dd180b35551a00d0b994069b118cee7d307129939f69670f7fe584c66072aaa6764fbebc647929630110e829e0e664571c8841dd8cb163d0e5
7
+ data.tar.gz: a7054b44d16800e07edf0261b3e2215a3eabc04252869ed168f01a8142895756f90e6476f519aab3d69c5fbd3e625d2105ae6b05b2fb41bcbb362570abec7f22
data/HISTORY.rdoc CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.12.0
2
+
3
+ * Add the Rewritten::Document module that adds virtual attribute accessors (rewritten_url) to a rails model
4
+
1
5
  == 0.11.1
2
6
 
3
7
  * Fixes bug with non-translated urls longer than one segment
@@ -0,0 +1,27 @@
1
+ module Rewritten
2
+ module Document
3
+
4
+ def rewritten_url=(new_translation)
5
+ Rewritten.add_translation(new_translation, url_for(self))
6
+ end
7
+
8
+ def rewritten_url
9
+ return "" unless persisted?
10
+ Rewritten.get_current_translation(url_for(self))
11
+ end
12
+
13
+ def rewritten_urls
14
+ return [] unless persisted?
15
+ Rewritten.get_all_translations(url_for(self))
16
+ end
17
+
18
+ def has_rewritten_url?
19
+ Rewritten.exist_translation_for?(url_for(self))
20
+ end
21
+
22
+ def remove_rewritten_urls
23
+ Rewritten.remove_all_translations(url_for(self))
24
+ end
25
+
26
+ end
27
+ end
@@ -1,4 +1,4 @@
1
1
  module Rewritten
2
- VERSION = "0.11.1"
2
+ VERSION = "0.12.0"
3
3
  end
4
4
 
data/lib/rewritten.rb CHANGED
@@ -6,6 +6,7 @@ require 'rack/url'
6
6
  require 'rack/record'
7
7
  require 'rack/html'
8
8
  require 'rack/subdomain'
9
+ require 'rewritten/document'
9
10
 
10
11
  module Rewritten
11
12
  include Helpers
@@ -0,0 +1,59 @@
1
+ require 'test_helper'
2
+
3
+ describe Rewritten::Document do
4
+
5
+ before do
6
+ class Product
7
+ include Rewritten::Document
8
+ end
9
+ @instance = Product.new
10
+ def @instance.url_for(object); '/products/123'; end
11
+ def @instance.persisted?; true; end
12
+ end
13
+
14
+ it 'must add the rewritten methods to the class' do
15
+ @instance.respond_to?(:rewritten_url=).must_equal true
16
+ @instance.respond_to?(:rewritten_url).must_equal true
17
+ @instance.respond_to?(:has_rewritten_url?).must_equal true
18
+ end
19
+
20
+ it 'must return empty string when not persisted' do
21
+
22
+ def @instance.persisted?; false; end
23
+
24
+ @instance.rewritten_url.must_equal ""
25
+ end
26
+
27
+ it 'must return translation when persisted' do
28
+ Rewritten.add_translation('/foo/bar', '/products/123')
29
+ @instance.rewritten_url.must_equal '/foo/bar'
30
+ end
31
+
32
+ it 'must return all translations as array' do
33
+
34
+ Rewritten.add_translation('/foo/bar', '/products/123')
35
+ Rewritten.add_translation('/foo/baz', '/products/123')
36
+
37
+ @instance.rewritten_urls.must_equal ['/foo/bar', '/foo/baz']
38
+
39
+ end
40
+
41
+ it 'must add a new translation' do
42
+ @instance.has_rewritten_url?.must_equal false
43
+ @instance.rewritten_url = '/foo/baz'
44
+ Rewritten.get_current_translation('/products/123').must_equal '/foo/baz'
45
+ @instance.has_rewritten_url?.must_equal true
46
+ end
47
+
48
+ it 'must remove all translation' do
49
+ @instance.rewritten_url = '/foo/bar'
50
+ @instance.rewritten_url = '/foo/baz'
51
+ @instance.remove_rewritten_urls
52
+ @instance.rewritten_urls.must_equal []
53
+ end
54
+
55
+ end
56
+
57
+
58
+
59
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rewritten
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kai Rubarth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-21 00:00:00.000000000 Z
11
+ date: 2013-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-namespace
@@ -165,6 +165,7 @@ files:
165
165
  - lib/rack/url.rb
166
166
  - lib/rewritten.rb
167
167
  - lib/rewritten/config.ru
168
+ - lib/rewritten/document.rb
168
169
  - lib/rewritten/helpers.rb
169
170
  - lib/rewritten/rails.rb
170
171
  - lib/rewritten/rails/url_helpers.rb
@@ -198,6 +199,7 @@ files:
198
199
  - rewritten.gemspec
199
200
  - test/rack/rewritten_html_test.rb
200
201
  - test/rack/rewritten_url_test.rb
202
+ - test/rewritten/document_test.rb
201
203
  - test/rewritten_test.rb
202
204
  - test/test_helper.rb
203
205
  homepage: ''