Sha256: c136b1fa16f62e7303cb90e0c328617a0b53575b30fc7d62aa9896927231e2e4
Contents?: true
Size: 1.01 KB
Versions: 10
Compression:
Stored size: 1.01 KB
Contents
class Object # Setup a default pretty_inspect # alias_method :pretty_inspect, :inspect def instance_values Hash[instance_variables.map { |name| [name[1..-1], instance_variable_get(name)] }] end def html_inspect inspect.gsub('<', '<').gsub('>', '>') end # TODO: Need a real implementation of this def deep_clone if RUBY_PLATFORM == 'opal' JSON.parse(to_json) else Marshal.load(Marshal.dump(self)) end end # Convert a non-promise value into a resolved promise. Resolve the block if # it takes one. def then(&block) promisify_and_run_method(:then, &block) end # def fail(&block) # promisify_and_run_method(:fail, &block) # end def try(*a, &b) if a.empty? && block_given? yield self else public_send(*a, &b) if respond_to?(a.first) end end private def promisify_and_run_method(method_name, &block) promise = Promise.new.resolve(self) promise = promise.send(method_name, &block) if block promise end end
Version data entries
10 entries across 10 versions & 1 rubygems