Class: FriendlyRoutes::Params::Collection

Inherits:
Base
  • Object
show all
Defined in:
lib/friendly_routes/params/collection.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#name, #type

Instance Method Summary collapse

Constructor Details

#initialize(name, collection, key_attr) ⇒ Collection

Returns a new instance of Collection.



8
9
10
11
12
13
# File 'lib/friendly_routes/params/collection.rb', line 8

def initialize(name, collection, key_attr)
  super(:collection, name)
  @collection = collection
  @key_attr = key_attr
  check_params
end

Instance Attribute Details

#collectionObject

Returns the value of attribute collection.



6
7
8
# File 'lib/friendly_routes/params/collection.rb', line 6

def collection
  @collection
end

#key_attrObject

Returns the value of attribute key_attr.



6
7
8
# File 'lib/friendly_routes/params/collection.rb', line 6

def key_attr
  @key_attr
end

Instance Method Details

#constraintsObject



15
16
17
# File 'lib/friendly_routes/params/collection.rb', line 15

def constraints
  Regexp.new @collection.all.map(&@key_attr).join('|')
end

#parse(value) ⇒ Object



19
20
21
# File 'lib/friendly_routes/params/collection.rb', line 19

def parse(value)
  @collection.find_by(@key_attr => value).try(:id)
end