Sha256: 986eed8efa23c4fea956a83b3bebc2498405715b5cb4abc749f1285e10f16515

Contents?: true

Size: 1.29 KB

Versions: 6

Compression:

Stored size: 1.29 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

6 entries across 6 versions & 1 rubygems

Version Path
artfully_ose-1.2.0 app/models/kits/passes_kit.rb
artfully_ose-1.2.0.beta.1 app/models/kits/passes_kit.rb
artfully_ose-1.2.0.alpha.2 app/models/kits/passes_kit.rb
artfully_ose-1.2.0.alpha.1 app/models/kits/passes_kit.rb
artfully_ose-1.2.0.pre.27 app/models/kits/passes_kit.rb
artfully_ose-1.2.0.pre.26 app/models/kits/passes_kit.rb