Sha256: 095cc4d042b0d9d92bb0ad06e4f16895f8c0929f9e206ceb8e1a87bce65b89dc

Contents?: true

Size: 694 Bytes

Versions: 4

Compression:

Stored size: 694 Bytes

Contents

require 'base64'

module Proposal

  def self.included(receiver)
    receiver.belongs_to :item, :polymorphic => true
    receiver.validates_presence_of :item_id, :item_type, :candidate_data

    receiver.send :include, InstanceMethods
  end

  module InstanceMethods
    def candidate_attributes
      Marshal.load(Base64.decode64(candidate_data))
    end
    def candidate_attributes=(candidate_attributes)
      self.candidate_data = Base64.encode64(Marshal.dump(candidate_attributes))
    end
  end

end

class ReleasableCandidate < ActiveRecord::Base
  include Proposal
end

class ReleasableCandidateItem < ActiveRecord::Base
  include Proposal
  validates_presence_of :collection_name
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
act_as_releasable-0.0.5 lib/act_as_releasable/models.rb
act_as_releasable-0.0.4 lib/act_as_releasable/models.rb
act_as_releasable-0.0.3 lib/act_as_releasable/models.rb
act_as_releasable-0.0.2 lib/act_as_releasable/models.rb