Module: Leases

Extended by:
Leases
Included in:
Leases
Defined in:
lib/leases.rb,
lib/leases/model.rb,
lib/leases/railtie.rb,
lib/leases/version.rb,
lib/leases/controller.rb,
lib/leases/model/base.rb,
lib/leases/model/callbacks.rb

Defined Under Namespace

Modules: Controller, Model Classes: Railtie

Constant Summary collapse

VERSION =
'1.1.1'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#leasersObject

Returns the value of attribute leasers.



10
11
12
# File 'lib/leases.rb', line 10

def leasers
  @leasers
end

Instance Method Details

#currentObject

Returns the current leaser. This method uses Thread.current and is completely thread-safe.

Example

Leases.current

Returns

Object

The current leaser



61
62
63
# File 'lib/leases.rb', line 61

def current
  Thread.current[:leaser]
end

#current=(leaser) ⇒ Object

Sets the current leaser.

Example

Leases.current = account



72
73
74
# File 'lib/leases.rb', line 72

def current=(leaser)
  Thread.current[:leaser] = leaser
end

#leaser_names(preload = true) ⇒ Object

Leaser names currently used in the app

Example

Leases.leaser_names

Returns

Array

List of leaser names



40
41
42
43
44
45
46
47
# File 'lib/leases.rb', line 40

def leaser_names(preload=true)
  Rails.application.eager_load! if preload

  leasers.map do |l|
    model = l.constantize
    model.all.collect(&:leaser_name)
  end.flatten
end

#leasing(object) ⇒ Object

Add leaser to array of leasers.

Example

leasing(Account)



20
21
22
23
24
25
26
27
# File 'lib/leases.rb', line 20

def leasing(object)
  self.leasers << object.name
  self.leasers.uniq!

  Apartment.tenant_names = Proc.new { Leases.leaser_names }

  object
end