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
-
#leasers ⇒ Object
Returns the value of attribute leasers.
Instance Method Summary collapse
-
#current ⇒ Object
Returns the current leaser.
-
#current=(leaser) ⇒ Object
Sets the current leaser.
-
#leaser_names(preload = true) ⇒ Object
Leaser names currently used in the app.
-
#leasing(object) ⇒ Object
Add leaser to array of leasers.
Instance Attribute Details
#leasers ⇒ Object
Returns the value of attribute leasers.
10 11 12 |
# File 'lib/leases.rb', line 10 def leasers @leasers end |
Instance Method Details
#current ⇒ Object
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 |