Sha256: a16c2629d9cf463639d8a9eaf7fc2ee76ff543f009c3dea8556b60ea1c21404f
Contents?: true
Size: 631 Bytes
Versions: 1
Compression:
Stored size: 631 Bytes
Contents
require "taking/version" module Taking MATCH_METHODS = %i(deconstruct deconstruct_keys) # Unfolds Array arguments # # @param *args [Array[Any]] # # @return [Array[Any]] def self.from(lead = nil, *args, **kwargs) if args.empty? && kwargs.empty? return can_deconstruct?(lead) ? lead : nil end kwargs.empty? ? [lead, *args] : kwargs end def self.from_list(*args) = args # Unfolds Keyword arguments # # @param **args [Hash[Any, Any]] # # @return [Hash[Any, Any]] def self.from_kw(**args) = args def self.can_deconstruct?(o) MATCH_METHODS.any? { o.respond_to?(_1) } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
taking-0.1.0 | lib/taking.rb |