module HasUuid::ActiveRecord::FinderMethods
Public Instance Methods
find_one(id)
click to toggle source
Calls superclass method
# File lib/has_uuid/active_record/finder_methods.rb, line 6 def find_one(id) if id.is_a?(::UUIDTools::UUID) || id.to_s =~ VALID_FORMAT id = ::UUIDTools::UUID.parse(id) if id.is_a?(String) return self.find_by_uuid!(id) end super end
find_some(ids)
click to toggle source
Calls superclass method
# File lib/has_uuid/active_record/finder_methods.rb, line 14 def find_some(ids) if ids.length > 0 && ids.inject(true) { |r, id| r && (id.is_a?(::UUIDTools::UUID) || id.to_s =~ VALID_FORMAT) } uuids = ids.map do |id| id = ::UUIDTools::UUID.parse(id) if id.is_a?(String) id end arr = where(table[:uuid].in(uuids)) if ::ActiveRecord::VERSION::MAJOR >= 4 result = arr.load else result = arr.all end expected_size = if @limit_value && ids.size > @limit_value @limit_value else ids.size end if @offset_value && (ids.size - @offset_value < expected_size) expected_size = ids.size - @offset_value end if result.size == expected_size result else conditions = arel.where_sql conditions = " [#{conditions}]" if conditions error = "Couldn't find all #{@klass.name.pluralize} with UUIDs " error << "(#{ids.join(", ")})#{conditions} (found #{result.size} results, but was looking for #{expected_size})" raise ::ActiveRecord::RecordNotFound, error end else super end end