class MarkMapper::Plugins::DynamicQuerying::DynamicFinder
Attributes
attributes[R]
bang[R]
finder[R]
instantiator[R]
method[R]
Public Class Methods
new(method)
click to toggle source
# File lib/mark_mapper/plugins/dynamic_querying/dynamic_finder.rb, line 8 def initialize(method) @method = method @finder = :first @bang = false match end
Public Instance Methods
found?()
click to toggle source
# File lib/mark_mapper/plugins/dynamic_querying/dynamic_finder.rb, line 15 def found? @finder.present? end
raise?()
click to toggle source
# File lib/mark_mapper/plugins/dynamic_querying/dynamic_finder.rb, line 19 def raise? bang == true end
Protected Instance Methods
match()
click to toggle source
# File lib/mark_mapper/plugins/dynamic_querying/dynamic_finder.rb, line 24 def match case method.to_s when /^find_(all_by|by)_([_a-zA-Z]\w*)$/ @finder = :all if $1 == 'all_by' names = $2 when /^find_by_([_a-zA-Z]\w*)\!$/ @bang = true names = $1 when /^find_or_(initialize|create)_by_([_a-zA-Z]\w*)$/ @instantiator = $1 == 'initialize' ? :new : :create names = $2 else @finder = nil end @attributes = names && names.split('_and_') end