~michaelforrest/use-case-mapper/trunk

« back to all changes in this revision

Viewing changes to vendor/rails/actionpack/lib/action_controller/routing/routing_ext.rb

  • Committer: Richard Lee (Canonical)
  • Date: 2010-10-15 15:17:58 UTC
  • mfrom: (190.1.3 use-case-mapper)
  • Revision ID: richard.lee@canonical.com-20101015151758-wcvmfxrexsongf9d
Merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
class Object
2
 
  def to_param
3
 
    to_s
4
 
  end
5
 
end
6
 
 
7
 
class TrueClass
8
 
  def to_param
9
 
    self
10
 
  end
11
 
end
12
 
 
13
 
class FalseClass
14
 
  def to_param
15
 
    self
16
 
  end
17
 
end
18
 
 
19
 
class NilClass
20
 
  def to_param
21
 
    self
22
 
  end
23
 
end
24
 
 
25
 
class Regexp #:nodoc:
26
 
  def number_of_captures
27
 
    Regexp.new("|#{source}").match('').captures.length
28
 
  end
29
 
 
30
 
  def multiline?
31
 
    options & MULTILINE == MULTILINE
32
 
  end
33
 
 
34
 
  class << self
35
 
    def optionalize(pattern)
36
 
      case unoptionalize(pattern)
37
 
        when /\A(.|\(.*\))\Z/ then "#{pattern}?"
38
 
        else "(?:#{pattern})?"
39
 
      end
40
 
    end
41
 
 
42
 
    def unoptionalize(pattern)
43
 
      [/\A\(\?:(.*)\)\?\Z/, /\A(.|\(.*\))\?\Z/].each do |regexp|
44
 
        return $1 if regexp =~ pattern
45
 
      end
46
 
      return pattern
47
 
    end
48
 
  end
49
 
end