Sha256: 078c57347b1fdfe0b89237cd0978ed0916a842d1bf880ef1591a389f90515ad6

Contents?: true

Size: 848 Bytes

Versions: 24

Compression:

Stored size: 848 Bytes

Contents

require 'active_record'

module Surveyor
  module Response
    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods
      def acts_as_response
        include Surveyor::Response::InstanceMethods
      end    
    end
    
    module InstanceMethods
      # Returns the response as a particular response_class type
      def as(type_symbol)
        return case type_symbol.to_sym
        when :string, :text, :integer, :float, :datetime
          self.send("#{type_symbol}_value".to_sym)
        when :date
          self.datetime_value.nil? ? nil : self.datetime_value.to_date
        when :time
          self.datetime_value.nil? ? nil : self.datetime_value.to_time
        else # :answer_id
          self.answer_id
        end
      end
    end
  end
end

ActiveRecord::Base.send(:include, Surveyor::Response)

Version data entries

24 entries across 24 versions & 3 rubygems

Version Path
ccls-surveyor-1.0.0 lib/surveyor/acts_as_response.rb
jakewendt-surveyor-0.11.3 lib/surveyor/acts_as_response.rb
surveyor-0.14.5 lib/surveyor/acts_as_response.rb
surveyor-0.14.4 lib/surveyor/acts_as_response.rb
surveyor-0.14.3 lib/surveyor/acts_as_response.rb
surveyor-0.14.2 lib/surveyor/acts_as_response.rb
surveyor-0.14.1 lib/surveyor/acts_as_response.rb
surveyor-0.14.0 lib/surveyor/acts_as_response.rb
surveyor-0.13.0 lib/surveyor/acts_as_response.rb
surveyor-0.12.1 lib/surveyor/acts_as_response.rb
surveyor-0.11.0 lib/surveyor/acts_as_response.rb
surveyor-0.10.0 lib/surveyor/acts_as_response.rb
surveyor-0.9.10 lib/surveyor/acts_as_response.rb
surveyor-0.9.9 lib/surveyor/acts_as_response.rb
surveyor-0.9.8 lib/surveyor/acts_as_response.rb
surveyor-0.9.7 lib/surveyor/acts_as_response.rb
surveyor-0.9.6 lib/surveyor/acts_as_response.rb
surveyor-0.9.5 lib/surveyor/acts_as_response.rb
surveyor-0.9.4 lib/surveyor/acts_as_response.rb
surveyor-0.9.3 lib/surveyor/acts_as_response.rb