Class: Prismic::Experiments

Inherits:
Object
  • Object
show all
Defined in:
lib/prismic/experiments.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(draft, running) ⇒ Experiments

Returns a new instance of Experiments.



10
11
12
13
# File 'lib/prismic/experiments.rb', line 10

def initialize(draft, running)
  @draft = draft
  @running = running
end

Instance Attribute Details

#draftArray<Experiment> (readonly)

Returns list of all experiments from Prismic.

Returns:

  • (Array<Experiment>)

    list of all experiments from Prismic



6
7
8
# File 'lib/prismic/experiments.rb', line 6

def draft
  @draft
end

#runningArray<Experiments> (readonly)

Returns list of all experiments from Prismic.

Returns:

  • (Array<Experiments>)

    list of all experiments from Prismic



8
9
10
# File 'lib/prismic/experiments.rb', line 8

def running
  @running
end

Class Method Details

.parse(data) ⇒ Experiments

Returns:



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/prismic/experiments.rb', line 38

def self.parse(data)
  draft = []
  running = []
  if data != nil
    draft = data['draft'].map { |exp|
      Experiment.parse(exp)
    }
    running = data['running'].map { |exp|
      Experiment.parse(exp)
    }
  end
  new(draft, running)
end

Instance Method Details

#currentObject



15
16
17
# File 'lib/prismic/experiments.rb', line 15

def current
  running.first
end


19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/prismic/experiments.rb', line 19

def ref_from_cookie(cookie)
  if cookie == nil
    return nil
  end
  splitted = cookie.strip.split('%20')
  if splitted.size >= 2
    experiment = running.find { |exp| exp.google_id == splitted[0] }
    if experiment == nil
      return nil
    end
    var_index = splitted[1].to_i
    if var_index > -1 && var_index < experiment.variations.size
      return experiment.variations[var_index].ref
    end
  end
  nil
end