rewritten 0.15.0 → 0.15.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 452e88a0bbdf356f472e86034e0df828f4708899
4
- data.tar.gz: bb3f1342257f6aa9414aada49a6ad2af7daf4af8
3
+ metadata.gz: e1210f162d2a424e8819906e76dbc1a823928768
4
+ data.tar.gz: 0a3856a7e3dbf5877613bf1c7660f4475fd10d8a
5
5
  SHA512:
6
- metadata.gz: a5f725ac82a9353f1eaff6dfdb01655dde86ef5e1e3b17df701dad7215aa4d417d26ce5633195d5ed2cd0a35648655b0daba426fd84d7c89bea91f5ccd94fcbb
7
- data.tar.gz: c4fe89affbe1216585006c25dc3cede93be62ffb4ab839f8bd053185e2c2f14a4200b77e873a0f26413257f6989ee3e928e2e379244bd6f24a885eb3024312f6
6
+ metadata.gz: ab7065074780644d85c84ee8a8747fd5b0a290cf8a2aa0d6c4a521e44cd6e8158e2200defc42cd7a6a53938ab4d106b066931bc76c55047aa3d2ef09ddd2dec8
7
+ data.tar.gz: db4d6bc68a2e8b2bf8c177b45a28ac12f798d5c4872259611cf0b9943fb6725f9299723ce22f4b7dd8bde3ab4d46e5e20610621ca22a9473500d2713de09958c
@@ -1,29 +1,37 @@
1
+ require 'active_support/inflector'
2
+
1
3
  module Rewritten
2
4
  module Document
5
+ include ActiveSupport::Inflector
3
6
 
7
+ def path
8
+ plural = ActiveSupport::Inflector.pluralize(self.class.to_s)
9
+ resources = ActiveSupport::Inflector.underscore(plural)
10
+ "/#{resources}/#{self.id}"
11
+ end
4
12
 
5
13
  def rewritten_url
6
14
  return "" unless persisted?
7
- Rewritten.get_current_translation(polymorphic_url(self, :only_path => true))
15
+ Rewritten.get_current_translation(path)
8
16
  end
9
17
 
10
18
  def rewritten_url=(new_url)
11
19
  if !new_url.nil? && new_url != "" && new_url != rewritten_url
12
- Rewritten.add_translation(new_url, polymorphic_url(self, :only_path => true))
20
+ Rewritten.add_translation(new_url, path)
13
21
  end
14
22
  end
15
23
 
16
24
  def rewritten_urls
17
25
  return [] unless persisted?
18
- Rewritten.get_all_translations(polymorphic_url(self, :only_path => true))
26
+ Rewritten.get_all_translations(path)
19
27
  end
20
28
 
21
29
  def has_rewritten_url?
22
- Rewritten.exist_translation_for?(polymorphic_url(self, :only_path => true))
30
+ Rewritten.exist_translation_for?(path)
23
31
  end
24
32
 
25
33
  def remove_rewritten_urls
26
- Rewritten.remove_all_translations(polymorphic_url(self, :only_path => true))
34
+ Rewritten.remove_all_translations(path)
27
35
  end
28
36
 
29
37
  end
@@ -1,4 +1,4 @@
1
1
  module Rewritten
2
- VERSION = "0.15.0"
2
+ VERSION = "0.15.1"
3
3
  end
4
4
 
data/rewritten.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.add_dependency "vegas", "~> 0.1.2"
22
22
  s.add_dependency "sinatra", ">= 0.9.2"
23
23
  s.add_dependency "multi_json", "~> 1.0"
24
+ s.add_dependency "activesupport"
24
25
 
25
26
  s.add_development_dependency "rake"
26
27
  s.add_development_dependency "minitest"
@@ -7,7 +7,8 @@ describe Rewritten::Document do
7
7
  include Rewritten::Document
8
8
  end
9
9
  @instance = Product.new
10
- def @instance.polymorphic_url(object, options={}); '/products/123'; end
10
+ def @instance.id; 123; end
11
+ def @instance.polymorphic_url(object, options={}); "/products/#{self.id}"; end
11
12
  def @instance.persisted?; true; end
12
13
  end
13
14
 
@@ -24,9 +25,23 @@ describe Rewritten::Document do
24
25
  @instance.rewritten_url.must_equal ""
25
26
  end
26
27
 
27
- it 'must return translation when persisted' do
28
- Rewritten.add_translation('/foo/bar', '/products/123')
29
- @instance.rewritten_url.must_equal '/foo/bar'
28
+ describe 'add translation' do
29
+
30
+ describe 'url_for not overriden' do
31
+ it 'must return translation when persisted' do
32
+ Rewritten.add_translation('/foo/bar', '/products/123')
33
+ @instance.rewritten_url.must_equal '/foo/bar'
34
+ end
35
+ end
36
+
37
+ describe 'url_to overriden' do
38
+ it 'must return translation when persisted' do
39
+ Rewritten.add_translation('/foo/bar', '/products/123')
40
+ def @instance.polymorphic_url(object, options={}); '/foo/bar'; end
41
+ Rewritten.translate(@instance.rewritten_url).must_equal '/products/123'
42
+ end
43
+ end
44
+
30
45
  end
31
46
 
32
47
  it 'must return all translations as array' do
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.15.0
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kai Rubarth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-18 00:00:00.000000000 Z
11
+ date: 2015-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-namespace
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activesupport
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -228,4 +242,10 @@ rubygems_version: 2.2.2
228
242
  signing_key:
229
243
  specification_version: 4
230
244
  summary: A redis-based URL rewriting engine
231
- test_files: []
245
+ test_files:
246
+ - test/rack/rewritten_canonical_test.rb
247
+ - test/rack/rewritten_html_test.rb
248
+ - test/rack/rewritten_url_test.rb
249
+ - test/rewritten/document_test.rb
250
+ - test/rewritten_test.rb
251
+ - test/test_helper.rb