Sha256: 33782679d442b0e71594dfbae8759b0767544f9687d33f5e4b9f3edb3c1d1310

Contents?: true

Size: 1.45 KB

Versions: 10

Compression:

Stored size: 1.45 KB

Contents

module Forms
  module Tags
    module Responses
      
      class << self
        
        def current(tag, request)
          response = nil
          if tag.locals.response.present?
            response = tag.locals.response
          elsif tag.locals.page.request.present?
            session = tag.locals.page.request.session[:form_response]
            begin
              response = Response.find(session)
            rescue
              if session == Object
                response  = Response.create
                tag.locals.page.request.session[:form_response] = result.id
              end
            end
          end
          
          response
        end
      
        # Returns the value from a hash when in input key is sent 
        # @source = hash
        # @key 
        def retrieve(source, key)
          result = nil
          
          if source.present?
            data = key.gsub("[","|").gsub("]","").split("|")
            
            if data.present?
              result = source.fetch(data[0].to_sym)
              data.delete_at(0)
              
              if data.length and result.present?
                data.each do |i|
                  result = result.fetch(i.to_sym) rescue nil
                end
              end
            end
          end
          
          result
        end
        
        def clear(tag)
          tag.locals.response.update_attribute('result', nil)
        end
      
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
radiant-forms-extension-3.2.8 lib/forms/tags/responses.rb
radiant-forms-extension-3.3.2 lib/forms/tags/responses.rb
radiant-forms-extension-3.3.1 lib/forms/tags/responses.rb
radiant-forms-extension-3.3.0 lib/forms/tags/responses.rb
radiant-forms-extension-3.2.7 lib/forms/tags/responses.rb
radiant-forms-extension-3.2.6 lib/forms/tags/responses.rb
radiant-forms-extension-3.2.5 lib/forms/tags/responses.rb
radiant-forms-extension-3.2.4 lib/forms/tags/responses.rb
radiant-forms-extension-3.2.2 lib/forms/tags/responses.rb
radiant-forms-extension-3.2.1 lib/forms/tags/responses.rb