app-routes 0.1.11 → 0.1.12

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 (2) hide show
  1. data/lib/app-routes.rb +17 -11
  2. metadata +3 -5
data/lib/app-routes.rb CHANGED
@@ -2,18 +2,25 @@
2
2
 
3
3
  # file: app-routes.rb
4
4
 
5
+ require 'logger'
6
+
5
7
  module AppRoutes
6
8
 
7
- def initialize()
8
- @route = {}
9
+ attr_accessor :routes
10
+
11
+ def initialize(logfile='/tmp/app-routes.log')
12
+ @routes = {}
9
13
  @params = {}
14
+ @logger = Logger.new(logfile,'daily')
10
15
  end
11
16
 
12
17
  def run_route(request)
13
18
 
14
19
  result = nil
15
20
 
16
- route = @route.detect {|key, block| request.match(key) }
21
+ routes = @routes
22
+ return unless routes
23
+ route = routes.detect {|key, block| request.match(key) }
17
24
 
18
25
  if route then
19
26
  key, block = route
@@ -22,20 +29,20 @@ module AppRoutes
22
29
  args = match.captures
23
30
  @params[:captures] = *args
24
31
 
25
- if @route[key][:s] then
26
- raw_params = @route[key][:s].gsub(':','').match(key).captures
32
+ if routes[key][:s] then
33
+ raw_params = routes[key][:s].gsub(':','').match(key).captures
27
34
  splat, raw_params2 = raw_params.each_with_index.partition {|x,i| x == '/*'}
28
35
  @params[:splat] = splat.map {|x,i| v = args[i]; args.delete_at(i); v}
29
36
  @params.merge!(Hash[raw_params2.map{|x,i| x.to_sym}.zip(args)])
30
37
  end
31
38
 
32
39
  begin
33
- result = @route[key][:block].call *args
40
+ result = routes[key][:block].call *args
34
41
  rescue Exception => e
35
42
 
36
43
  err_label = e.message + " :: \n" + e.backtrace.join("\n")
37
- puts err_label
38
- "app-routes error: " + ($!).to_s
44
+ @logger.debug err_label
45
+ @logger.debug "app-routes error: " + ($!).to_s
39
46
  end
40
47
 
41
48
  end
@@ -55,12 +62,11 @@ module AppRoutes
55
62
 
56
63
  def string_get(raw_s, &block)
57
64
  s = "^%s$" % raw_s.gsub(/\:[\w-]+/,'([\w-]+)').gsub(/\/\*/,'(.*)')
58
- @route[Regexp.new s] = {s: raw_s, block: block}
65
+ @routes[Regexp.new s] = {s: raw_s, block: block}
59
66
  end
60
67
 
61
68
  def regex_get(r, &block)
62
- @route[r] = {block: block}
69
+ @routes[r] = {block: block}
63
70
  end
64
71
 
65
72
  end
66
-
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: app-routes
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.11
5
+ version: 0.1.12
6
6
  platform: ruby
7
7
  authors:
8
8
  - James Robertson
@@ -10,8 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-02-22 00:00:00 +00:00
14
- default_executable:
13
+ date: 2012-05-27 00:00:00 Z
15
14
  dependencies: []
16
15
 
17
16
  description:
@@ -24,7 +23,6 @@ extra_rdoc_files: []
24
23
 
25
24
  files:
26
25
  - lib/app-routes.rb
27
- has_rdoc: true
28
26
  homepage:
29
27
  licenses: []
30
28
 
@@ -48,7 +46,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
46
  requirements: []
49
47
 
50
48
  rubyforge_project:
51
- rubygems_version: 1.5.2
49
+ rubygems_version: 1.8.23
52
50
  signing_key:
53
51
  specification_version: 3
54
52
  summary: app-routes