Class: Gxapi::GoogleAnalytics

Inherits:
Object
  • Object
show all
Defined in:
lib/gxapi/google_analytics.rb

Constant Summary collapse

CACHE_KEY =
"gxapi-google-analytics-experiments"

Instance Method Summary collapse

Instance Method Details

#get_experiment(name) ⇒ Gxapi::Ostruct

Gets the experiment that has this name

Parameters:

  • name (String)

    Name of the experiment

Returns:



14
15
16
# File 'lib/gxapi/google_analytics.rb', line 14

def get_experiment(name)
  self.get_experiments.find{|experiment| experiment.name == name}
end

#get_experimentsArray<Gxapi::Ostruct>

return a list of all experiments

Returns:



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/gxapi/google_analytics.rb', line 22

def get_experiments
  @experiments ||= begin
    # fetch our data from the cache
    data = Gxapi.with_error_handling do
      # handle caching
      self.list_experiments_from_cache
    end
    # turn into Gxapi::Ostructs
    (data || []).collect{|data| Ostruct.new(data)}
  end
end

#get_variant(experiment_name) ⇒ Gxapi::Ostruct

get a variant for an experiment

Parameters:

  • experiment_name (String)

Returns:



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/gxapi/google_analytics.rb', line 40

def get_variant(experiment_name)
  # pull in an experiment
  experiment = self.get_experiment(experiment_name)

  if self.run_experiment?(experiment)
    # select variant for the experiment
    variant = self.select_variant(experiment)
    # return if it it's present
    return variant if variant.present?
  end
  # return blank value if we don't have an experiment or don't get
  # a valid value
  return Ostruct.new(
    name: "default",
    index: -1,
    experiment_id: nil
  )
end

#reload_experimentsObject

reset and return a list of all experiments



63
64
65
66
# File 'lib/gxapi/google_analytics.rb', line 63

def reload_experiments
  Gxapi.cache.delete(CACHE_KEY)
  self.get_experiments
end