Sha256: 2baee0763c36c56bd3441bc81e63b21ae0ef28ef2904c9d7a45aafe1c6fdfcf7

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

class MembershipKit < Kit
  include ActionView::Helpers::SanitizeHelper

  acts_as_kit :with_approval => true, :admin_only => true do
    approve  :unless => :no_bank_account?

    self.configurable = true

    state_machine do
      state :cancelled, :enter => :kit_cancelled
    end

    when_active do |organization|
      organization.can :access, :reselling
    end
  end

  before_save :sanitize_accessors

  ACCESSORS = [ :marketing_copy_heading, :marketing_copy_sidebar, :thanks_copy, :invitation_email_text_copy ]
  
  ACCESSORS.each do |accessor|
    attr_accessible accessor
  end
  
  store :settings, :accessors => ACCESSORS

  def friendly_name
    "Membership"
  end  

  def no_bank_account?
    errors.add(:requirements, "Your organization needs bank account information first.") if organization.bank_account.nil?
    organization.bank_account.nil?
  end

  def pitch
    "Sell Memberships!"
  end

  def configured?
    membership_state == "configured"
  end

  def configured!
    settings[:membership_state] = "configured"
    save
  end

  def sanitize_accessors
    ACCESSORS.each do |accessor|
      self.send("#{accessor}=", (sanitize self.send(accessor)))
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
artfully_ose-1.2.0.pre.16 app/models/kits/membership_kit.rb