Sha256: d61053801ab4806ffb2029c3bc9e4552d4ea18a99d222c92123d2cb5e3e111aa
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
=begin = Association =end class Association < Array def initialize( key, value ) self.replace [ key, value ] end def key self[0] end def value self[1] end end module Kernel def >>( associate ) Association.new( self, associate ) end end # of course we need to teach array about working with associations class Array alias_method(:_get, :"[]") private :_get def [](i) r = self._get(i) return r.value if r.is_a? Association return r end alias_method(:_at, :at) private :_at def at(i) r = self._at(i) return r.value if r.is_a? Association return r end alias_method( :_values_at, :values_at) private :_values_at def values_at(*args) r = self.values_at(i) if r return r.collect{ |e| e.is_a?(Association) ? e.value : e } end return r end end # --- development testing --- if $0 == __FILE__ omap = [ :a >> 1, :b >> 2 ] p omap[0] omap.each { |a| p a } puts "---" omap.each { |k,v| p k,v } end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
carats-0.3.0 | lib/carat-dev/association/association.rb |