Class: Escobar::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/escobar/client.rb

Overview

Top-level client for heroku

Defined Under Namespace

Modules: Error Classes: HTTPError, TimeoutError

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(github_token, heroku_token) ⇒ Client

Returns a new instance of Client.



51
52
53
54
# File 'lib/escobar/client.rb', line 51

def initialize(github_token, heroku_token)
  @github_token = github_token
  @heroku = Escobar::Heroku::Client.new(heroku_token)
end

Instance Attribute Details

#github_tokenObject (readonly)

Returns the value of attribute github_token.



50
51
52
# File 'lib/escobar/client.rb', line 50

def github_token
  @github_token
end

#herokuObject (readonly)

Returns the value of attribute heroku.



50
51
52
# File 'lib/escobar/client.rb', line 50

def heroku
  @heroku
end

Class Method Details

.from_environmentObject



46
47
48
# File 'lib/escobar/client.rb', line 46

def self.from_environment
  new(Escobar.github_api_token, Escobar.heroku_api_token)
end

Instance Method Details

#[](key) ⇒ Object



63
64
65
# File 'lib/escobar/client.rb', line 63

def [](key)
  pipelines.find { |pipeline| pipeline.name == key }
end

#app_namesObject



67
68
69
# File 'lib/escobar/client.rb', line 67

def app_names
  pipelines.map(&:name)
end

#inspectObject

mask password



57
58
59
60
61
# File 'lib/escobar/client.rb', line 57

def inspect
  inspected = super
  inspected = inspected.gsub! @github_token, "*******" if @github_token
  inspected
end

#pipelinesObject



71
72
73
74
75
# File 'lib/escobar/client.rb', line 71

def pipelines
  @pipelines ||= heroku.get("/pipelines").map do |pipe|
    Escobar::Heroku::Pipeline.new(self, pipe["id"], pipe["name"])
  end
end