Module: Susanin

Extended by:
ActiveSupport::Concern
Defined in:
lib/susanin.rb,
lib/susanin/pattern.rb,
lib/susanin/version.rb,
lib/susanin/resource.rb

Defined Under Namespace

Modules: ClassMethods Classes: Pattern, Resource

Constant Summary collapse

VERSION =
"0.1.4"

Instance Method Summary collapse

Instance Method Details

#polymorphic_path(record_or_hash_or_array, options = {}) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'lib/susanin.rb', line 36

def polymorphic_path(record_or_hash_or_array, options={})
  params = susanin_converter(record_or_hash_or_array, options)

  if (params.first.size == 1) && params.first[0].is_a?(String)
    params.first.first
  else
    super(*params)
  end
end

#polymorphic_url(record_or_hash_or_array, options = {}) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/susanin.rb', line 26

def polymorphic_url(record_or_hash_or_array, options={})
  params = susanin_converter(record_or_hash_or_array, options)

  if (params.first.size == 1) && params.first[0].is_a?(String)
    params.first.first
  else
    super(*params)
  end
end

#susaninObject



52
53
54
# File 'lib/susanin.rb', line 52

def susanin
  @susanin ||= Resource.new()
end

#susanin_converter(record_or_hash_or_array, options = {}) ⇒ Object



46
47
48
49
50
# File 'lib/susanin.rb', line 46

def susanin_converter(record_or_hash_or_array, options={})
  params = susanin.url_parameters(Array.wrap(record_or_hash_or_array))
  params_options = params.extract_options!
  [params, options.merge(params_options)]
end