deas 0.23.2 → 0.23.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/deas/url.rb CHANGED
@@ -25,13 +25,14 @@ module Deas
25
25
 
26
26
  def apply_hashed(path, params)
27
27
  # don't alter the given params
28
- hash = params.dup
28
+ h = params.dup
29
29
 
30
30
  # ignore captures in applying params
31
- captures = hash.delete(:captures) || hash.delete('captures') || []
32
- splat = hash.delete(:splat) || hash.delete('splat') || []
31
+ captures = h.delete(:captures) || h.delete('captures') || []
32
+ splat = h.delete(:splat) || h.delete('splat') || []
33
+ anchor = h.delete(:'#') || h.delete('#') || nil
33
34
 
34
- apply_extra(apply_named(apply_splat(@path, splat), hash), hash)
35
+ apply_anchor(apply_extra(apply_named(apply_splat(path, splat), h), h), anchor)
35
36
  end
36
37
 
37
38
  def apply_splat(path, params)
@@ -53,5 +54,9 @@ module Deas
53
54
  params.empty? ? path : "#{path}?#{Deas::Cgi.http_query(params)}"
54
55
  end
55
56
 
57
+ def apply_anchor(path, anchor)
58
+ anchor.to_s.empty? ? path : "#{path}##{anchor}"
59
+ end
60
+
56
61
  end
57
62
  end
data/lib/deas/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Deas
2
- VERSION = "0.23.2"
2
+ VERSION = "0.23.3"
3
3
  end
@@ -61,6 +61,44 @@ class Deas::Url
61
61
  })
62
62
  end
63
63
 
64
+ should "ignore any 'captures'" do
65
+ exp_path = "/a/goose/cooked/well"
66
+ assert_equal exp_path, subject.path_for({
67
+ 'some' => 'a',
68
+ :thing => 'goose',
69
+ 'splat' => ['cooked', 'well'],
70
+ 'captures' => 'some-captures'
71
+ })
72
+ end
73
+
74
+ should "append anchors" do
75
+ exp_path = "/a/goose/cooked/well#an-anchor"
76
+ assert_equal exp_path, subject.path_for({
77
+ 'some' => 'a',
78
+ :thing => 'goose',
79
+ 'splat' => ['cooked', 'well'],
80
+ '#' => 'an-anchor'
81
+ })
82
+ end
83
+
84
+ should "ignore empty anchors" do
85
+ exp_path = "/a/goose/cooked/well"
86
+ assert_equal exp_path, subject.path_for({
87
+ 'some' => 'a',
88
+ :thing => 'goose',
89
+ 'splat' => ['cooked', 'well'],
90
+ '#' => nil
91
+ })
92
+
93
+ exp_path = "/a/goose/cooked/well"
94
+ assert_equal exp_path, subject.path_for({
95
+ 'some' => 'a',
96
+ :thing => 'goose',
97
+ 'splat' => ['cooked', 'well'],
98
+ '#' => ''
99
+ })
100
+ end
101
+
64
102
  should "generate given ordered params only" do
65
103
  exp_path = "/a/:thing/*/*"
66
104
  assert_equal exp_path, subject.path_for('a')
@@ -103,7 +141,12 @@ class Deas::Url
103
141
  end
104
142
 
105
143
  should "not alter the given params" do
106
- params = {'some' => 'thing'}
144
+ params = {
145
+ 'some' => 'thing',
146
+ :captures => 'captures',
147
+ :splat => 'splat',
148
+ '#' => 'anchor'
149
+ }
107
150
  exp_params = params.dup
108
151
 
109
152
  subject.path_for(params)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deas
3
3
  version: !ruby/object:Gem::Version
4
- hash: 71
4
+ hash: 69
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 23
9
- - 2
10
- version: 0.23.2
9
+ - 3
10
+ version: 0.23.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kelly Redding
@@ -16,11 +16,11 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-11-26 00:00:00 Z
19
+ date: 2014-02-07 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: ns-options
23
22
  prerelease: false
23
+ type: :runtime
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
@@ -39,11 +39,11 @@ dependencies:
39
39
  - 1
40
40
  - 4
41
41
  version: 1.1.4
42
- type: :runtime
43
42
  version_requirements: *id001
43
+ name: ns-options
44
44
  - !ruby/object:Gem::Dependency
45
- name: rack
46
45
  prerelease: false
46
+ type: :runtime
47
47
  requirement: &id002 !ruby/object:Gem::Requirement
48
48
  none: false
49
49
  requirements:
@@ -54,11 +54,11 @@ dependencies:
54
54
  - 1
55
55
  - 5
56
56
  version: "1.5"
57
- type: :runtime
58
57
  version_requirements: *id002
58
+ name: rack
59
59
  - !ruby/object:Gem::Dependency
60
- name: sinatra
61
60
  prerelease: false
61
+ type: :runtime
62
62
  requirement: &id003 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
@@ -69,11 +69,11 @@ dependencies:
69
69
  - 1
70
70
  - 4
71
71
  version: "1.4"
72
- type: :runtime
73
72
  version_requirements: *id003
73
+ name: sinatra
74
74
  - !ruby/object:Gem::Dependency
75
- name: assert
76
75
  prerelease: false
76
+ type: :development
77
77
  requirement: &id004 !ruby/object:Gem::Requirement
78
78
  none: false
79
79
  requirements:
@@ -84,11 +84,11 @@ dependencies:
84
84
  - 2
85
85
  - 3
86
86
  version: "2.3"
87
- type: :development
88
87
  version_requirements: *id004
88
+ name: assert
89
89
  - !ruby/object:Gem::Dependency
90
- name: assert-mocha
91
90
  prerelease: false
91
+ type: :development
92
92
  requirement: &id005 !ruby/object:Gem::Requirement
93
93
  none: false
94
94
  requirements:
@@ -98,11 +98,11 @@ dependencies:
98
98
  segments:
99
99
  - 0
100
100
  version: "0"
101
- type: :development
102
101
  version_requirements: *id005
102
+ name: assert-mocha
103
103
  - !ruby/object:Gem::Dependency
104
- name: assert-rack-test
105
104
  prerelease: false
105
+ type: :development
106
106
  requirement: &id006 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
@@ -112,11 +112,11 @@ dependencies:
112
112
  segments:
113
113
  - 0
114
114
  version: "0"
115
- type: :development
116
115
  version_requirements: *id006
116
+ name: assert-rack-test
117
117
  - !ruby/object:Gem::Dependency
118
- name: haml
119
118
  prerelease: false
119
+ type: :development
120
120
  requirement: &id007 !ruby/object:Gem::Requirement
121
121
  none: false
122
122
  requirements:
@@ -126,8 +126,8 @@ dependencies:
126
126
  segments:
127
127
  - 0
128
128
  version: "0"
129
- type: :development
130
129
  version_requirements: *id007
130
+ name: haml
131
131
  description: Handler-based web framework powered by Sinatra
132
132
  email:
133
133
  - kelly@kellyredding.com