Sha256: fcd99dd3723b56fb548b9b91525da4982f9322f54bdf968e0cd5df6b50a3fa5c
Contents?: true
Size: 724 Bytes
Versions: 1
Compression:
Stored size: 724 Bytes
Contents
# frozen_string_literal: true module Ivo class Value def initialize(data = nil) @data = {} data.each { |k, v| @data[k.to_sym] = v } if data freeze end def respond_to_missing?(method_id, include_private = false) data.key?(method_id) || super end def method_missing(method_id, *args) data.fetch(method_id) { super } end def ==(other) self.class == other.class && data == other.data end alias_method :eql?, :== def hash data.hash end def inspect attributes = data.map { |key, value| "#{key}=#{value.inspect}" }.join(', ') "#<#{self.class.name} #{attributes}>" end protected attr_reader :data end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ivo-0.5.0 | lib/ivo/value.rb |