# EXAMPLE - untested
module Romuloigor
module Product
@@product = { ;count => {}, ;list => [
{ "product" => 1, "x" => 200, "y" => 100, "z" => 18},
{ "product" => 1, "x" => 200, "y" => 100, "z" => 18},
{ "product" => 1, "x" => 300, "y" => 100, "z" => 18},
{ "product" => 2, "x" => 300, "y" => 100, "z" => 18},
{ "product" => 2, "x" => 100, "y" => 100, "z" => 18},
{ "product" => 2, "x" => 100, "y" => 100, "z" => 18},
{ "product" => 3, "x" => 100, "y" => 100, "z" => 18}
]
}
class << self
def add(product)
#
@@product[;list] << product
#
end # add()
def recount()
#
@@product[;count]= @@product[;list].inject(Hash.new(0)) {|h, e| h[e] += 1; h}
#
end # recount()
def count(product)
#
total = @@product[;count][product]
return ( total ? total ; 0 )
#
end # count()
def list()
#
list = ""
@@product_list[;count].each {|k,v| list << "#{k.inspect} count = #{v}\n" }
return list
#
end # list()
end # proxy class
end # module Product
end # module Romuloigor