Sha256: 16f02f181bc622b5fbcf5b2a3fb22415e08474a187b4ad1d7aa0cd58ffe1a8dc

Contents?: true

Size: 628 Bytes

Versions: 36

Compression:

Stored size: 628 Bytes

Contents

#
# a nice feature is that all fattrs are enumerated in the class.  this,
# combined with the fact that the getter method is defined so as to delegate
# to the setter when an argument is given, means bulk initialization and/or
# fattr traversal is very easy.
#
  require 'fattr'

  class C
    fattrs %w( x y z )

    def fattrs
      self.class.fattrs
    end

    def initialize
      fattrs.each_with_index{|a,i| send a, i}
    end

    def to_hash
      fattrs.inject({}){|h,a| h.update a => send(a)}
    end

    def inspect
      to_hash.inspect
    end
  end

  c = C.new
  p c.fattrs 
  p c 

  c.x 'forty-two' 
  p c.x

Version data entries

36 entries across 36 versions & 3 rubygems

Version Path
fattr-2.4.0 samples/d.rb
fattr-2.3.0 samples/d.rb
asana2flowdock-1.0.0 vendor/bundle/ruby/1.9.1/gems/fattr-2.2.2/samples/d.rb
fattr-2.2.2 samples/d.rb
abiquo-etk-0.6.4 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.6.3 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.6.2 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.6.1 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.6.0 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.5.9 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.5.8 vendor/fattr-2.1.0/samples/d.rb
fattr-2.2.1 samples/d.rb
abiquo-etk-0.5.3 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.4.42 vendor/fattr-2.1.0/samples/d.rb
fattr-2.2.0 samples/d.rb
abiquo-etk-0.4.33 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.4.32 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.4.29 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.4.25 vendor/fattr-2.1.0/samples/d.rb
abiquo-etk-0.4.24 vendor/fattr-2.1.0/samples/d.rb