Sha256: 9d317e2efa38de720fe285371b124742a5f5d92ef4cb1aa947ae880045fe4c4d
Contents?: true
Size: 1.06 KB
Versions: 22
Compression:
Stored size: 1.06 KB
Contents
require 'volt/utils/ejson' 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' Volt::EJSON.parse(Volt::EJSON.stringify(self)) 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
22 entries across 22 versions & 1 rubygems