Sha256: 84245217aaa2d2616b0a5a34bb91d62a5b91ae90f2ac99f686164a10c0671203

Contents?: true

Size: 771 Bytes

Versions: 23

Compression:

Stored size: 771 Bytes

Contents

#--
# TODO Perhaps need to make a check against overriding Megas annotated version.
#++

class Module

  # Create an attribute method for both getting
  # and setting an instance variable.
  #
  #   attr_setter :a
  #
  # _is equivalent to_
  #
  #   def a(*args)
  #     if args.size > 0
  #       @a = args[0]
  #       self
  #     else
  #       @a
  #     end
  #   end
  #
  def attr_setter(*args)

    make = {}
    args.each { |a|
      make["#{a}".to_sym] = %{
        def #{a}(*args)
          args.size > 0 ? ( @#{a}=args[0] ; self ) : @#{a}
        end
      }
    }
    module_eval( make.values.join("\n") )

    return make.keys
  end

end



#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#
# TODO

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
facets-1.1.0 lib/facet/module/attr_setter.rb
facets-1.2.0 lib/facets/core/module/attr_setter.rb
facets-1.2.1 lib/facets/core/module/attr_setter.rb
facets-1.3.0 lib/facets/core/module/attr_setter.rb
facets-1.3.3 lib/facets/core/module/attr_setter.rb
facets-1.3.1 lib/facets/core/module/attr_setter.rb
facets-1.3.2 lib/facets/core/module/attr_setter.rb
facets-1.4.0 lib/facets/core/module/attr_setter.rb
facets-1.4.1 lib/facets/core/module/attr_setter.rb
facets-1.4.2 lib/facets/core/module/attr_setter.rb
facets-1.4.3 lib/facets/core/module/attr_setter.rb
facets-1.4.4 lib/facets/core/module/attr_setter.rb
facets-1.4.5 lib/facets/core/module/attr_setter.rb
facets-1.7.38 lib/facets/core/module/attr_setter.rb
facets-1.7.0 lib/facets/core/module/attr_setter.rb
facets-1.7.30 lib/facets/core/module/attr_setter.rb
facets-1.7.46 lib/facets/core/module/attr_setter.rb
facets-1.8.0 lib/facets/core/module/attr_setter.rb
facets-1.8.20 lib/facets/core/module/attr_setter.rb
facets-1.8.49 lib/facets/core/module/attr_setter.rb