class Podio::Experiment

Public Class Methods

activate_variation(experiment, variation) click to toggle source
# File lib/podio/models/experiment.rb, line 53
def activate_variation(experiment, variation)
  Podio.connection.post("/experiment/#{experiment}/variation/#{variation}/activate")
end
assign_variation(experiment, variation, attributes) click to toggle source
# File lib/podio/models/experiment.rb, line 72
def assign_variation(experiment, variation, attributes)
  Podio.connection.post do |req|
    req.url "/experiment/#{experiment}/variation/#{variation}/assign"
    req.body = attributes
  end
end
associate_subject(identifier) click to toggle source
# File lib/podio/models/experiment.rb, line 21
def associate_subject(identifier)
  Podio.connection.post("/experiment/subject/#{identifier}/associate")
end
combined(supported_variations_map, identifier=nil, attributes={}) click to toggle source
# File lib/podio/models/experiment.rb, line 79
def combined(supported_variations_map, identifier=nil, attributes={})
  connection = Podio.client.oauth_token ? Podio.client.connection : Podio.client.trusted_connection

  body = attributes.merge({
    "experiments" => supported_variations_map
  })

  body["identifier"] = identifier if identifier.present?

  connection.post do |req|
    req.url "/experiment/combined"
    req.body = body
  end.body
end
create_subject(attributes) click to toggle source
# File lib/podio/models/experiment.rb, line 13
def create_subject(attributes)
  response = Podio.client.trusted_connection.post do |req|
    req.url '/experiment/subject/'
    req.body = attributes
  end
  response.body['identifier']
end
create_variation(experiment, variation) click to toggle source
# File lib/podio/models/experiment.rb, line 49
def create_variation(experiment, variation)
  Podio.connection.post("/experiment/#{experiment}/variation/#{variation}")
end
deactivate_variation(experiment, variation) click to toggle source
# File lib/podio/models/experiment.rb, line 57
def deactivate_variation(experiment, variation)
  Podio.connection.post("/experiment/#{experiment}/variation/#{variation}/deactivate")
end
delete_variation(experiment, variation) click to toggle source
# File lib/podio/models/experiment.rb, line 61
def delete_variation(experiment, variation)
  Podio.connection.delete("/experiment/#{experiment}/variation/#{variation}")
end
find(experiment) click to toggle source
# File lib/podio/models/experiment.rb, line 45
def find(experiment)
  member Podio.connection.get("/experiment/#{experiment}").body
end
find_all() click to toggle source
# File lib/podio/models/experiment.rb, line 41
def find_all
  list Podio.connection.get('/experiment/').body
end
find_variation_for_subject(identifier, experiment, supported_variations) click to toggle source
# File lib/podio/models/experiment.rb, line 25
def find_variation_for_subject(identifier, experiment, supported_variations)
  response = Podio.client.trusted_connection.post do |req|
    req.url "/experiment/#{experiment}/subject/#{identifier}"
    req.body = supported_variations
  end
  response.body['variation']
end
find_variation_for_user(experiment, supported_variations) click to toggle source
# File lib/podio/models/experiment.rb, line 33
def find_variation_for_user(experiment, supported_variations)
  response = Podio.connection.post do |req|
    req.url "/experiment/#{experiment}/user"
    req.body = supported_variations
  end
  response.body['variation']
end
update_variation_weight(experiment, variation, weight) click to toggle source
# File lib/podio/models/experiment.rb, line 65
def update_variation_weight(experiment, variation, weight)
  Podio.connection.post do |req|
    req.url "/experiment/#{experiment}/variation/#{variation}/weight"
    req.body = { "weight" => weight }
  end
end