Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#### Fixes

* Your contribution here.

* [#384](https://github.com/ruby-grape/grape-entity/pull/384): Fix `inspect` to correctly handle `nil` values - [@fcce](https://github.com/fcce).

### ### 1.0.1 (2024-04-10)

Expand Down
9 changes: 7 additions & 2 deletions lib/grape_entity/entity.rb
Original file line number Diff line number Diff line change
Expand Up @@ -472,8 +472,13 @@ def presented

# Prevent default serialization of :options or :delegator.
def inspect
fields = serializable_hash.map { |k, v| "#{k}=#{v}" }
"#<#{self.class.name}:#{object_id} #{fields.join(' ')}>"
object = serializable_hash
if object.nil?
"#<#{self.class.name}:#{object_id}> nil"
else
fields = object.map { |k, v| "#{k}=#{v}" }
"#<#{self.class.name}:#{object_id} #{fields.join(' ')}>"
end
end

def initialize(object, options = {})
Expand Down
6 changes: 6 additions & 0 deletions spec/grape_entity/entity_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1769,6 +1769,12 @@ class NoPathCharacterEntity < Grape::Entity
expect(data).to_not include '@options'
expect(data).to_not include '@delegator'
end

it 'returns a nil string when subject is nil' do
data = subject.class.new(nil).inspect
expect(data).to include 'nil'
end

end

describe '#value_for' do
Expand Down
Loading