diff --git a/bin/test b/bin/test new file mode 100644 index 0000000..69367b6 --- /dev/null +++ b/bin/test @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +bundle exec rake spec diff --git a/lib/netbox_client_ruby/entities.rb b/lib/netbox_client_ruby/entities.rb index 8f430bb..16b1fd6 100644 --- a/lib/netbox_client_ruby/entities.rb +++ b/lib/netbox_client_ruby/entities.rb @@ -83,12 +83,14 @@ def find_by(attributes) custom_field = filter_key.to_s.sub('cf_', '') netbox_object.custom_fields[custom_field].to_s == filter_value.to_s - else - if netbox_object.respond_to?(filter_key) - netbox_object.public_send(filter_key).to_s == filter_value.to_s + elsif netbox_object.respond_to?(filter_key) + if netbox_object.public_send(filter_key).is_a?(IPAddress) + netbox_object.public_send(filter_key).to_string == filter_value.to_s else - false + netbox_object.public_send(filter_key).to_s == filter_value.to_s end + else + false end end end diff --git a/spec/netbox_client_ruby/api/ipam/ip_addresses_spec.rb b/spec/netbox_client_ruby/api/ipam/ip_addresses_spec.rb index 5cb6ebc..a6fc839 100644 --- a/spec/netbox_client_ruby/api/ipam/ip_addresses_spec.rb +++ b/spec/netbox_client_ruby/api/ipam/ip_addresses_spec.rb @@ -56,4 +56,10 @@ end end end + + describe '#find_by' do + it 'should return a match with to_string' do + expect(subject.find_by({ address: '10.0.0.1/8' })['address']).to eq('10.0.0.1/8') + end + end end