Sha256: 344d5b8062d15fbdce6c596509f74eea1385bacfe07d74af6cfe1227013a4c51

Contents?: true

Size: 747 Bytes

Versions: 1

Compression:

Stored size: 747 Bytes

Contents

module GreyscaleRecord
  module Queriable
    extend ActiveSupport::Concern

    included do
      class << self
        def find(id)
          records = where( id: id.to_s )
          raise Errors::RecordNotFound, "#{ self }: Record not found: #{ id }" if records.empty?
          records.first
        end

        def find_by( params = { } )
          results = where params
          raise Errors::RecordNotFound, "#{ self }: Could not find record that matches: #{ params.inspect }" if results.empty?
          results.first
        end

        def all
          where
        end

        def first
          all.first
        end

        def where( params = {} )
          Relation.new self, params 
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
greyscale_record-1.0.0 lib/greyscale_record/queriable.rb