Sha256: ce8a264fba2f6b77df423ae4dc6b17e98bae442b17d2bce0f66f76d51c0300f4
Contents?: true
Size: 778 Bytes
Versions: 4
Compression:
Stored size: 778 Bytes
Contents
# -*- coding: utf-8 -*- require 'tengine/core' module Tengine::Core::FindByName extend ActiveSupport::Concern class Error < Tengine::Errors::NotFound attr_reader :klass, :name, :options def initialize(klass, name, options = nil) @klass, @name, @options = klass, name, options end def message result = "#{klass.name} named #{name.inspect}" result << " with #{options.inspect}" if options && !options.empty? result << ' not found' result end end module ClassMethods def find_by_name(name) where({:name => name}).first end def find_by_name!(name, *args, &block) result = find_by_name(name, *args, &block) raise Error.new(self, name, args.last) unless result result end end end
Version data entries
4 entries across 4 versions & 1 rubygems