From e44d4c34ac40865529710fd37b0c8f6129a4a504 Mon Sep 17 00:00:00 2001 From: Geremia Taglialatela Date: Thu, 24 Dec 2020 15:38:33 +0100 Subject: [PATCH] Add find_by as an alias of first Allows to use find_by like other ActiveRecord models --- lib/hawk/model/proxy.rb | 1 + lib/hawk/model/querying.rb | 1 + spec/basic_operations_spec.rb | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/lib/hawk/model/proxy.rb b/lib/hawk/model/proxy.rb index 3ff3266..d53e698 100644 --- a/lib/hawk/model/proxy.rb +++ b/lib/hawk/model/proxy.rb @@ -44,6 +44,7 @@ def all(params = {}) def first(params = {}) limit(1).all(params).first end + alias find_by first def first!(params = {}) first(params) or raise Hawk::Error::NotFound, "Can't find #{klass} with #{params.to_json}" diff --git a/lib/hawk/model/querying.rb b/lib/hawk/model/querying.rb index 88591e3..cdec572 100644 --- a/lib/hawk/model/querying.rb +++ b/lib/hawk/model/querying.rb @@ -72,6 +72,7 @@ def from(path) def first(params = {}) limit(1).first(params) end + alias find_by first # Looks for the first record or raises a # {Hawk::Error::NotFound} if not found diff --git a/spec/basic_operations_spec.rb b/spec/basic_operations_spec.rb index d046619..a31dd38 100644 --- a/spec/basic_operations_spec.rb +++ b/spec/basic_operations_spec.rb @@ -44,6 +44,12 @@ class Person < Hawk::Model::Base end end + describe '.find_by' do + it 'is an alias of first' do + expect(Person.method(:find_by).original_name).to eq(:first) + end + end + describe '.all' do specify do stub_request(:GET, "http://zombo.com/people").