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=(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