class ElectricProfile::Question

Constants

TYPES

Attributes

allowMultiple[RW]
answerOptionOrder[RW]
answerOptions[RW]
baseLogic[RW]
categories[RW]
customerId[RW]
derivationLogic[RW]
derived[RW]
error[RW]
exclusiveAnswerOptions[RW]
id[RW]
name[RW]
prompt[RW]
regExValidation[RW]
regExValidationMessage[RW]
type[RW]

Public Class Methods

all() click to toggle source
# File lib/electric_profile_ruby/question.rb, line 97
def self.all
  client = Client.new
  if client.fetch_questions
    client.data["Items"].map { |atts| new atts }
  else
    raise StandardError, client.error
  end
end
find(id) click to toggle source
# File lib/electric_profile_ruby/question.rb, line 88
def self.find(id)
  client = Client.new
  if client.fetch_question(id)
    new client.data
  else
    raise StandardError, client.error
  end
end
new(atts) click to toggle source
# File lib/electric_profile_ruby/question.rb, line 7
def initialize(atts)
  atts = atts.inject({}){ |memo, (k, v) | memo[k.to_sym] = v; memo }
  @id = atts[:id]
  @customerId = atts[:customerId]
  @name = atts[:name]
  @prompt = atts[:prompt]
  @type = atts[:type]
  @answerOptions = atts[:answerOptions] || {}
  @allowMultiple = atts[:allowMultiple] || false
  @categories = atts[:categories] || []
  @exclusiveAnswerOptions = atts[:exclusiveAnswerOptions]
  @answerOptionOrder = atts[:answerOptionOrder]
  @regExValidation = atts[:regExValidation]
  @regExValidationMessage = atts[:regExValidationMessage] || {}
  @baseLogic = atts[:baseLogic]
  @derived = atts[:derived] || false
  @derivationLogic = atts[:derivationLogic] || []
end

Public Instance Methods

initialize_client() click to toggle source
# File lib/electric_profile_ruby/question.rb, line 106
def initialize_client
  @client ||= Client.new
end
save() click to toggle source
# File lib/electric_profile_ruby/question.rb, line 26
def save
  if @id
    save_existing
  else
    save_new
  end
end
save_existing() click to toggle source
# File lib/electric_profile_ruby/question.rb, line 61
def save_existing
  initialize_client
  attributes = {
    id: @id,
    customerId: @customerId,
    name: @name,
    prompt: @prompt,
    type: @type,
    answerOptions: @answerOptions,
    allowMultiple: @allowMultiple,
    categories: @categories,
    exclusiveAnswerOptions: @exclusiveAnswerOptions,
    answerOptionOrder: @answerOptionOrder,
    regExValidation: @regExValidation,
    regExValidationMessage: @regExValidationMessage,
    baseLogic: @baseLogic,
    derived: @derived,
    derivationLogic: @derivationLogic
  }
  if @client.update_question(attributes)
    true
  else
    @error = @client.error
    false
  end
end
save_new() click to toggle source
# File lib/electric_profile_ruby/question.rb, line 34
def save_new
  initialize_client
  attributes = {
    name: @name,
    prompt: @prompt,
    type: @type,
    answerOptions: @answerOptions,
    allowMultiple: @allowMultiple,
    categories: @categories,
    exclusiveAnswerOptions: @exclusiveAnswerOptions,
    answerOptionOrder: @answerOptionOrder,
    regExValidation: @regExValidation,
    regExValidationMessage: @regExValidationMessage,
    baseLogic: @baseLogic,
    derived: @derived,
    derivationLogic: @derivationLogic
  }
  if @client.create_question(attributes)
    @id = @client.data["id"]
    @customerId = @client.data["customerId"]
    true
  else
    @error = @client.error
    false
  end
end