Class: Marty::Config

Inherits:
Base show all
Defined in:
app/models/marty/config.rb

Defined Under Namespace

Classes: ConfigValidator

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

get_final_attrs, get_struct_attrs, make_hash, make_openstruct, mcfly_pt

Methods inherited from ActiveRecord::Base

joins, old_joins

Class Method Details

.[](key) ⇒ Object



51
52
53
# File 'app/models/marty/config.rb', line 51

def self.[](key)
  fetch(key, nil)
end

.[]=(key, value) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
# File 'app/models/marty/config.rb', line 39

def self.[]=(key, value)
  entry = find_by(key: key)
  if !entry
    entry = new
    entry.key = key
  end
  entry.set_value(value)
  entry.save!

  value
end

.del(key) ⇒ Object



55
56
57
58
59
60
61
62
# File 'app/models/marty/config.rb', line 55

def self.del(key)
  entry = find_by(key: key)
  if entry
    result = entry.get_value
    entry.destroy
    result
  end
end

.fetch(*args) ⇒ Object

Raises:

  • (KeyError)


26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/models/marty/config.rb', line 26

def self.fetch(*args)
  unless (1..2).cover?(args.size)
    raise ArgumentError, 'wrong number of arguments '\
                         "(given #{args.size}, expected 1..2)"
  end

  entry = find_by(key: args[0])
  return entry.get_value if entry
  return args[1] if args.size > 1

  raise KeyError, "key not found: \"#{args[0]}\""
end

Instance Method Details

#get_valueObject



18
19
20
# File 'app/models/marty/config.rb', line 18

def get_value
  value[0]
end

#set_value(v) ⇒ Object



22
23
24
# File 'app/models/marty/config.rb', line 22

def set_value(v)
  self.value = [v]
end