rewritten 0.11.1 → 0.12.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.
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: ''