Method: DeployInfo::State#add_state

Defined in:
lib/deploy-info/state.rb

#add_state(app, user, params) ⇒ Object

> Add Node to the State



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/deploy-info/state.rb', line 52

def add_state(app, user, params) # rubocop: disable MethodLength, AbcSize
  # => Create an App-State Object
  (n = {}) && (n[:name] = app)
  n[:created] = DateTime.now
  n[:creator] = user
  # => Parse our Field Values
  %w(type).each do |opt|
    n[opt.to_sym] = params[opt] if params[opt]
  end
  # => Parse our Booleans
  %w(protected).each do |opt|
    n[opt.to_sym] = true if params[opt] && %w(true 1).any? { |x| params[opt].to_s.casecmp(x).zero? }
  end
  # => Build the Updated State
  update_state(n)
  # => Return the Added App
  find_state(node)
end