Module: Determinator::Serializers::JSON

Defined in:
lib/determinator/serializers/json.rb

Class Method Summary collapse

Class Method Details

.dump(feature) ⇒ Object

Raises:

  • (NotImplementedError)


7
8
9
# File 'lib/determinator/serializers/json.rb', line 7

def dump(feature)
  raise NotImplementedError
end

.load(string_or_hash) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/determinator/serializers/json.rb', line 11

def load(string_or_hash)
  obj = string_or_hash.is_a?(Hash) ? string_or_hash : ::JSON.parse(string_or_hash)

  Determinator::Feature.new(
    name:            obj['name'],
    identifier:      obj['identifier'],
    bucket_type:     obj['bucket_type'],
    active:          (obj['active'] === true),
    target_groups:   obj['target_groups'],
    variants:        obj['variants'].to_h,
    overrides:       obj['overrides'].to_h,
    winning_variant: obj['winning_variant'].to_s,
  )
end