class Travis::Client::EnvVar::List

Attributes

repository[R]

Public Class Methods

new(repository, &block) click to toggle source
Calls superclass method
# File lib/travis/client/env_var.rb, line 10
def initialize(repository, &block)
  @repository = repository
  @generator  = block || ::Proc.new { session.get(EnvVar.path(repository))['env_vars'] }
  super(nil)
end

Public Instance Methods

[](key) click to toggle source
Calls superclass method
# File lib/travis/client/env_var.rb, line 54
def [](key)
  return super if key.is_a? Integer
  detect { |e| e.name == key.to_s }
end
[]=(key, value) click to toggle source
Calls superclass method
# File lib/travis/client/env_var.rb, line 59
def []=(key, value)
  return super if key.is_a? Integer
  upsert(key.to_s, value)
end
__getobj__() click to toggle source
Calls superclass method
# File lib/travis/client/env_var.rb, line 20
def __getobj__
  super || (self.list = @generator.call)
end
Also aliased as: list
add(name, value, options = {}) click to toggle source
# File lib/travis/client/env_var.rb, line 37
def add(name, value, options = {})
  body       = JSON.dump(:env_var => options.merge(:name => name, :value => value))
  result     = session.post(EnvVar.path(self), body)
  self.list += [result['env_var']]
end
list()
Alias for: __getobj__
list=(list) click to toggle source
# File lib/travis/client/env_var.rb, line 16
def list=(list)
  __setobj__ list.dup.freeze
end
reload() click to toggle source
# File lib/travis/client/env_var.rb, line 24
def reload
  __setobj__ nil
  self
end
repository_id() click to toggle source
# File lib/travis/client/env_var.rb, line 33
def repository_id
  repository.id
end
session() click to toggle source
# File lib/travis/client/env_var.rb, line 29
def session
  repository.session
end
upsert(name, value, options = {}) click to toggle source
# File lib/travis/client/env_var.rb, line 43
def upsert(name, value, options = {})
  entries = select { |e| e.name == name }
  if entries.any?
    entries.first.update(options.merge(:value => value))
    entries[1..-1].each { |e| e.delete }
  else
    add(name, value, options)
  end
  reload
end