Sha256: 0e386ec5254076f13efb18add9ae32f62313c89f7a87fb2a95b08b39ddb8bb2d
Contents?: true
Size: 713 Bytes
Versions: 147
Compression:
Stored size: 713 Bytes
Contents
# frozen_string_literal: true class Object # A duck-type assistant method. For example, Active Support extends Date # to define an <tt>acts_like_date?</tt> method, and extends Time to define # <tt>acts_like_time?</tt>. As a result, we can do <tt>x.acts_like?(:time)</tt> and # <tt>x.acts_like?(:date)</tt> to do duck-type-safe comparisons, since classes that # we want to act like Time simply need to define an <tt>acts_like_time?</tt> method. def acts_like?(duck) case duck when :time respond_to? :acts_like_time? when :date respond_to? :acts_like_date? when :string respond_to? :acts_like_string? else respond_to? :"acts_like_#{duck}?" end end end
Version data entries
147 entries across 138 versions & 16 rubygems