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 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