usher 0.7.3 → 0.7.4

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.
Files changed (3) hide show
  1. data/lib/usher/util/generate.rb +20 -36
  2. data/usher.gemspec +2 -2
  3. metadata +3 -2
@@ -3,7 +3,6 @@ class Usher
3
3
  class Generators
4
4
 
5
5
  class Generic
6
-
7
6
  attr_accessor :usher
8
7
 
9
8
  def generate(name, params)
@@ -14,20 +13,11 @@ class Usher
14
13
  raise UnrecognizedException.new unless path
15
14
  case params
16
15
  when nil, Hash
17
- generate_path_for_base_params_with_hash(path, params)
16
+ path.generate_from_hash(params)
18
17
  else
19
- generate_path_for_base_params_with_array(path, Array(params))
18
+ path.generate(*Array(params).slice!(0, path.dynamic_parts.size))
20
19
  end
21
20
  end
22
-
23
- def generate_path_for_base_params_with_hash(path, params)
24
- path.generate_from_hash(params)
25
- end
26
-
27
- def generate_path_for_base_params_with_array(path, params)
28
- path.generate(*params.slice!(0, path.dynamic_parts.size))
29
- end
30
-
31
21
  end
32
22
 
33
23
  class URL < Generic
@@ -114,14 +104,11 @@ class Usher
114
104
 
115
105
  params = extra_params if extra_params
116
106
 
117
- unless !generate_extra || params.nil? || params.empty?
107
+ if generate_extra && params && !params.empty?
118
108
  if usher.consider_destination_keys? && path.route.destination_keys
119
109
  params.delete_if{|k, v| path.route.destination_keys.include?(k)}
120
110
  end
121
- unless params.empty?
122
- result << '?' unless result[??]
123
- result << generate_extra_params(params)
124
- end
111
+ result << '?' << generate_querystring(params) unless params.empty?
125
112
  end
126
113
  result
127
114
  end
@@ -184,25 +171,8 @@ class Usher
184
171
  (url[-1] == ?/) ? url[0..-2] : url
185
172
  end
186
173
 
187
- def path_for_routing_lookup(routing_lookup, params = {})
188
- path = case routing_lookup
189
- when Route::Path
190
- routing_lookup
191
- when Symbol
192
- route = @usher.named_routes[routing_lookup]
193
- raise UnrecognizedException unless route
194
- route.find_matching_path(params || {})
195
- when Route
196
- routing_lookup.find_matching_path(params)
197
- when nil
198
- params.is_a?(Hash) ? usher.path_for_options(params) : raise
199
- end
200
- end
201
-
202
-
203
- def generate_extra_params(params)
174
+ def generate_querystring(params)
204
175
  extra_params_result = ''
205
-
206
176
  params.each do |k,v|
207
177
  case v
208
178
  when Array
@@ -218,8 +188,22 @@ class Usher
218
188
  extra_params_result
219
189
  end
220
190
 
221
- end
222
191
 
192
+ def path_for_routing_lookup(routing_lookup, params = {})
193
+ path = case routing_lookup
194
+ when Route::Path
195
+ routing_lookup
196
+ when Symbol
197
+ route = @usher.named_routes[routing_lookup]
198
+ raise UnrecognizedException unless route
199
+ route.find_matching_path(params || {})
200
+ when Route
201
+ routing_lookup.find_matching_path(params)
202
+ when nil
203
+ params.is_a?(Hash) ? usher.path_for_options(params) : raise
204
+ end
205
+ end
206
+ end
223
207
  end
224
208
  end
225
209
  end
data/usher.gemspec CHANGED
@@ -5,8 +5,8 @@ require "base64"
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "usher"
8
- s.version = "0.7.3"
9
- s.authors = ["Daniel Neighman", "Daniel Vartanov", "Jakub Šťastný", "Joshua Hull"]
8
+ s.version = "0.7.4"
9
+ s.authors = ["Daniel Neighman", "Daniel Vartanov", "Jakub Šťastný", "Joshua Hull", "Davide D'Agostino"].sort
10
10
  s.homepage = "http://github.com/joshbuddy/usher"
11
11
  s.summary = "Pure ruby general purpose router with interfaces for rails, rack, email or choose your own adventure"
12
12
  s.cert_chain = nil
metadata CHANGED
@@ -5,12 +5,13 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 7
8
- - 3
9
- version: 0.7.3
8
+ - 4
9
+ version: 0.7.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Daniel Neighman
13
13
  - Daniel Vartanov
14
+ - Davide D'Agostino
14
15
  - !binary |
15
16
  SmFrdWIgxaDFpWFzdG7DvQ==
16
17