Skip to content

Commit 819b104

Browse files
SijaAry Borenszweig
authored and
Ary Borenszweig
committedJan 4, 2017
Add NamedTuple#has_key?(key : String) overload
See #3824
1 parent 8aff8af commit 819b104

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed
 

‎spec/std/named_tuple_spec.cr

+8-1
Original file line numberDiff line numberDiff line change
@@ -207,13 +207,20 @@ describe "NamedTuple" do
207207
i.should eq(2)
208208
end
209209

210-
it "does has_key?" do
210+
it "does has_key? with symbol" do
211211
tup = {a: 1, b: 'a'}
212212
tup.has_key?(:a).should be_true
213213
tup.has_key?(:b).should be_true
214214
tup.has_key?(:c).should be_false
215215
end
216216

217+
it "does has_key? with string" do
218+
tup = {a: 1, b: 'a'}
219+
tup.has_key?("a").should be_true
220+
tup.has_key?("b").should be_true
221+
tup.has_key?("c").should be_false
222+
end
223+
217224
it "does empty" do
218225
{a: 1}.empty?.should be_false
219226
end

‎src/named_tuple.cr

+8
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,14 @@ struct NamedTuple
219219
false
220220
end
221221

222+
# ditto
223+
def has_key?(key : String) : Bool
224+
{% for key in T %}
225+
return true if {{key.stringify}} == key
226+
{% end %}
227+
false
228+
end
229+
222230
# Appends a string representation of this named tuple to the given `IO`.
223231
#
224232
# ```

0 commit comments

Comments
 (0)
Please sign in to comment.