Class: Hyrb::Task

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/hyrb/task.rb

Direct Known Subclasses

Hyrb::Tasks::Ansible::CreatePlaybook, Hyrb::Tasks::Ansible::CreatePlaybookDir, Hyrb::Tasks::Ansible::DestroyPlaybookDir, Hyrb::Tasks::Ansible::Init, Hyrb::Tasks::Ansible::Inject, Hyrb::Tasks::Creds::Build, Hyrb::Tasks::Creds::Edit, Hyrb::Tasks::Creds::Init, Hyrb::Tasks::Creds::Inject, Hyrb::Tasks::Creds::Show, Hyrb::Tasks::Defaults::Build, Hyrb::Tasks::Defaults::Edit, Hyrb::Tasks::Defaults::Init, Hyrb::Tasks::Defaults::Inject, Hyrb::Tasks::Defaults::Show, Hyrb::Tasks::Developers::AddToProject, Hyrb::Tasks::Developers::Download, Hyrb::Tasks::Developers::Init, Hyrb::Tasks::Developers::Inject, Hyrb::Tasks::Developers::Show, Hyrb::Tasks::DigitalOcean::Init, Hyrb::Tasks::DigitalOcean::Inject, Hyrb::Tasks::DigitalOcean::SSHKeys, Hyrb::Tasks::DigitalOcean::ShowSSHKeys, Hyrb::Tasks::DigitalOcean::SyncSSHKeys, Hyrb::Tasks::Environment::Database, Hyrb::Tasks::Environment::Deployment, Hyrb::Tasks::Environment::Init, Hyrb::Tasks::Environment::Inject, Hyrb::Tasks::Environment::SetupExisting, Hyrb::Tasks::Github::CreateProjectTeam, Hyrb::Tasks::Github::CreateRepo, Hyrb::Tasks::Github::Init, Hyrb::Tasks::Github::Inject, Hyrb::Tasks::Github::Repos, Hyrb::Tasks::Github::ShowRepos, Hyrb::Tasks::Github::SyncProjectTeam, Hyrb::Tasks::Google::Init, Hyrb::Tasks::Hipchat::ArchiveOldRooms, Hyrb::Tasks::Hipchat::CreateRoom, Hyrb::Tasks::Hipchat::Init, Hyrb::Tasks::Hipchat::Inject, Hyrb::Tasks::Hipchat::Rooms, Hyrb::Tasks::Hipchat::ShowRooms, Hyrb::Tasks::Project::Bootstrap, Hyrb::Tasks::Project::Create, Hyrb::Tasks::Project::CreateHipchatHook, Hyrb::Tasks::Project::Edit, Hyrb::Tasks::Project::Init, Hyrb::Tasks::Project::Inject, Hyrb::Tasks::Project::Show, Hyrb::Tasks::Provision::DigitalOcean, Hyrb::Tasks::Provision::Init, Hyrb::Tasks::Provision::Rackspace, Hyrb::Tasks::Rackspace::CreateDNSRecord, Hyrb::Tasks::Rackspace::DNSZones, Hyrb::Tasks::Rackspace::Init, Hyrb::Tasks::Rackspace::Inject

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pipeline) ⇒ Task

Returns a new instance of Task.



23
24
25
# File 'lib/hyrb/task.rb', line 23

def initialize(pipeline)
  @pipeline = pipeline
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



7
8
9
# File 'lib/hyrb/task.rb', line 7

def env
  @env
end

#pipelineObject (readonly)

Returns the value of attribute pipeline.



7
8
9
# File 'lib/hyrb/task.rb', line 7

def pipeline
  @pipeline
end

Class Method Details

.depends(*args) ⇒ Object



11
12
13
# File 'lib/hyrb/task.rb', line 11

def self.depends(*args)
  Commands::Pipeline.rules.merge!({self => args})
end

.prompt(hash_name, key, options = {}) ⇒ Object



15
16
17
# File 'lib/hyrb/task.rb', line 15

def self.prompt(hash_name, key, options = {})
  self.prompts << [hash_name, key, options]
end

.promptsObject



19
20
21
# File 'lib/hyrb/task.rb', line 19

def self.prompts
  @prompts ||= []
end

Instance Method Details

#run(env) ⇒ Object

TODO: run task after



29
30
# File 'lib/hyrb/task.rb', line 29

def run(env)
end

#run_before(env) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/hyrb/task.rb', line 32

def run_before(env)
  self.class.prompts.each do |(hash_name, key, options)|
    if options.is_a?(Hash) && options[:default].respond_to?(:call)
      options[:default] = options[:default].call(env)
    end

    prompt "Please enter #{key}", env[hash_name], key, options
  end
end