Sha256: 2255a5948a02c076af24afebcd3a8b955456e85c19b6af9ef1d89359bfdb3ae6

Contents?: true

Size: 1.28 KB

Versions: 2

Compression:

Stored size: 1.28 KB

Contents

class PassesKit < 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, :passes
    end
  end

  before_save :initialize_accessors
  before_save :sanitize_accessors

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

  def friendly_name
    "Passes"
  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 Passes!"
  end

  def configured?
    passes_state == "configured"
  end

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

  def initialize_accessors
    ACCESSORS.each do |accessor|
      self.send("#{accessor}=", "") if self.send("#{accessor}").nil?
    end  
  end

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
artfully_ose-1.2.0.pre.24 app/models/kits/passes_kit.rb
artfully_ose-1.2.0.pre.23 app/models/kits/passes_kit.rb