Class: CounterCachier::Mounter

Inherits:
Object
  • Object
show all
Defined in:
lib/counter_cachier/mounter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, name, &block) ⇒ Mounter

Returns a new instance of Mounter.



6
7
8
9
10
11
# File 'lib/counter_cachier/mounter.rb', line 6

def initialize(klass, name, &block)
  @klass = klass
  @name = name
  self.cachier = CounterCachier::Cachier.new(name, &block)
  define_methods
end

Instance Attribute Details

#cachierObject

Returns the value of attribute cachier.



4
5
6
# File 'lib/counter_cachier/mounter.rb', line 4

def cachier
  @cachier
end

Instance Method Details

#define_methodsObject



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/counter_cachier/mounter.rb', line 13

def define_methods
  #these local variables are set so they can be used inside the define_method blocks
  name = @name
  cachier = @cachier

  @klass.send :define_method, @name do
    CounterCachier.read(self, cachier)
  end

  @klass.send :define_method, "recalc_#{@name}" do
    cachier.write(self)
  end
end