class Kondate::RoleFile

Attributes

dir[R]
ext[R]
role[R]

Public Class Methods

explore(dir, role, ext = nil) click to toggle source
# File lib/kondate/role_file.rb, line 7
def self.explore(dir, role, ext = nil)
  self.new(dir, role, ext).explore
end
new(dir, role, ext = nil) click to toggle source
# File lib/kondate/role_file.rb, line 11
def initialize(dir, role, ext = nil)
  @dir = dir
  @role = role
  @ext = ext
end

Public Instance Methods

explore() click to toggle source

Returns readable role file exploring possible role files. For example, if `role` is `myapp-web-staging`, this method explores files as

  1. myapp-web-staging.yml

  2. myapp-web-base.yml

  3. myapp-web.yml

  4. myapp-base.yml

  5. myapp.yml

  6. base.yml

@return [String] detected file path or last candidate path

# File lib/kondate/role_file.rb, line 28
def explore
  paths = if Config.explore_role_files?
            possible_paths
          else
            [get_path]
          end
  paths.find {|path| File.readable?(path) } || paths.last
end

Private Instance Methods

get_path(role = nil) click to toggle source
# File lib/kondate/role_file.rb, line 39
def get_path(role = nil)
  "#{File.join(dir, role || @role)}#{ext}"
end
possible_paths() click to toggle source
# File lib/kondate/role_file.rb, line 43
def possible_paths
  possible_roles.map {|role| get_path(role) }
end
possible_roles() click to toggle source
# File lib/kondate/role_file.rb, line 47
def possible_roles
  parts = role.split('-')
  roles = []
  roles << 'base'
  roles << parts.shift
  parts.each do |part|
    last = roles.last
    roles << "#{last}-base"
    roles << "#{last}-#{part}"
  end
  roles.reverse!
end