deas 0.23.2 → 0.23.3
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/lib/deas/url.rb +9 -4
- data/lib/deas/version.rb +1 -1
- data/test/unit/url_tests.rb +44 -1
- metadata +18 -18
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
|
-
|
28
|
+
h = params.dup
|
29
29
|
|
30
30
|
# ignore captures in applying params
|
31
|
-
captures =
|
32
|
-
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(
|
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
data/test/unit/url_tests.rb
CHANGED
@@ -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 = {
|
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:
|
4
|
+
hash: 69
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 23
|
9
|
-
-
|
10
|
-
version: 0.23.
|
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:
|
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
|