Module: Proposal::CanProposeClassMethods

Defined in:
lib/proposal/engine.rb

Overview

Module for adding in class methods to object. For example:

Example

User < ActiveRecord::Base
  can_propose
end

Instance Method Summary collapse

Instance Method Details

#proposal_optionsObject

Getter for @proposal_options



75
76
77
# File 'lib/proposal/engine.rb', line 75

def proposal_options
  @proposal_options
end

#proposalsObject

Delegate method to return all the proposals for the ORM object.



89
90
91
# File 'lib/proposal/engine.rb', line 89

def proposals
  Adapter.where proposable_type: self.to_s
end

#propose(resource = nil) ⇒ Object

Class method for returning a new instance of Adapter

Optional resource argument that the ORM stores a reference to. This enables the email address to have multiple proposals for different unique resources.



84
85
86
# File 'lib/proposal/engine.rb', line 84

def propose resource = nil
  Adapter.new @proposal_options.merge resource: resource
end

#set_proposal_options(options = {}) ⇒ Object

Class method for configuring default behaviour in ORM object.

Options

  • :expires - A proc that returns a DateTime

  • :expects - Symbol or array of expected keys in arguments“



70
71
72
# File 'lib/proposal/engine.rb', line 70

def set_proposal_options options = {}
  @proposal_options = options.merge proposable_type: self.to_s
end