module TarvitHelpers::NonSharedAccessors::ClassMethods

Public Instance Methods

non_shared_cattr_accessor(*keys) click to toggle source
# File lib/tarvit-helpers/modules/non_shared_accessors.rb, line 7
      def non_shared_cattr_accessor(*keys)
        keys.each do |key|
          raise "#{key} is not a Symbol" unless key.is_a?(Symbol)
          method=<<METHOD
            def #{key}
              get_non_shared(:#{ key })
            end

            def #{key}=(v)
              set_non_shared(:#{ key },v)
            end
METHOD
          eval(method)
        end
      end

Private Instance Methods

get_non_shared(key) click to toggle source
# File lib/tarvit-helpers/modules/non_shared_accessors.rb, line 33
def get_non_shared(key)
  own_store[key]
end
global_shared_store() click to toggle source
# File lib/tarvit-helpers/modules/non_shared_accessors.rb, line 25
def global_shared_store
  @global_shared_values ||= {}
end
own_store() click to toggle source
# File lib/tarvit-helpers/modules/non_shared_accessors.rb, line 29
def own_store
  global_shared_store[self] ||= {}
end
set_non_shared(key,value) click to toggle source
# File lib/tarvit-helpers/modules/non_shared_accessors.rb, line 37
def set_non_shared(key,value)
  own_store[key]=value
end