class Travis::Client::EnvVar::List
def [](key)
def [](key) return super if key.is_a? Integer detect { |e| e.name == key.to_s } end
def []=(key, value)
def []=(key, value) return super if key.is_a? Integer upsert(key.to_s, value) end
def __getobj__
def __getobj__ super || (self.list = @generator.call) end
def add(name, value, options = {})
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
def initialize(repository, &block)
def initialize(repository, &block) @repository = repository @generator = block || ::Proc.new { session.get(EnvVar.path(repository))['env_vars'] } super(nil) end
def list=(list)
def list=(list) __setobj__ list.dup.freeze end
def reload
def reload __setobj__ nil self end
def repository_id
def repository_id repository.id end
def session
def session repository.session end
def upsert(name, value, options = {})
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